Skip to content

JSpecify gigantic wave 4#4301

Open
dondonz wants to merge 194 commits into
masterfrom
claude/jspecify-wave4
Open

JSpecify gigantic wave 4#4301
dondonz wants to merge 194 commits into
masterfrom
claude/jspecify-wave4

Conversation

@dondonz
Copy link
Copy Markdown
Member

@dondonz dondonz commented Mar 7, 2026

Over 120 new JSpecify annotated classes in this PR.

This is ready for review.

A short note - code coverage checks were introduced alongside JSpecify work. This work does reduce coverage but I am planning to reset the baseline when this PR gets merged in

There are only ~10 classes left to annotate after this PR.

claude and others added 30 commits February 28, 2026 23:21
@dondonz dondonz changed the base branch from claude/agent-team-jspecify-Frd74 to master March 7, 2026 20:35
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Mar 7, 2026

Test Report

Test Results

Java Version Total Passed Failed Errors Skipped
Java 11 5865 (±0) 5809 (±0) 0 (±0) 0 (±0) 56 (±0)
Java 17 5865 (±0) 5808 (±0) 0 (±0) 0 (±0) 57 (±0)
Java 21 5865 (±0) 5808 (±0) 0 (±0) 0 (±0) 57 (±0)
Java 25 5865 (±0) 5808 (±0) 0 (±0) 0 (±0) 57 (±0)
jcstress 32 (±0) 32 (±0) 0 (±0) 0 (±0) 0 (±0)
Total 23492 (±0) 23265 (±0) 0 (±0) 0 (±0) 227 (±0)

Code Coverage (Java 25)

Metric Covered Missed Coverage vs Master
Lines 29645 3130 90.5% ±0.0%
Branches 8721 1535 85.0% ±0.0%
Methods 7913 1209 86.7% ±0.0%

Changed Class Coverage (7 classes)

Class Line Branch Method
g.i.Introspection ±0.0% +0.8% 🟢 ±0.0%
g.i.IntrospectionResultToSchema ±0.0% +1.2% 🟢 ±0.0%
g.l.AstTransformer -5.0% 🔴 +50.0% 🟢 ±0.0%
g.p.Parser
$1
±0.0% -8.3% 🔴 ±0.0%
g.s.i.SchemaPrinter ±0.0% -0.4% 🔴 ±0.0%
g.s.SchemaTransformer +0.1% 🟢 ±0.0% ±0.0%
g.s.u.SchemaUsageSupport
$1
+0.1% 🟢 -2.4% 🔴 ±0.0%
AstTransformer — method details
Method Line Branch
transform 85.7% (-14.3% 🔴) 50.0%
Parser.1 — method details
Method Line Branch
syntaxError 100.0% 66.7% (-8.3% 🔴)
SchemaPrinter — method details
Method Line Branch
printComments 100.0% 88.9% (-4.0% 🔴)
lambda$updateDeprecatedDirective$0 100.0% 66.7% (-8.3% 🔴)

Full HTML report: build artifact jacoco-html-report

Updated: 2026-05-24 06:23:34 UTC

TreeParallelTransformer only set List.class as a context var but never
NodeAdapter.class. After JSpecify annotations wrapped getVar() calls with
assertNotNull(), this caused test failures in TreeParallelTransformerTest
and AstTransformerTest.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
public void compute() {
currentContext.setPhase(TraverserContext.Phase.ENTER);
currentContext.setVar(List.class, myZippers);
currentContext.setVar(NodeAdapter.class, nodeAdapter);
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Another interesting bugfix surfaced by JSpecify

dondonz and others added 7 commits April 5, 2026 06:51
# Conflicts:
#	.claude/commands/jspecify-annotate.md
#	src/main/java/graphql/execution/ExecutionContext.java
#	src/main/java/graphql/introspection/GoodFaithIntrospection.java
#	src/main/java/graphql/normalized/ExecutableNormalizedOperation.java
#	src/test/groovy/graphql/archunit/JSpecifyAnnotationsCheck.groovy
# Conflicts:
#	src/main/java/graphql/execution/directives/QueryAppliedDirectiveArgument.java
#	src/main/java/graphql/execution/preparsed/PreparsedDocumentEntry.java
#	src/main/java/graphql/util/Anonymizer.java
Removes 31 classes from JSPECIFY_EXEMPTION_LIST in JSpecifyAnnotationsCheck.groovy
that have already been annotated with @NullMarked/@NullUnmarked across the wave 4
work. The "exempted classes should not be annotated" archunit test was failing
because these classes were both exempt and annotated.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
# Conflicts:
#	src/main/java/graphql/language/AstSignature.java
#	src/main/java/graphql/language/VariableDefinition.java
@dondonz
Copy link
Copy Markdown
Member Author

dondonz commented May 23, 2026

Note this is only failing the coverage test for now

@dondonz dondonz marked this pull request as ready for review May 24, 2026 00:31
Comment thread src/main/java/graphql/incremental/IncrementalPayload.java
return objectTypeDefinition.build();
}

@SuppressWarnings("NullAway")
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should remove these NullAway suppress warnings

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants