Fix non determinism in code generation. GenerateJavaScriptAst.FixNameClashesVisitor fixes name clashes in a non deterministic order due to iteration over a HashMultimap. This fix makes the iteration order deterministic by using a LinkHashMultimap instead. Change-Id: Iaa878666f4fbae7cf235d3d53f223d8a08af6e4f (cherry picked from commit d94b402596302381061b72698bc706257307a4e7)
diff --git a/dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaScriptAST.java b/dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaScriptAST.java index 1481c39..698b6ab 100644 --- a/dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaScriptAST.java +++ b/dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaScriptAST.java
@@ -165,7 +165,7 @@ import com.google.gwt.dev.util.collect.Maps; import com.google.gwt.dev.util.collect.Lists; import com.google.gwt.dev.util.collect.Sets; -import com.google.gwt.thirdparty.guava.common.collect.HashMultimap; +import com.google.gwt.thirdparty.guava.common.collect.LinkedHashMultimap; import com.google.gwt.thirdparty.guava.common.collect.Multimap; import java.io.StringReader; @@ -281,7 +281,7 @@ // Start constructing the scope tree. currentScope = new Scope(); scopesByLocal = new HashMap<JLocal, Scope>(); - localsByName = HashMultimap.create(); + localsByName = LinkedHashMultimap.create(); return true; }