typetools / typetools/checker-framework

Feature request: Add the ability to determine why a particular class is not initialized

Open
#4,613 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

I'm getting a warning in https://github.com/jpschewe/fll-sw/blob/4f157788eea59a514995db7e4654c9df674cdbc0/src/main/java/fll/scheduler/SchedulerUI.java#L278 that the method createMenubar is being called with a receiver @UnderInitialization(javax.swing.JFrame.class). However as near as I can tell all instance variables are initialized by this point, so I would expect the receiver to be @UnderInitialization(SchedulerUI.class).
If there was a way to put checker into a mode that would explain why this object isn't initialized yet, that would be very helpful. Perhaps something that lists the instance variables that are not know to be initialized when the method call is being made. That would help track down the problems.

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 warning at src/main/java/fll/scheduler/SchedulerUI.java line 278 and the createMenubar call described in the issue. Trace how the checker determines the receiver's initialization type, then identify where a diagnostic mode could explain the missing initialization facts. Done means the checker can report why a class is not considered initialized, including relevant uninitialized instance variables when applicable.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
devtools
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.