diff --git a/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/InferenceContext.java b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/InferenceContext.java index f59705f637f..2c7b8578d96 100644 --- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/InferenceContext.java +++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/InferenceContext.java @@ -29,6 +29,7 @@ import java.util.Collections; import java.util.EnumSet; import java.util.HashMap; import java.util.HashSet; +import java.util.LinkedHashMap; import java.util.Map; import java.util.Set; @@ -78,7 +79,7 @@ class InferenceContext { /** list of inference vars in this context */ List inferencevars; - Map> freeTypeListeners = new HashMap<>(); + Map> freeTypeListeners = new LinkedHashMap<>(); Types types; Infer infer; @@ -263,7 +264,7 @@ class InferenceContext { void notifyChange(List inferredVars) { InferenceException thrownEx = null; for (Map.Entry> entry : - new HashMap<>(freeTypeListeners).entrySet()) { + new LinkedHashMap<>(freeTypeListeners).entrySet()) { if (!Type.containsAny(entry.getValue(), inferencevars.diff(inferredVars))) { try { entry.getKey().typesInferred(this);