Skip to content

Commit 1f1b386

Browse files
authored
Make arg position nullness array contents nullable (#1207)
Fixes #1206
1 parent 4a9a9ef commit 1f1b386

7 files changed

Lines changed: 13 additions & 13 deletions

File tree

nullaway/src/main/java/com/uber/nullaway/NullAway.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -793,7 +793,7 @@ private Description checkParamOverriding(
793793

794794
// Get argument nullability for the overridden method. If overriddenMethodArgNullnessMap[i] is
795795
// null, parameter i is treated as unannotated.
796-
Nullness[] overriddenMethodArgNullnessMap = new Nullness[superParamSymbols.size()];
796+
@Nullable Nullness[] overriddenMethodArgNullnessMap = new Nullness[superParamSymbols.size()];
797797

798798
// Collect @Nullable params of overridden method iff the overridden method is in annotated code
799799
// (otherwise, whether we acknowledge @Nullable in unannotated code or not depends on the
@@ -1878,7 +1878,7 @@ private Description handleInvocation(
18781878
boolean isMethodAnnotated =
18791879
!codeAnnotationInfo.isSymbolUnannotated(methodSymbol, config, handler);
18801880
// If argumentPositionNullness[i] == null, parameter i is unannotated
1881-
Nullness[] argumentPositionNullness = new Nullness[formalParams.size()];
1881+
@Nullable Nullness[] argumentPositionNullness = new Nullness[formalParams.size()];
18821882

18831883
if (isMethodAnnotated) {
18841884
// compute which arguments are @NonNull

nullaway/src/main/java/com/uber/nullaway/dataflow/CoreNullnessStoreInitializer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ private static NullnessStore lambdaInitialStore(
110110
types, castToNonNull(ASTHelpers.getType(code)), fiMethodSymbol, config)
111111
.getParameterTypes();
112112
// If fiArgumentPositionNullness[i] == null, parameter position i is unannotated
113-
Nullness[] fiArgumentPositionNullness = new Nullness[fiMethodParameters.size()];
113+
@Nullable Nullness[] fiArgumentPositionNullness = new Nullness[fiMethodParameters.size()];
114114
boolean isFIAnnotated =
115115
!codeAnnotationInfo.isSymbolUnannotated(fiMethodSymbol, config, handler);
116116
if (isFIAnnotated) {

nullaway/src/main/java/com/uber/nullaway/handlers/BaseNoOpHandler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,11 +117,11 @@ public boolean onOverrideFieldNullability(Symbol field) {
117117
}
118118

119119
@Override
120-
public Nullness[] onOverrideMethodInvocationParametersNullability(
120+
public @Nullable Nullness[] onOverrideMethodInvocationParametersNullability(
121121
Context context,
122122
Symbol.MethodSymbol methodSymbol,
123123
boolean isAnnotated,
124-
Nullness[] argumentPositionNullness) {
124+
@Nullable Nullness[] argumentPositionNullness) {
125125
// NoOp
126126
return argumentPositionNullness;
127127
}

nullaway/src/main/java/com/uber/nullaway/handlers/CompositeHandler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -143,11 +143,11 @@ public boolean onOverrideFieldNullability(Symbol field) {
143143
}
144144

145145
@Override
146-
public Nullness[] onOverrideMethodInvocationParametersNullability(
146+
public @Nullable Nullness[] onOverrideMethodInvocationParametersNullability(
147147
Context context,
148148
Symbol.MethodSymbol methodSymbol,
149149
boolean isAnnotated,
150-
Nullness[] argumentPositionNullness) {
150+
@Nullable Nullness[] argumentPositionNullness) {
151151
for (Handler h : handlers) {
152152
argumentPositionNullness =
153153
h.onOverrideMethodInvocationParametersNullability(

nullaway/src/main/java/com/uber/nullaway/handlers/Handler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -188,11 +188,11 @@ Nullness onOverrideMethodReturnNullability(
188188
* @return The updated nullness info for each argument position, as computed by the current
189189
* handler.
190190
*/
191-
Nullness[] onOverrideMethodInvocationParametersNullability(
191+
@Nullable Nullness[] onOverrideMethodInvocationParametersNullability(
192192
Context context,
193193
Symbol.MethodSymbol methodSymbol,
194194
boolean isAnnotated,
195-
Nullness[] argumentPositionNullness);
195+
@Nullable Nullness[] argumentPositionNullness);
196196

197197
/**
198198
* Called when the Dataflow analysis generates the initial NullnessStore for a method or lambda.

nullaway/src/main/java/com/uber/nullaway/handlers/LibraryModelsHandler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,11 +110,11 @@ public NullnessHint onDataflowVisitFieldAccess(
110110
}
111111

112112
@Override
113-
public Nullness[] onOverrideMethodInvocationParametersNullability(
113+
public @Nullable Nullness[] onOverrideMethodInvocationParametersNullability(
114114
Context context,
115115
Symbol.MethodSymbol methodSymbol,
116116
boolean isAnnotated,
117-
Nullness[] argumentPositionNullness) {
117+
@Nullable Nullness[] argumentPositionNullness) {
118118
OptimizedLibraryModels optimizedLibraryModels = getOptLibraryModels(context);
119119
ImmutableSet<Integer> nullableParamsFromModel =
120120
optimizedLibraryModels.explicitlyNullableParameters(methodSymbol);

nullaway/src/main/java/com/uber/nullaway/handlers/RestrictiveAnnotationHandler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,11 +104,11 @@ private CodeAnnotationInfo getCodeAnnotationInfo(Context context) {
104104
}
105105

106106
@Override
107-
public Nullness[] onOverrideMethodInvocationParametersNullability(
107+
public @Nullable Nullness[] onOverrideMethodInvocationParametersNullability(
108108
Context context,
109109
Symbol.MethodSymbol methodSymbol,
110110
boolean isAnnotated,
111-
Nullness[] argumentPositionNullness) {
111+
@Nullable Nullness[] argumentPositionNullness) {
112112
if (isAnnotated) {
113113
// We ignore isAnnotated code here, since annotations in code considered isAnnotated are
114114
// already handled by NullAway's core algorithm.

0 commit comments

Comments
 (0)