Community
Participate
Working Groups
When attempting to recompile src libs, a stack overflow occurred when binding the supertype of the form Enum<FormattedFloatingDecimal$Form>. java.lang.StackOverflowError at org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding.substitute (ParameterizedTypeBinding.java:566) at org.eclipse.jdt.internal.compiler.lookup.Scope.substitute (Scope.java:2384) at org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding.substitute (ParameterizedTypeBinding.java:622) at org.eclipse.jdt.internal.compiler.lookup.TypeVariableBinding.boundCheck (TypeVariableBinding.java:52) at org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding.resolve (ParameterizedTypeBinding.java:512) at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.resolveType (BinaryTypeBinding.java:51) at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.superclass (BinaryTypeBinding.java:684) at org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding.isSuperclassOf (ReferenceBinding.java:576) at org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding.isCompatibleWith (ReferenceBinding.java:510) at org.eclipse.jdt.internal.compiler.lookup.TypeVariableBinding.boundCheck (TypeVariableBinding.java:52) at org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding.resolve (ParameterizedTypeBinding.java:512) at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.resolveType (BinaryTypeBinding.java:51) at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.superclass (BinaryTypeBinding.java:684) at org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding.isSuperclassOf (ReferenceBinding.java:576) at org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding.isCompatibleWith (ReferenceBinding.java:510) at org.eclipse.jdt.internal.compiler.lookup.TypeVariableBinding.boundCheck (TypeVariableBinding.java:52) at org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding.resolve (ParameterizedTypeBinding.java:512) at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.resolveType (BinaryTypeBinding.java:51) at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.superclass (BinaryTypeBinding.java:684) at org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding.isSuperclassOf (ReferenceBinding.java:576) at org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding.isCompatibleWith (ReferenceBinding.java:510) at org.eclipse.jdt.internal.compiler.lookup.TypeVariableBinding.boundCheck (TypeVariableBinding.java:52) at org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding.resolve (ParameterizedTypeBinding.java:512) at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.resolveType (BinaryTypeBinding.java:51) at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.superclass (BinaryTypeBinding.java:684) at org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding.isSuperclassOf (ReferenceBinding.java:576) at org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding.isCompatibleWith (ReferenceBinding.java:510) at org.eclipse.jdt.internal.compiler.lookup.TypeVariableBinding.boundCheck (TypeVariableBinding.java:52) at org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding.resolve (ParameterizedTypeBinding.java:512) at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.resolveType (BinaryTypeBinding.java:51) at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.superclass (BinaryTypeBinding.java:684) at org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding.isSuperclassOf (ReferenceBinding.java:576) at org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding.isCompatibleWith (ReferenceBinding.java:510) at org.eclipse.jdt.internal.compiler.lookup.TypeVariableBinding.boundCheck (TypeVariableBinding.java:52) at org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding.resolve (ParameterizedTypeBinding.java:512)
The resolution should be splitted into 2 parts: binding creation, then bound check.
Changed to resolve any Unresolved types first then do bounds checks after.