closure-compiler/src/com/google/javascript/rhino/jstype/JSType.java
// Named types may be proxies of concrete types.
Named types may be proxies of concrete types.
Named types may be proxies of concrete types .
@Nullable
  private String deepestResolvedTypeNameOf(ObjectType objType) {
    if (!objType.isResolved() || !(objType instanceof ProxyObjectType)) {
      return objType.getReferenceName();
    }
    ObjectType internal = ((ProxyObjectType) objType).getReferencedObjTypeInternal();
    return (internal != null && internal.isNominalType())
        ? deepestResolvedTypeNameOf(internal)
        : null;
  }
@ Nullable private String deepestResolvedTypeNameOf ( ObjectType objType ) { if ( ! objType . isResolved ( ) || ! ( objType instanceof ProxyObjectType ) ) { return objType . getReferenceName ( ) ; } ObjectType internal = ( ( ProxyObjectType ) objType ) . getReferencedObjTypeInternal ( ) ; return ( internal != null && internal . isNominalType ( ) ) ? deepestResolvedTypeNameOf ( internal ) : null ; }
Named types may be proxies of concrete types.
Named types may be proxies of concrete types .