typetools / typetools/checker-framework

javac wrapper not matching javac behavior

Open
#2,715 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

good first issue
Dominant language
Java
Stars
1.1k
Forks
440
Avg merge
1d 12h
Merged PRs (30d)
134

Description

I'm trying to run a compilation with javac arguments in an arguments file. Here is the file:

test-args.gz

When I run javac @test-args the compile succeeds. But when I run $CHECKERFRAMEWORK/checker/bin/javac @test-args I get a compile error:

$ $CHECKERFRAMEWORK/checker/bin/javac @test-args
/Users/msridhar/git-repos/dljc-experiment/outdir/nomulus/core/src/main/java/google/registry/model/smd/SignedMarkRevocationList.java:83: error: cannot find symbol
  Map</*@MatchesPattern("[0-9]+-[0-9]+")*/ String, DateTime> revokes;
         ^
  symbol:   class MatchesPattern
  location: class SignedMarkRevocationList

My guess is somehow the classpath is not getting passed along correctly to the underlying javac. I am hoping the test-args file is enough to debug this issue. If not, I can try to give more proper repro instructions when I get more time.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the checker/bin/javac wrapper and the attached test-args file. Compare the wrapper's invocation with direct javac, focusing on how the argument file and classpath reach the underlying compiler. Done means the wrapper reproduces direct javac behavior for this compilation without the missing MatchesPattern error.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
compilers, tooling
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.