Lines 1-5
Link Here
|
1 |
/******************************************************************************* |
1 |
/******************************************************************************* |
2 |
* Copyright (c) 2000, 2010 IBM Corporation and others. |
2 |
* Copyright (c) 2000, 2011 IBM Corporation and others. |
3 |
* All rights reserved. This program and the accompanying materials |
3 |
* All rights reserved. This program and the accompanying materials |
4 |
* are made available under the terms of the Eclipse Public License v1.0 |
4 |
* are made available under the terms of the Eclipse Public License v1.0 |
5 |
* which accompanies this distribution, and is available at |
5 |
* which accompanies this distribution, and is available at |
Lines 229-242
Link Here
|
229 |
scope.problemReporter().localVariableRedundantCheckOnNonNull(local, reference); |
229 |
scope.problemReporter().localVariableRedundantCheckOnNonNull(local, reference); |
230 |
} |
230 |
} |
231 |
if (!flowInfo.isMarkedAsNullOrNonNullInAssertExpression(local)) { |
231 |
if (!flowInfo.isMarkedAsNullOrNonNullInAssertExpression(local)) { |
232 |
flowInfo.initsWhenFalse().setReachMode(FlowInfo.UNREACHABLE); |
232 |
flowInfo.initsWhenFalse().setReachMode(FlowInfo.UNREACHABLE_BY_NULLANALYSIS); |
233 |
} |
233 |
} |
234 |
} else if (checkType == (CAN_ONLY_NULL_NON_NULL | IN_COMPARISON_NULL)) { |
234 |
} else if (checkType == (CAN_ONLY_NULL_NON_NULL | IN_COMPARISON_NULL)) { |
235 |
if ((this.tagBits & FlowContext.HIDE_NULL_COMPARISON_WARNING) == 0) { |
235 |
if ((this.tagBits & FlowContext.HIDE_NULL_COMPARISON_WARNING) == 0) { |
236 |
scope.problemReporter().localVariableNonNullComparedToNull(local, reference); |
236 |
scope.problemReporter().localVariableNonNullComparedToNull(local, reference); |
237 |
} |
237 |
} |
238 |
if (!flowInfo.isMarkedAsNullOrNonNullInAssertExpression(local)) { |
238 |
if (!flowInfo.isMarkedAsNullOrNonNullInAssertExpression(local)) { |
239 |
flowInfo.initsWhenTrue().setReachMode(FlowInfo.UNREACHABLE); |
239 |
flowInfo.initsWhenTrue().setReachMode(FlowInfo.UNREACHABLE_BY_NULLANALYSIS); |
240 |
} |
240 |
} |
241 |
} |
241 |
} |
242 |
return; |
242 |
return; |
Lines 252-258
Link Here
|
252 |
scope.problemReporter().localVariableRedundantCheckOnNull(local, reference); |
252 |
scope.problemReporter().localVariableRedundantCheckOnNull(local, reference); |
253 |
} |
253 |
} |
254 |
if (!flowInfo.isMarkedAsNullOrNonNullInAssertExpression(local)) { |
254 |
if (!flowInfo.isMarkedAsNullOrNonNullInAssertExpression(local)) { |
255 |
flowInfo.initsWhenFalse().setReachMode(FlowInfo.UNREACHABLE); |
255 |
flowInfo.initsWhenFalse().setReachMode(FlowInfo.UNREACHABLE_BY_NULLANALYSIS); |
256 |
} |
256 |
} |
257 |
return; |
257 |
return; |
258 |
case FlowContext.IN_COMPARISON_NON_NULL: |
258 |
case FlowContext.IN_COMPARISON_NON_NULL: |
Lines 264-270
Link Here
|
264 |
scope.problemReporter().localVariableNullComparedToNonNull(local, reference); |
264 |
scope.problemReporter().localVariableNullComparedToNonNull(local, reference); |
265 |
} |
265 |
} |
266 |
if (!flowInfo.isMarkedAsNullOrNonNullInAssertExpression(local)) { |
266 |
if (!flowInfo.isMarkedAsNullOrNonNullInAssertExpression(local)) { |
267 |
flowInfo.initsWhenTrue().setReachMode(FlowInfo.UNREACHABLE); |
267 |
flowInfo.initsWhenTrue().setReachMode(FlowInfo.UNREACHABLE_BY_NULLANALYSIS); |
268 |
} |
268 |
} |
269 |
return; |
269 |
return; |
270 |
case FlowContext.IN_ASSIGNMENT: |
270 |
case FlowContext.IN_ASSIGNMENT: |
Lines 314-327
Link Here
|
314 |
scope.problemReporter().localVariableRedundantCheckOnNonNull(local, reference); |
314 |
scope.problemReporter().localVariableRedundantCheckOnNonNull(local, reference); |
315 |
} |
315 |
} |
316 |
if (!flowInfo.isMarkedAsNullOrNonNullInAssertExpression(local)) { |
316 |
if (!flowInfo.isMarkedAsNullOrNonNullInAssertExpression(local)) { |
317 |
flowInfo.initsWhenFalse().setReachMode(FlowInfo.UNREACHABLE); |
317 |
flowInfo.initsWhenFalse().setReachMode(FlowInfo.UNREACHABLE_BY_NULLANALYSIS); |
318 |
} |
318 |
} |
319 |
} else { |
319 |
} else { |
320 |
if ((this.tagBits & FlowContext.HIDE_NULL_COMPARISON_WARNING) == 0) { |
320 |
if ((this.tagBits & FlowContext.HIDE_NULL_COMPARISON_WARNING) == 0) { |
321 |
scope.problemReporter().localVariableNonNullComparedToNull(local, reference); |
321 |
scope.problemReporter().localVariableNonNullComparedToNull(local, reference); |
322 |
} |
322 |
} |
323 |
if (!flowInfo.isMarkedAsNullOrNonNullInAssertExpression(local)) { |
323 |
if (!flowInfo.isMarkedAsNullOrNonNullInAssertExpression(local)) { |
324 |
flowInfo.initsWhenTrue().setReachMode(FlowInfo.UNREACHABLE); |
324 |
flowInfo.initsWhenTrue().setReachMode(FlowInfo.UNREACHABLE_BY_NULLANALYSIS); |
325 |
} |
325 |
} |
326 |
} |
326 |
} |
327 |
return; |
327 |
return; |
Lines 342-348
Link Here
|
342 |
scope.problemReporter().localVariableRedundantCheckOnNull(local, reference); |
342 |
scope.problemReporter().localVariableRedundantCheckOnNull(local, reference); |
343 |
} |
343 |
} |
344 |
if (!flowInfo.isMarkedAsNullOrNonNullInAssertExpression(local)) { |
344 |
if (!flowInfo.isMarkedAsNullOrNonNullInAssertExpression(local)) { |
345 |
flowInfo.initsWhenFalse().setReachMode(FlowInfo.UNREACHABLE); |
345 |
flowInfo.initsWhenFalse().setReachMode(FlowInfo.UNREACHABLE_BY_NULLANALYSIS); |
346 |
} |
346 |
} |
347 |
return; |
347 |
return; |
348 |
case FlowContext.IN_COMPARISON_NON_NULL: |
348 |
case FlowContext.IN_COMPARISON_NON_NULL: |
Lines 354-360
Link Here
|
354 |
scope.problemReporter().localVariableNullComparedToNonNull(local, reference); |
354 |
scope.problemReporter().localVariableNullComparedToNonNull(local, reference); |
355 |
} |
355 |
} |
356 |
if (!flowInfo.isMarkedAsNullOrNonNullInAssertExpression(local)) { |
356 |
if (!flowInfo.isMarkedAsNullOrNonNullInAssertExpression(local)) { |
357 |
flowInfo.initsWhenTrue().setReachMode(FlowInfo.UNREACHABLE); |
357 |
flowInfo.initsWhenTrue().setReachMode(FlowInfo.UNREACHABLE_BY_NULLANALYSIS); |
358 |
} |
358 |
} |
359 |
return; |
359 |
return; |
360 |
case FlowContext.IN_ASSIGNMENT: |
360 |
case FlowContext.IN_ASSIGNMENT: |