Skip to content

CF Crash: StructuralEqualityComparer: unexpected combination (v3.49.3) #7079

@TarqusMiltonium

Description

@TarqusMiltonium

Hi, I'm just starting out with Checker Framework, and it's crashing on my sources; Please see report below.

Crash Error Message:

[ERROR] error: StructuralEqualityComparer: unexpected combination:  type1: [TYPEVAR class org.checkerframework.framework.type.AnnotatedTypeMirror$AnnotatedTypeVariable] T extends Object  type2: [DECLARED class org.checkerframework.framework.type.AnnotatedTypeMirror$AnnotatedDeclaredType] Object

(see below for full output dump)

Sources:

I don't quite know how to generate a replica of the exact issue, but you can see the codebase:
https://github.com/TarqusMiltonium/jidbc/tree/milton_2505_add_checker_framework

^-- I realise that I've committed CF v3.49.2 as the version of CF in the pom.xml -- v3.49.3 doesn't work either, I was just trying another/previous version of CF to see if it was a recent regression, and obviously committed the older version instead of the most recent one. Crash is same either way.

You will also need to mvn install v3.1.2 of ji-utils dependency:
https://github.com/TarqusMiltonium/ji-utils/tree/v3.1.2
(Warning: unit tests are now broken on that repo, since that release was cut, due to 3rd-party change, so either disable that one test or build without).

Steps to reproduce:

Run mvn compile on that repo (& branch).

Versions affected

JDK 21, Maven 3.9.6, CF v3.49.3

Message Dump (from crash onwards):

[WARNING] Initialized @Nullable Object

    visitHistory = org.checkerframework.framework.type.StructuralEqualityVisitHistory@5fe25122

  ; The Checker Framework crashed.  Please report the crash.  Version: Checker Framework 3.49.2.

  Compilation unit: .\jidbc\src\main\java\com\jirvan\jidbc\JidbcConnection.java

  Last visited tree at line 88 column 78:

          UpdateHandler.update(jdbcConnection, row, Arrays.stream(columns).map(ColumnName:name).collect(Collectors.toSet()));

  Exception: java.lang.Throwable; java.lang.Throwable

        at org.checkerframework.javacutil.BugInCF.<init>(BugInCF.java:26)

        at org.checkerframework.framework.type.visitor.AtmComboVisitor.defaultAction(AtmComboVisitor.java:66)

        at org.checkerframework.framework.type.StructuralEqualityComparer.defaultAction(StructuralEqualityComparer.java:49)

        at org.checkerframework.framework.type.StructuralEqualityComparer.defaultAction(StructuralEqualityComparer.java:30)

...
        at jdk.compiler/com.sun.tools.javac.Main.main(Main.java:50)

...

[INFO] 99 warnings
[INFO] -------------------------------------------------------------
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] error: StructuralEqualityComparer: unexpected combination:  type1: [TYPEVAR class org.checkerframework.framework.type.AnnotatedTypeMirror$AnnotatedTypeVariable] T extends Object  type2: [DECLARED class org.checkerframework.framework.type.AnnotatedTypeMirror$AnnotatedDeclaredType] Object
[INFO] 1 error
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  12.445 s
[INFO] Finished at: 2025-05-20T13:38:25+09:30
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.13.0:compile (default-compile) on project jidbc: Compilation failure
[ERROR] error: StructuralEqualityComparer: unexpected combination:  type1: [TYPEVAR class org.checkerframework.framework.type.AnnotatedTypeMirror$AnnotatedTypeVariable] T extends Object  type2: [DECLARED class org.checkerframework.framework.type.AnnotatedTypeMirror$AnnotatedDeclaredType] Object
[ERROR]
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

Metadata

Metadata

Assignees

Labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions