org.aspectj.org.eclipse.jdt.internal.compiler.lookup
Class ImplicitNullAnnotationVerifier

java.lang.Object
  extended by org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ImplicitNullAnnotationVerifier
Direct Known Subclasses:
MethodVerifier

public class ImplicitNullAnnotationVerifier
extends java.lang.Object

Extracted slice from MethodVerifier15, which is responsible only for implicit null annotations. First, if enabled, it detects overridden methods from which null annotations are inherited. Next, also default nullness is filled into remaining empty slots. After all implicit annotations have been filled in compatibility is checked and problems are complained.


Field Summary
protected  LookupEnvironment environment
           
 
Constructor Summary
ImplicitNullAnnotationVerifier(LookupEnvironment environment, boolean inheritNullAnnotations)
           
 
Method Summary
 void checkImplicitNullAnnotations(MethodBinding currentMethod, AbstractMethodDeclaration srcMethod, boolean complain, Scope scope)
          Check and fill in implicit annotations from overridden methods and from default.
protected  void recordDeferredInheritedNullness(Scope scope, ASTNode location, MethodBinding inheritedMethod, java.lang.Boolean inheritedNonNullness, org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ImplicitNullAnnotationVerifier.InheritedNonNullnessInfo nullnessInfo)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

environment

protected LookupEnvironment environment
Constructor Detail

ImplicitNullAnnotationVerifier

public ImplicitNullAnnotationVerifier(LookupEnvironment environment,
                                      boolean inheritNullAnnotations)
Method Detail

checkImplicitNullAnnotations

public void checkImplicitNullAnnotations(MethodBinding currentMethod,
                                         AbstractMethodDeclaration srcMethod,
                                         boolean complain,
                                         Scope scope)
Check and fill in implicit annotations from overridden methods and from default. Precondition: caller has checked whether annotation-based null analysis is enabled.


recordDeferredInheritedNullness

protected void recordDeferredInheritedNullness(Scope scope,
                                               ASTNode location,
                                               MethodBinding inheritedMethod,
                                               java.lang.Boolean inheritedNonNullness,
                                               org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ImplicitNullAnnotationVerifier.InheritedNonNullnessInfo nullnessInfo)