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;
}