draft of another quickfix: if parameter is explicitly checked for null add @Nullable to its declaration
(previous commit was incomplete)
+ apply the new quickfix both for == null and != null.
diff --git a/plugins/org.eclipse.objectteams.jdt.nullity/src/org/eclipse/objectteams/internal/jdt/nullity/quickfix/NullAnnotationsCleanUp.java b/plugins/org.eclipse.objectteams.jdt.nullity/src/org/eclipse/objectteams/internal/jdt/nullity/quickfix/NullAnnotationsCleanUp.java
index 58e93fb..ddb34ce 100644
--- a/plugins/org.eclipse.objectteams.jdt.nullity/src/org/eclipse/objectteams/internal/jdt/nullity/quickfix/NullAnnotationsCleanUp.java
+++ b/plugins/org.eclipse.objectteams.jdt.nullity/src/org/eclipse/objectteams/internal/jdt/nullity/quickfix/NullAnnotationsCleanUp.java
@@ -148,7 +148,7 @@
 			if (   isEnabled(CleanUpConstants.ADD_MISSING_ANNOTATIONS) 
 				&& (   ((id == DefiniteNullFromNonNullMethod) && isEnabled(CleanUpConstants.ADD_DEFINITELY_MISSING_RETURN_ANNOTATION_NULLABLE))
 					|| ((id == PotentialNullFromNonNullMethod) && isEnabled(CleanUpConstants.ADD_POTENTIALLY_MISSING_RETURN_ANNOTATION_NULLABLE))
-					|| ((id == IProblem.NonNullLocalVariableComparisonYieldsFalse) && isEnabled(CleanUpConstants.ADD_DEFINITELY_MISSING_PARAMETER_ANNOTATION_NULLABLE)))) 
+					|| (QuickFixes.mayIndicateParameterNullcheck(id) && isEnabled(CleanUpConstants.ADD_DEFINITELY_MISSING_PARAMETER_ANNOTATION_NULLABLE)))) 
 			{
 				// FIXME search specifically: return param (which??)
 //				if (QuickFixes.hasExplicitNullnessAnnotation(compilationUnit, problem.getOffset()))
@@ -177,7 +177,7 @@
 			int id= problems[i].getID();
 			if (   (addDefinitelyMissingReturnNullable && id == DefiniteNullFromNonNullMethod)
 				|| (addPotentiallyMissingReturnNullable && id == PotentialNullFromNonNullMethod)
-				|| (addDefinitelyMissingParamNullable && id == IProblem.NonNullLocalVariableComparisonYieldsFalse))
+				|| (addDefinitelyMissingParamNullable && QuickFixes.mayIndicateParameterNullcheck(id)))
 				if (!QuickFixes.hasExplicitNullnessAnnotation((ICompilationUnit) compilationUnit.getJavaElement(), problems[i].getSourceStart()))
 					result++;
 		}
diff --git a/plugins/org.eclipse.objectteams.jdt.nullity/src/org/eclipse/objectteams/internal/jdt/nullity/quickfix/QuickFixes.java b/plugins/org.eclipse.objectteams.jdt.nullity/src/org/eclipse/objectteams/internal/jdt/nullity/quickfix/QuickFixes.java
index f9565c2..9a377f5 100644
--- a/plugins/org.eclipse.objectteams.jdt.nullity/src/org/eclipse/objectteams/internal/jdt/nullity/quickfix/QuickFixes.java
+++ b/plugins/org.eclipse.objectteams.jdt.nullity/src/org/eclipse/objectteams/internal/jdt/nullity/quickfix/QuickFixes.java
@@ -71,6 +71,7 @@
 			case DefiniteNullFromNonNullMethod:
 			case PotentialNullFromNonNullMethod:
 			case IProblem.NonNullLocalVariableComparisonYieldsFalse:
+			case IProblem.RedundantNullCheckOnNonNullLocalVariable:
 					return true;
 			default:
 				return base.hasCorrections(cu, problemId);
@@ -93,6 +94,7 @@
 				addNullableAnnotationInSignatureProposal(context, problem, proposals);
 				break;			
 			case IProblem.NonNullLocalVariableComparisonYieldsFalse:
+			case IProblem.RedundantNullCheckOnNonNullLocalVariable:
 				if (isComplainingAboutArgument(context, problem))
 					addNullableAnnotationInSignatureProposal(context, problem, proposals);
 				break;
@@ -112,7 +114,7 @@
 				options.put(CleanUpConstants.ADD_DEFINITELY_MISSING_RETURN_ANNOTATION_NULLABLE, CleanUpOptions.TRUE);
 			if (problem.getProblemId() == PotentialNullFromNonNullMethod)
 				options.put(CleanUpConstants.ADD_POTENTIALLY_MISSING_RETURN_ANNOTATION_NULLABLE, CleanUpOptions.TRUE);
-			if (problem.getProblemId() == IProblem.NonNullLocalVariableComparisonYieldsFalse)
+			if (mayIndicateParameterNullcheck(problem.getProblemId()))
 				options.put(CleanUpConstants.ADD_DEFINITELY_MISSING_PARAMETER_ANNOTATION_NULLABLE, CleanUpOptions.TRUE);
 			FixCorrectionProposal proposal= new FixCorrectionProposal(fix, new NullAnnotationsCleanUp(options, this), 15, image, context);
 			proposals.add(proposal);
@@ -170,7 +172,7 @@
 			for (int i= 0; i < problems.length; i++) {
 				if (   (addDefinitelyMissingReturnAnnotations && (problems[i].getID() == DefiniteNullFromNonNullMethod))
 					|| (addPotentiallyMissingReturnAnnotations && (problems[i].getID() == PotentialNullFromNonNullMethod))
-					|| (addDefinitelyMissingParamAnnotations && (problems[i].getID() == IProblem.NonNullLocalVariableComparisonYieldsFalse)))
+					|| (addDefinitelyMissingParamAnnotations && mayIndicateParameterNullcheck(problems[i].getID())))
 				locations[i]= new ProblemLocation(problems[i]);
 			}
 		}
@@ -221,7 +223,7 @@
 		MethodDeclaration declaration= (MethodDeclaration) declaringNode;
 		
 		RewriteOperations.SignatureAnnotationRewriteOperation result = null;
-		if (problem.getProblemId() == IProblem.NonNullLocalVariableComparisonYieldsFalse) {
+		if (mayIndicateParameterNullcheck(problem.getProblemId())) {
 			if (selectedNode.getNodeType() == ASTNode.SIMPLE_NAME && declaration.getNodeType() == ASTNode.METHOD_DECLARATION) {
 				IBinding binding = ((SimpleName)selectedNode).resolveBinding();
 				if (binding.getKind() == IBinding.VARIABLE && ((IVariableBinding)binding).isParameter())
@@ -245,7 +247,12 @@
 	}
 
 	static boolean isMissingNullableAnnotationProblem(int id) {
-		return id == DefiniteNullFromNonNullMethod || id == PotentialNullFromNonNullMethod || id == IProblem.NonNullLocalVariableComparisonYieldsFalse;
+		return id == DefiniteNullFromNonNullMethod || id == PotentialNullFromNonNullMethod 
+				|| mayIndicateParameterNullcheck(id);
+	}
+	
+	static boolean mayIndicateParameterNullcheck(int problemId) {
+		return problemId == IProblem.NonNullLocalVariableComparisonYieldsFalse || problemId == IProblem.RedundantNullCheckOnNonNullLocalVariable;
 	}
 	
 	static boolean hasExplicitNullnessAnnotation(ICompilationUnit compilationUnit, int offset) {