GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — Verifier crashes on a `var` local in a binary operator · Issue #344 · liquid-java/liquidjava

Verifier crashes on a var local in a binary operator #344

New issue
Copy link
New issue
Copy link
Closed
#391
Closed
Verifier crashes on a var local in a binary operator#344
#391
Copy link
Labels
bugSomething isn't workingSomething isn't working

Description

@CatarinaGamboa
CatarinaGamboa
opened on Oct 6, 2026
Issue body actions

Impact: verification stops with an internal error. It blocks 1 of the 48 real-code examples we built (bugs mined from open-source Java).

Description

A local declared with var used in a binary operator (n == null) crashes: CtBinaryOperator.getType() is null. With the explicit type it verifies.

Minimal reproducer

public class Repro {
    static String name() {
        return "x";
    }

    public static void main(String[] args) {
        var n = name();
        if (n == null) {
            throw new IllegalArgumentException("no name");
        }
    }
}

Expected

Correct! Passed Verification. A var local has the static type of its initialiser.

Actual

Exception in thread "main" java.lang.RuntimeException: 
Error while checking CtMethodImpl
  on main(String[] args) { 
  with 
Error while checking CtBlockImpl
  on { 
  with 
Error while checking CtIfImpl
  on if (n == null) { 
  with Cannot invoke "spoon.reflect.reference.CtTypeReference.getQualifiedName()" because the return value of "spoon.reflect.code.CtBinaryOperator.getType()" is null
Caused by: java.lang.RuntimeException: 
Error while checking CtBlockImpl
  on { 
  with 

Reproduced on main at 0472025 (liquidjava-verifier 0.0.35); also on fbfb4e2 and 0.0.33 in the original form.

Context

Found while turning bugs mined from real open-source Java (fixed upstream or still present) into study examples for the error-message study.

Activity

  1. CatarinaGamboa
    added
    bugSomething isn't workingSomething isn't working
    on Oct 6, 2026
  2. CatarinaGamboa commented on Oct 9, 2026

    @CatarinaGamboa
    CatarinaGamboa
    on Oct 9, 2026
    CollaboratorAuthor
    More actions

    Same null CtBinaryOperator.getType() from another cause: operand types that cannot be resolved (classes not on the classpath), see #388. A fix that treats a binary operator without a type as unrefined would likely cover both.

  3. CatarinaGamboa
    closed this as completedin 8f9e862on Oct 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      You are visitor 01402503 — GeezerVison does not store the pages you look up.
      Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.