-
Notifications
You must be signed in to change notification settings - Fork 163
ECJ Relevant JDK Issues
Stephan Herrmann edited this page Oct 23, 2025
·
1 revision
Collection of bugs in the OpenJDK bug tracker that are affecting compatibility between ecj - JLS - javac.
-
Widening of capture vars occurs at unspecified times
- https://bugs.openjdk.org/browse/JDK-8016207 (since 2013)
- Inference: define supertype parameterization for wildcard-parameterized types
- https://bugs.openjdk.org/browse/JDK-8016196 (since 2013)
- used as an excuse for a test from #4315
- 18.4: Clean up resolution of capture ivars
- https://bugs.openjdk.org/browse/JDK-8054721 (since 2014)
- skip capture conversion before subtyping if types are parameterizations of the same class or interface
- https://bugs.openjdk.org/browse/JDK-8160244 (since 2016)
- Incorrect treatment of wildcards in subtyping
- https://bugs.openjdk.org/browse/JDK-8164401 (since 2016) ❌ javac accepts, throws at runtime ✔️ ecj rejects
- type inference: javac is incorrectly applying capture conversion during incorporation
- https://bugs.openjdk.org/browse/JDK-8206142 (since 2018) ❌ javac rejects ✔️ ecj accepts
- skip capture conversion before subtyping if types are parameterizations of the same class or interface
- https://bugs.openjdk.org/browse/JDK-8160244 (since 2016) ❌ javac rejects ✔️ ecj accepts
With examples where ecj and javac are congruent:
- 18.2.1: Capture variables should not escape lambda bodies
- https://bugs.openjdk.org/browse/JDK-8170887 (since 2016)
- Lower bound containing wildcard get lost during type inference
- https://bugs.openjdk.org/browse/JDK-8251891 (since 2020)
- 4.9: Clarify membership of intersection types for wildcard parameterizations
- https://bugs.openjdk.org/browse/JDK-7034922 (since 2011)
- GLB ignores different parameterizations of the same type
- https://bugs.openjdk.org/browse/JDK-8043374 (since 2014) both compilers questionable - in different ways