Fix unnecessary expression replacement in Pruner. Pruner was rewriting the paramters of ALL method calls instead of only the ones where a paramter was prumed. Change-Id: I4de2d488dd96aa9312dcae498eec2f20028c9170
diff --git a/dev/core/src/com/google/gwt/dev/jjs/impl/Pruner.java b/dev/core/src/com/google/gwt/dev/jjs/impl/Pruner.java index 2aa55fd..26f8f9d 100644 --- a/dev/core/src/com/google/gwt/dev/jjs/impl/Pruner.java +++ b/dev/core/src/com/google/gwt/dev/jjs/impl/Pruner.java
@@ -57,6 +57,7 @@ import com.google.gwt.thirdparty.guava.common.base.Predicate; import com.google.gwt.thirdparty.guava.common.base.Predicates; import com.google.gwt.thirdparty.guava.common.collect.ArrayListMultimap; +import com.google.gwt.thirdparty.guava.common.collect.ImmutableList; import com.google.gwt.thirdparty.guava.common.collect.Iterables; import com.google.gwt.thirdparty.guava.common.collect.ListMultimap; import com.google.gwt.thirdparty.guava.common.collect.Sets; @@ -452,7 +453,7 @@ return true; } - priorParametersByMethod.putAll(x, x.getParams()); + List<JParameter> originalParameters = ImmutableList.copyOf(x.getParams()); for (int i = 0; i < x.getParams().size(); ++i) { JParameter param = x.getParams().get(i); @@ -462,6 +463,11 @@ --i; } } + + if (x.getParams().size() != originalParameters.size()) { + // Parameters were pruned. record the original parameters for the cleanup pass. + priorParametersByMethod.putAll(x, originalParameters); + } } return true;