| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
| * This Exception indicates that the current execution should be aborted. | ||
| */ | ||
| @PublicApi | ||
| @NullMarked |
There was a problem hiding this comment.
I abruptly ran out of credits here - more is coming
Sorry, something went wrong.
There was a problem hiding this comment.
Given it's already 66 classes - the next wave will happen in a separate PR
Sorry, something went wrong.
Sorry, something went wrong.
Test Results 335 files ±0 335 suites ±0 5m 4s ⏱️ -2s Results for commit 0a77532. ± Comparison against base commit 739403f. This pull request removes 196 and adds 172 tests. Note that renamed tests count towards both. ?
, expected: combo-\"\\\b\f\n\r\t, #4]
__schema { types { fields { args { type { name fields { name }}}}}}
__schema { types { fields { type { name fields { name }}}}}
__schema { types { inputFields { type { inputFields { name }}}}}
__schema { types { interfaces { fields { type { interfaces { name } } } } } }
__schema { types { name} }
__type(name : "t") { name }
a1: __schema { types { name} }
a1: __type(name : "t") { name }
…
graphql.AssertTest ‑ assertFalse with different number of error args but false does not throw assertions [toRun: <graphql.AssertTest$__spock_feature_0_21prov0_closure23@2f2bff16 delegate=inaccessible owner=inaccessible thisObject=inaccessible resolveStrategy=inaccessible directive=inaccessible parameterTypes=inaccessible maximumNumberOfParameters=inaccessible bcw=inaccessible thisType=inaccessible>, expectedMessage: error arg1, #0] graphql.AssertTest ‑ assertFalse with different number of error args but false does not throw assertions [toRun: <graphql.AssertTest$__spock_feature_0_21prov0_closure24@75de29c0 delegate=inaccessible owner=inaccessible thisObject=inaccessible resolveStrategy=inaccessible directive=inaccessible parameterTypes=inaccessible maximumNumberOfParameters=inaccessible bcw=inaccessible thisType=inaccessible>, expectedMessage: error arg1 arg2, #1] graphql.AssertTest ‑ assertFalse with different number of error args but false does not throw assertions [toRun: <graphql.AssertTest$__spock_feature_0_21prov0_closure25@fc807c1 delegate=inaccessible owner=inaccessible thisObject=inaccessible resolveStrategy=inaccessible directive=inaccessible parameterTypes=inaccessible maximumNumberOfParameters=inaccessible bcw=inaccessible thisType=inaccessible>, expectedMessage: error arg1 arg2 arg3, #2] graphql.AssertTest ‑ assertFalse with different number of error args throws assertions [toRun: <graphql.AssertTest$__spock_feature_0_20prov0_closure20@733aa9d8 delegate=inaccessible owner=inaccessible thisObject=inaccessible resolveStrategy=inaccessible directive=inaccessible parameterTypes=inaccessible maximumNumberOfParameters=inaccessible bcw=inaccessible thisType=inaccessible>, expectedMessage: error arg1, #0] graphql.AssertTest ‑ assertFalse with different number of error args throws assertions [toRun: <graphql.AssertTest$__spock_feature_0_20prov0_closure21@6dcc40f5 delegate=inaccessible owner=inaccessible thisObject=inaccessible resolveStrategy=inaccessible directive=inaccessible parameterTypes=inaccessible maximumNumberOfParameters=inaccessible bcw=inaccessible thisType=inaccessible>, expectedMessage: error arg1 arg2, #1] graphql.AssertTest ‑ assertFalse with different number of error args throws assertions [toRun: <graphql.AssertTest$__spock_feature_0_20prov0_closure22@2b680207 delegate=inaccessible owner=inaccessible thisObject=inaccessible resolveStrategy=inaccessible directive=inaccessible parameterTypes=inaccessible maximumNumberOfParameters=inaccessible bcw=inaccessible thisType=inaccessible>, expectedMessage: error arg1 arg2 arg3, #2] graphql.AssertTest ‑ assertNotNull with different number of error args throws assertions [toRun: <graphql.AssertTest$__spock_feature_0_5prov0_closure3@6eb17ec8 delegate=inaccessible owner=inaccessible thisObject=inaccessible resolveStrategy=inaccessible directive=inaccessible parameterTypes=inaccessible maximumNumberOfParameters=inaccessible bcw=inaccessible thisType=inaccessible>, expectedMessage: error arg1, #0] graphql.AssertTest ‑ assertNotNull with different number of error args throws assertions [toRun: <graphql.AssertTest$__spock_feature_0_5prov0_closure4@48d293ee delegate=inaccessible owner=inaccessible thisObject=inaccessible resolveStrategy=inaccessible directive=inaccessible parameterTypes=inaccessible maximumNumberOfParameters=inaccessible bcw=inaccessible thisType=inaccessible>, expectedMessage: error arg1 arg2, #1] graphql.AssertTest ‑ assertNotNull with different number of error args throws assertions [toRun: <graphql.AssertTest$__spock_feature_0_5prov0_closure5@7a0ef219 delegate=inaccessible owner=inaccessible thisObject=inaccessible resolveStrategy=inaccessible directive=inaccessible parameterTypes=inaccessible maximumNumberOfParameters=inaccessible bcw=inaccessible thisType=inaccessible>, expectedMessage: error arg1 arg2 arg3, #2] graphql.AssertTest ‑ assertNotNull with different number of error args with non null does not throw assertions [toRun: <graphql.AssertTest$__spock_feature_0_6prov0_closure6@e5cbff2 delegate=inaccessible owner=inaccessible thisObject=inaccessible resolveStrategy=inaccessible directive=inaccessible parameterTypes=inaccessible maximumNumberOfParameters=inaccessible bcw=inaccessible thisType=inaccessible>, expectedMessage: error arg1, #0] … graphql.schema.fetching.LambdaFetchingSupportTest ‑ different class loaders induce certain behaviours ♻️ This comment has been updated with latest results. |
Sorry, something went wrong.
All 66 classes annotated in Wave 1 (graphql.analysis, graphql.execution core, and graphql.execution sub-packages) are removed from the exemption list now that they carry @NullMarked. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
| graphql.execution.reactive.DelegatingSubscription | ||
| graphql.execution.reactive.SubscriptionPublisher | ||
| ``` | ||
|
|
There was a problem hiding this comment.
Worker 4 got removed because it was covered by previous PRs.
Work from worker 5 onwards will be in another PR. This PR is already quite large
Sorry, something went wrong.
- Explicitly state that @internal classes must not be annotated - Tighten exemption list cleanup instruction to remove only the annotated class Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
| * @return this builder | ||
| */ | ||
| public Builder valueLiteral(@NonNull Value<?> value) { | ||
| public Builder valueLiteral(Value<?> value) { |
There was a problem hiding this comment.
So you tuned OFF null marked but this is no less precise than it was. Perhaps a Object.requireNonNull ??
Sorry, something went wrong.
There was a problem hiding this comment.
That's a good idea
Sorry, something went wrong.
There was a problem hiding this comment.
Done
Sorry, something went wrong.
|
|
||
| @Nullable | ||
| public List<? extends GraphQLError> getErrors() { | ||
| return errors; |
There was a problem hiding this comment.
Maybe we should change this so that errors is always non null but some times empty?
Document has to nullable of course. Quasi breaking change but nicer - eg less nullable things
Sorry, something went wrong.
There was a problem hiding this comment.
That's a good idea, you mentioned this in another class too. I think better to make it an empty list by default, like DataFetcherResult
Sorry, something went wrong.
There was a problem hiding this comment.
I will add a breaking change label
Sorry, something went wrong.
|
I'm impressed, I have the correct number of fingers on both hands. Models have come a long way. But I'm going to deduct marks for Python references creeping in! |
Sorry, something went wrong.
Test ReportTest Results
Code Coverage (Java 25)
Changed Class Coverage (1 class)
|
Sorry, something went wrong.
# Conflicts: # .claude/commands/jspecify-annotate.md # src/main/java/graphql/execution/ExecutionContext.java # src/test/groovy/graphql/archunit/JSpecifyAnnotationsCheck.groovy
…tated classes from exemption list - Update PreparsedDocumentEntryTest to expect empty list instead of null for errors - Remove 10 classes from JSpecify exemption list that are already annotated Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
….parseAndValidate Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
| @Override | ||
| public List<SourceLocation> getLocations() { | ||
| public @Nullable List<SourceLocation> getLocations() { | ||
| return null; |
There was a problem hiding this comment.
TODO open question if we want null or an empty list here?
Sorry, something went wrong.
There was a problem hiding this comment.
as a general rule we always do empty list instead of null list
Sorry, something went wrong.
| @Override | ||
| public List<SourceLocation> getLocations() { | ||
| public @Nullable List<SourceLocation> getLocations() { | ||
| return sourceLocations; |
There was a problem hiding this comment.
Also a TODO question - should we have any lists returning null?
Sorry, something went wrong.
There was a problem hiding this comment.
same as above ... in general we always to return empty lists instead of null
Sorry, something went wrong.
|
|
||
| @Override | ||
| public List<SourceLocation> getLocations() { | ||
| public @Nullable List<SourceLocation> getLocations() { |
There was a problem hiding this comment.
TODO Should any list (not only errors) be nullable?
Sorry, something went wrong.
There was a problem hiding this comment.
same as above
Sorry, something went wrong.
There was a problem hiding this comment.
There are some comments about empty list vs null ... I actually think we should create a todo and fix that up later ... lets focus on nullable stuff for now.
Looks good.
Sorry, something went wrong.
| @Override | ||
| public List<SourceLocation> getLocations() { | ||
| public @Nullable List<SourceLocation> getLocations() { | ||
| return null; |
There was a problem hiding this comment.
as a general rule we always do empty list instead of null list
Sorry, something went wrong.
| @Override | ||
| public List<SourceLocation> getLocations() { | ||
| public @Nullable List<SourceLocation> getLocations() { | ||
| return sourceLocations; |
There was a problem hiding this comment.
same as above ... in general we always to return empty lists instead of null
Sorry, something went wrong.
|
|
||
| @Override | ||
| public List<SourceLocation> getLocations() { | ||
| public @Nullable List<SourceLocation> getLocations() { |
There was a problem hiding this comment.
same as above
Sorry, something went wrong.
| @Override | ||
| public List<Object> getPath() { | ||
| public @Nullable List<Object> getPath() { | ||
| return path; |
There was a problem hiding this comment.
same hear ... about not return null for lists.
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
Another wave of JSpecify changes, this time featuring Claude's agent teams.
66 classes annotated
graphql.analysis (16 classes)
QueryComplexityCalculator, QueryComplexityInfo, QueryDepthInfo, QueryReducer, QueryTransformer, QueryTraversalOptions, QueryVisitor, QueryVisitorFieldArgumentEnvironment, QueryVisitorFieldArgumentInputValue, QueryVisitorFieldArgumentValueEnvironment, QueryVisitorFieldEnvironment, QueryVisitorFragmentDefinitionEnvironment, QueryVisitorFragmentSpreadEnvironment, QueryVisitorInlineFragmentEnvironment, QueryVisitorStub, ValueTraverser
graphql.execution core (26 classes)
AbortExecutionException, AsyncExecutionStrategy, AsyncSerialExecutionStrategy, CoercedVariables, DataFetcherExceptionHandlerParameters, DataFetcherExceptionHandlerResult, DefaultValueUnboxer, ExecutionContext, ExecutionId, ExecutionStepInfo, ExecutionStrategyParameters, FetchedValue, FieldValueInfo, InputMapDefinesTooManyFieldsException, MergedSelectionSet, MissingRootTypeException, NonNullableValueCoercedAsNullException, NormalizedVariables, OneOfNullValueException, OneOfTooManyKeysException, ResultNodesInfo, ResultPath, SimpleDataFetcherExceptionHandler, SubscriptionExecutionStrategy, UnknownOperationException, UnresolvedTypeException
graphql.execution sub-packages (24 classes)
ConditionalNodeDecision, QueryAppliedDirective, QueryAppliedDirectiveArgument, QueryDirectives, FieldValidationInstrumentation, SimpleFieldValidation, InstrumentationCreateStateParameters, InstrumentationExecuteOperationParameters, InstrumentationExecutionParameters, InstrumentationExecutionStrategyParameters, InstrumentationFieldCompleteParameters, InstrumentationFieldFetchParameters, InstrumentationFieldParameters, InstrumentationValidationParameters, TracingInstrumentation, TracingSupport, PreparsedDocumentEntry, ApolloPersistedQuerySupport, InMemoryPersistedQueryCache, PersistedQueryCacheMiss, PersistedQueryIdInvalid, PersistedQueryNotFound, DelegatingSubscription, SubscriptionPublisher
Review passes
./gradlew compileJava passes. The reviewer agent also fixed cascading NullAway errors in calling code (e.g. ResultPath, ExecutionStepInfo, ExecutionContext, TracingSupport) using assertNotNull() where structural invariants guarantee non-null.