http://gwt-code-reviews.appspot.com/1542804/diff/5001/dev/core/src/com/google/gwt/core/ext/typeinfo/TypeOracle.java File dev/core/src/com/google/gwt/core/ext/typeinfo/TypeOracle.java (right):
http://gwt-code-reviews.appspot.com/1542804/diff/5001/dev/core/src/com/google/gwt/core/ext/typeinfo/TypeOracle.java#newcode149 dev/core/src/com/google/gwt/core/ext/typeinfo/TypeOracle.java:149: public abstract JClassType findTypeByInternalName(String name); TypeOracle clients (DevMode) had previously been doing: findType(InternalName.toSourceName(name)) Effectively using TypeOracle for internal name look up, but doing their own name mangling. This makes it explicit, and allows TypeOracle to do the lookup deterministically. http://gwt-code-reviews.appspot.com/1542804/diff/5001/dev/core/src/com/google/gwt/core/ext/typeinfo/TypeOracle.java#newcode158 dev/core/src/com/google/gwt/core/ext/typeinfo/TypeOracle.java:158: public abstract JClassType findTypeBySourceOrBinaryName(String name); JSNI refs are source or binary, so instead of guessing, DevMode/etc. passes it along to TypeOracle to figure it out. http://gwt-code-reviews.appspot.com/1542804/diff/5001/dev/core/src/com/google/gwt/dev/javac/CompilationState.java File dev/core/src/com/google/gwt/dev/javac/CompilationState.java (left): http://gwt-code-reviews.appspot.com/1542804/diff/5001/dev/core/src/com/google/gwt/dev/javac/CompilationState.java#oldcode159 dev/core/src/com/google/gwt/dev/javac/CompilationState.java:159: classFileMapBySource.put(compiledClass.getSourceName(), compiledClass); CompiledClass cannot reliably calc its source name without knowing the source name of its outer class. So we wait until all CompiledClasses are made and then use classFileMap as a lookup for the recursive calc of a source name. http://gwt-code-reviews.appspot.com/1542804/diff/5001/dev/core/src/com/google/gwt/dev/javac/CompilationState.java File dev/core/src/com/google/gwt/dev/javac/CompilationState.java (right): http://gwt-code-reviews.appspot.com/1542804/diff/5001/dev/core/src/com/google/gwt/dev/javac/CompilationState.java#newcode41 dev/core/src/com/google/gwt/dev/javac/CompilationState.java:41: protected final Map<String, CompiledClass> classFileMap = new HashMap<String, CompiledClass>(); Most users of this map had internal names, so using those involved the least amount of conversion. AFAICT. http://gwt-code-reviews.appspot.com/1542804/diff/5001/dev/core/src/com/google/gwt/dev/javac/CompilationStateBuilder.java File dev/core/src/com/google/gwt/dev/javac/CompilationStateBuilder.java (left): http://gwt-code-reviews.appspot.com/1542804/diff/5001/dev/core/src/com/google/gwt/dev/javac/CompilationStateBuilder.java#oldcode83 dev/core/src/com/google/gwt/dev/javac/CompilationStateBuilder.java:83: public ReferenceBinding resolveType(String typeName) { This was already effectively sourceOrBinary name--just renamed it to reflect that. http://gwt-code-reviews.appspot.com/1542804/diff/5001/dev/core/src/com/google/gwt/dev/javac/CompilationStateBuilder.java File dev/core/src/com/google/gwt/dev/javac/CompilationStateBuilder.java (right): http://gwt-code-reviews.appspot.com/1542804/diff/5001/dev/core/src/com/google/gwt/dev/javac/CompilationStateBuilder.java#newcode111 dev/core/src/com/google/gwt/dev/javac/CompilationStateBuilder.java:111: ReferenceBinding binding = compiler.resolveType(qualifiedRef); This is annoying, but the compiler gives us qualifiedRefs as source names, but our map is now internal names. compiler.resolveType does a source name lookup to get back to an internal name. http://gwt-code-reviews.appspot.com/1542804/diff/5001/dev/core/src/com/google/gwt/dev/javac/CompilationUnitBuilder.java File dev/core/src/com/google/gwt/dev/javac/CompilationUnitBuilder.java (right): http://gwt-code-reviews.appspot.com/1542804/diff/5001/dev/core/src/com/google/gwt/dev/javac/CompilationUnitBuilder.java#newcode273 dev/core/src/com/google/gwt/dev/javac/CompilationUnitBuilder.java:273: */ No change, just doc. http://gwt-code-reviews.appspot.com/1542804/diff/5001/dev/core/src/com/google/gwt/dev/javac/CompiledClass.java File dev/core/src/com/google/gwt/dev/javac/CompiledClass.java (left): http://gwt-code-reviews.appspot.com/1542804/diff/5001/dev/core/src/com/google/gwt/dev/javac/CompiledClass.java#oldcode106 dev/core/src/com/google/gwt/dev/javac/CompiledClass.java:106: this.sourceName = StringInterner.get().intern(InternalName.toSourceName(internalName)); This was one of the primary places name mangling was biting us. So sourceName isn't guessed here but looked up later in getSourceName(Map). http://gwt-code-reviews.appspot.com/1542804/diff/5001/dev/core/src/com/google/gwt/dev/javac/CompiledClass.java File dev/core/src/com/google/gwt/dev/javac/CompiledClass.java (right): http://gwt-code-reviews.appspot.com/1542804/diff/5001/dev/core/src/com/google/gwt/dev/javac/CompiledClass.java#newcode162 dev/core/src/com/google/gwt/dev/javac/CompiledClass.java:162: CollectClassData cd = getTypeData().getCollectClassData(); CollectClassData has the inner/outer class name from the bytecode, but now we just need recursion to handle the Foo.Bar.Zaz case. http://gwt-code-reviews.appspot.com/1542804/diff/5001/dev/core/src/com/google/gwt/dev/javac/JdtCompiler.java File dev/core/src/com/google/gwt/dev/javac/JdtCompiler.java (left): http://gwt-code-reviews.appspot.com/1542804/diff/5001/dev/core/src/com/google/gwt/dev/javac/JdtCompiler.java#oldcode293 dev/core/src/com/google/gwt/dev/javac/JdtCompiler.java:293: char[] binaryNameChars = CharOperation.concatWith(compoundTypeName, '/'); Just fixed the name being wrong. http://gwt-code-reviews.appspot.com/1542804/diff/5001/dev/core/src/com/google/gwt/dev/javac/JdtCompiler.java File dev/core/src/com/google/gwt/dev/javac/JdtCompiler.java (right): http://gwt-code-reviews.appspot.com/1542804/diff/5001/dev/core/src/com/google/gwt/dev/javac/JdtCompiler.java#newcode106 dev/core/src/com/google/gwt/dev/javac/JdtCompiler.java:106: * @param internalName the internal name of the requested type This is not a breaking changing, the wrong name was used (they already were internal but called binary). http://gwt-code-reviews.appspot.com/1542804/diff/5001/dev/core/src/com/google/gwt/dev/javac/JdtCompiler.java#newcode420 dev/core/src/com/google/gwt/dev/javac/JdtCompiler.java:420: String sourceOrBinaryName) { Renamed the parameter from typeName to sourceOrBinaryName. http://gwt-code-reviews.appspot.com/1542804/diff/5001/dev/core/src/com/google/gwt/dev/javac/JdtCompiler.java#newcode641 dev/core/src/com/google/gwt/dev/javac/JdtCompiler.java:641: apiRefs.add(BinaryName.toInternalName(binaryName)); binary -> internal name can be done safely. http://gwt-code-reviews.appspot.com/1542804/diff/5001/dev/core/src/com/google/gwt/dev/javac/JdtCompiler.java#newcode739 dev/core/src/com/google/gwt/dev/javac/JdtCompiler.java:739: public ReferenceBinding resolveType(char[][] sourceName) { This is the deterministic source name -> reference binding lookup that's used to get internal names for the Dependencies qualifiedRefs. http://gwt-code-reviews.appspot.com/1542804/diff/5001/dev/core/src/com/google/gwt/dev/javac/JsniChecker.java File dev/core/src/com/google/gwt/dev/javac/JsniChecker.java (right): http://gwt-code-reviews.appspot.com/1542804/diff/5001/dev/core/src/com/google/gwt/dev/javac/JsniChecker.java#newcode84 dev/core/src/com/google/gwt/dev/javac/JsniChecker.java:84: ReferenceBinding resolveType(String sourceOrBinaryName); Not changed, just a better name. http://gwt-code-reviews.appspot.com/1542804/diff/5001/dev/core/src/com/google/gwt/dev/javac/TypeOracleMediator.java File dev/core/src/com/google/gwt/dev/javac/TypeOracleMediator.java (right): http://gwt-code-reviews.appspot.com/1542804/diff/5001/dev/core/src/com/google/gwt/dev/javac/TypeOracleMediator.java#newcode181 dev/core/src/com/google/gwt/dev/javac/TypeOracleMediator.java:181: return TypeOracleMediator.this.internalMapper; This map was already by internal names, so I just renamed it to reflect that. http://gwt-code-reviews.appspot.com/1542804/diff/5001/dev/core/src/com/google/gwt/dev/javac/asm/ResolveTypeSignature.java File dev/core/src/com/google/gwt/dev/javac/asm/ResolveTypeSignature.java (right): http://gwt-code-reviews.appspot.com/1542804/diff/5001/dev/core/src/com/google/gwt/dev/javac/asm/ResolveTypeSignature.java#newcode44 dev/core/src/com/google/gwt/dev/javac/asm/ResolveTypeSignature.java:44: private final Map<String, JRealClassType> internalMapper; Just a name change, was already by internal. http://gwt-code-reviews.appspot.com/1542804/diff/5001/dev/core/src/com/google/gwt/dev/javac/typemodel/JRealClassType.java File dev/core/src/com/google/gwt/dev/javac/typemodel/JRealClassType.java (left): http://gwt-code-reviews.appspot.com/1542804/diff/5001/dev/core/src/com/google/gwt/dev/javac/typemodel/JRealClassType.java#oldcode74 dev/core/src/com/google/gwt/dev/javac/typemodel/JRealClassType.java:74: * @param enclosingTypeName the fully qualified source name of the enclosing doc was wrong. http://gwt-code-reviews.appspot.com/1542804/diff/5001/dev/core/src/com/google/gwt/dev/jjs/ast/JGwtCreate.java File dev/core/src/com/google/gwt/dev/jjs/ast/JGwtCreate.java (right): http://gwt-code-reviews.appspot.com/1542804/diff/5001/dev/core/src/com/google/gwt/dev/jjs/ast/JGwtCreate.java#newcode59 dev/core/src/com/google/gwt/dev/jjs/ast/JGwtCreate.java:59: return BinaryName.toSourceName(type.getName()); Still unsafe, but I didn't try to fix deferred binding. http://gwt-code-reviews.appspot.com/1542804/diff/5001/dev/core/src/com/google/gwt/dev/jjs/ast/JProgram.java File dev/core/src/com/google/gwt/dev/jjs/ast/JProgram.java (right): http://gwt-code-reviews.appspot.com/1542804/diff/5001/dev/core/src/com/google/gwt/dev/jjs/ast/JProgram.java#newcode322 dev/core/src/com/google/gwt/dev/jjs/ast/JProgram.java:322: private final transient TypeOracle otherTypeOracle; We need this TypeOracle to build the dual binary/source name maps of JDeclaredTypes. http://gwt-code-reviews.appspot.com/1542804/diff/5001/user/src/com/google/web/bindery/requestfactory/server/RequestFactoryJarExtractor.java File user/src/com/google/web/bindery/requestfactory/server/RequestFactoryJarExtractor.java (right): http://gwt-code-reviews.appspot.com/1542804/diff/5001/user/src/com/google/web/bindery/requestfactory/server/RequestFactoryJarExtractor.java#newcode267 user/src/com/google/web/bindery/requestfactory/server/RequestFactoryJarExtractor.java:267: return type.getClassName(); AFAICT type.getClassName was already source name. http://gwt-code-reviews.appspot.com/1542804/ -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
