Index: compiler/org/eclipse/jdt/core/compiler/IProblem.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/core/compiler/IProblem.java,v retrieving revision 1.196 diff -r1.196 IProblem.java 1308a1309,1315 > > int LocalCannotBeAssignedPotentiallyNull = Internal + 903; > int CannotPassPotentiallyNullExpressionAsArgument = Internal + 904; > int CannotReturnPotentiallyNullExpression = Internal + 905; > int NonNullAnnotationIsMissingForOverridingMethod = Internal + 906; > int NonNullAnnotationIsMissingForArgumentInOverridingMethod = Internal + 907; > Index: compiler/org/eclipse/jdt/internal/compiler/ast/ASTNode.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/ASTNode.java,v retrieving revision 1.89 diff -r1.89 ASTNode.java 17a18 > import org.eclipse.jdt.internal.compiler.impl.CompilerOptions; 18a20 > import org.eclipse.jdt.internal.compiler.problem.ProblemSeverities; 722a725,748 > /** > * Return true if ab contains > * a non-null annotation. > */ > public static boolean isNonNullAnnotated(Scope currentScope, AnnotationBinding[] ab) { > if (ab == null || ab.length == 0) > return false; > if (currentScope.compilerOptions().getSeverity(CompilerOptions.NullReference) != ProblemSeverities.Ignore) { > // TODO: use lazy creation > char[][] annotations = CharOperation.splitOn(';', currentScope.compilerOptions().nonNullAnnotations.toCharArray()); > for (int i = 0; i < ab.length; i++) { > if (ab[i] != null) { > for (int j = 0; j < annotations.length; j++) { > char[] annotation = ab[i].getAnnotationType().readableName(); > if (CharOperation.compareTo(annotation, annotations[j]) == 0) { > return true; > } > } > } > } > } > return false; > } > Index: compiler/org/eclipse/jdt/internal/compiler/ast/Assignment.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/Assignment.java,v retrieving revision 1.80 diff -r1.80 Assignment.java 25c25,26 < --- > private boolean isNonNull; > 33a35 > this.isNonNull = false; 35a38 > 46a50,51 > if (isNonNull && nullStatus != FlowInfo.NON_NULL) > local.declaringScope.problemReporter().localCannotBeAssignedWithPotentiallyNull(local, expression); 60c65,68 < flowInfo.markAsDefinitelyUnknown(local); --- > if (isNonNull) > flowInfo.markAsDefinitelyNonNull(local); > else > flowInfo.markAsDefinitelyUnknown(local); 71c79,82 < flowContext.initsOnFinally.markAsDefinitelyUnknown(local); --- > if (isNonNull) > flowContext.initsOnFinally.markAsDefinitelyNonNull(local); > else > flowContext.initsOnFinally.markAsDefinitelyUnknown(local); 155a167,168 > if (isNonNull) > return FlowInfo.NON_NULL; 201a215,221 > // check for NonNull annotation > LocalVariableBinding local = this.lhs.localVariableBinding(); > if (local != null && local.kind() == Binding.LOCAL > && (local.type.tagBits & TagBits.IsBaseType) == 0) { > isNonNull = isNonNullAnnotated(scope, local.getAnnotations()); > } > Index: compiler/org/eclipse/jdt/internal/compiler/ast/EqualExpression.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/EqualExpression.java,v retrieving revision 1.69 diff -r1.69 EqualExpression.java 30a31,42 > // TODO: if allowed, simpler check would be for left and right nullStatus equality (for != UNKNOW) > Expression tmp = left; > while (tmp instanceof CastExpression) > tmp = ((CastExpression)tmp).expression; > if (tmp instanceof MessageSend) { > MessageSend ms = (MessageSend)tmp; > int rightNullStatus = right.nullStatus(flowInfo); > if ((rightNullStatus == FlowInfo.NULL > || rightNullStatus == FlowInfo.NON_NULL) > && isNonNullAnnotated(scope, ms.binding.getAnnotations())) > scope.problemReporter().cannotReturnPotentiallyNullExpression(left); > } 34a47,57 > tmp = right; > while (tmp instanceof CastExpression) > tmp = ((CastExpression)tmp).expression; > if (tmp instanceof MessageSend) { > MessageSend ms = (MessageSend)tmp; > int rightNullStatus = left.nullStatus(flowInfo); > if ((rightNullStatus == FlowInfo.NULL > || rightNullStatus == FlowInfo.NON_NULL) > && isNonNullAnnotated(scope, ms.binding.getAnnotations())) > scope.problemReporter().cannotReturnPotentiallyNullExpression(right); > } Index: compiler/org/eclipse/jdt/internal/compiler/ast/LocalDeclaration.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/LocalDeclaration.java,v retrieving revision 1.62 diff -r1.62 LocalDeclaration.java 64a65,66 > if (isNonNullAnnotated(currentScope, binding.getAnnotations()) && nullStatus != FlowInfo.NON_NULL) > binding.declaringScope.problemReporter().localCannotBeAssignedWithPotentiallyNull(binding, initialization); Index: compiler/org/eclipse/jdt/internal/compiler/ast/MessageSend.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/MessageSend.java,v retrieving revision 1.126 diff -r1.126 MessageSend.java 22a23 > import org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding; 42c43 < --- > 58c59,61 < --- > > private boolean isReturnValueNonNull = false; > 68a72 > final AnnotationBinding[][] parameterAnnotations = binding.getParameterAnnotations(); 70a75,79 > > if (arguments[i].nullStatus(flowInfo) != FlowInfo.NON_NULL > && isNonNullAnnotated(currentScope, parameterAnnotations[i])) { > currentScope.problemReporter().cannotPassPotentiallyNullExpressionAsArgument(binding, arguments[i]); > } 77c86 < // TODO (maxime) the copy above is needed because of a side effect into --- > // TODO (maxime) the copy above is needed because of a side effect into 81c90 < manageSyntheticAccessIfNecessary(currentScope, flowInfo); --- > manageSyntheticAccessIfNecessary(currentScope, flowInfo); 95c104 < if (originalBinding != this.binding --- > if (originalBinding != this.binding 99c108 < TypeBinding targetType = (!compileTimeType.isBaseType() && runtimeTimeType.isBaseType()) --- > TypeBinding targetType = (!compileTimeType.isBaseType() && runtimeTimeType.isBaseType()) 103c112 < } else if (this.actualReceiverType.isArrayType() --- > } else if (this.actualReceiverType.isArrayType() 105,106c114,115 < && this.binding.parameters == Binding.NO_PARAMETERS < && scope.compilerOptions().complianceLevel >= ClassFileConstants.JDK1_5 --- > && this.binding.parameters == Binding.NO_PARAMETERS > && scope.compilerOptions().complianceLevel >= ClassFileConstants.JDK1_5 109c118 < this.valueCast = runtimeTimeType; --- > this.valueCast = runtimeTimeType; 114c123 < scope.problemReporter().invalidType(this, --- > scope.problemReporter().invalidType(this, 120c129 < } --- > } 131c140 < */ --- > */ 143c152 < ReferenceBinding targetType = currentScope.enclosingSourceType().enclosingTypeAt((this.bits & ASTNode.DepthMASK) >> ASTNode.DepthSHIFT); --- > ReferenceBinding targetType = currentScope.enclosingSourceType().enclosingTypeAt((this.bits & ASTNode.DepthMASK) >> ASTNode.DepthSHIFT); 148c157 < if (this.receiverGenericCast != null) --- > if (this.receiverGenericCast != null) 151c160 < --- > 201c210 < } --- > } 203c212 < public boolean isSuperAccess() { --- > public boolean isSuperAccess() { 206c215 < public boolean isTypeAccess() { --- > public boolean isTypeAccess() { 217c226 < // depth is set for both implicit and explicit access (see MethodBinding#canBeSeenBy) --- > // depth is set for both implicit and explicit access (see MethodBinding#canBeSeenBy) 219c228 < --- > 236,237c245,246 < if (((this.bits & ASTNode.DepthMASK) != 0) < && this.codegenBinding.declaringClass.getPackage() --- > if (((this.bits & ASTNode.DepthMASK) != 0) > && this.codegenBinding.declaringClass.getPackage() 246c255 < --- > 250c259 < // and not from Object or implicit static method call. --- > // and not from Object or implicit static method call. 263c272 < // Post 1.4.0 target, array clone() invocations are qualified with array type --- > // Post 1.4.0 target, array clone() invocations are qualified with array type 267a277,278 > if (isReturnValueNonNull) > return FlowInfo.NON_NULL; 276c287 < if (this.valueCast != null) --- > if (this.valueCast != null) 305c316 < } --- > } 311c322 < --- > 313c324 < --- > 327c338 < for (int i = 0; i < this.arguments.length ; i ++) { --- > for (int i = 0; i < this.arguments.length ; i ++) { 340c351 < boolean receiverCast = false, argsContainCast = false; --- > boolean receiverCast = false, argsContainCast = false; 345c356 < this.actualReceiverType = this.receiver.resolveType(scope); --- > this.actualReceiverType = this.receiver.resolveType(scope); 349,350c360,361 < if (((CastExpression)this.receiver).expression.resolvedType == this.actualReceiverType) { < scope.problemReporter().unnecessaryCast((CastExpression)this.receiver); --- > if (((CastExpression)this.receiver).expression.resolvedType == this.actualReceiverType) { > scope.problemReporter().unnecessaryCast((CastExpression)this.receiver); 370c381 < } --- > } 374c385 < boolean argHasError = false; // typeChecks all arguments --- > boolean argHasError = false; // typeChecks all arguments 393c404 < this.binding = --- > this.binding = 425c436 < this.binding = --- > this.binding = 428c439 < : scope.getMethod(this.actualReceiverType, this.selector, argumentTypes, this); --- > : scope.getMethod(this.actualReceiverType, this.selector, argumentTypes, this); 433c444 < } else { --- > } else { 455c466 < MethodBinding closestMatchOriginal = closestMatch.original(); --- > MethodBinding closestMatchOriginal = closestMatch.original(); 468,469c479,480 < if (this.actualReceiverType.isRawType() < && (this.receiver.bits & ASTNode.IgnoreRawTypeCheck) == 0 --- > if (this.actualReceiverType.isRawType() > && (this.receiver.bits & ASTNode.IgnoreRawTypeCheck) == 0 490c501 < } --- > } 505,507c516,518 < if (this.actualReceiverType.isArrayType() < && this.binding.parameters == Binding.NO_PARAMETERS < && compilerOptions.complianceLevel >= ClassFileConstants.JDK1_5 --- > if (this.actualReceiverType.isArrayType() > && this.binding.parameters == Binding.NO_PARAMETERS > && compilerOptions.complianceLevel >= ClassFileConstants.JDK1_5 529a541,544 > > if (isNonNullAnnotated(scope, binding.getAnnotations())) > isReturnValueNonNull = true; > 560c575 < } --- > } Index: compiler/org/eclipse/jdt/internal/compiler/ast/MethodDeclaration.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/MethodDeclaration.java,v retrieving revision 1.63 diff -r1.63 MethodDeclaration.java 22a23,24 > import org.eclipse.jdt.internal.compiler.lookup.MethodBinding; > import org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding; 69a72,102 > boolean[] argumentIsNonNull = null; > if (arguments != null) > argumentIsNonNull = new boolean[arguments.length]; > > ReferenceBinding declaringClassRef = binding.declaringClass; > > if ((returnType.bits & TagBits.IsBaseType) == 0) { > > ReferenceBinding type = isOverriddenMethodNonNullAnnotated(declaringClassRef, -1, classScope); > if (type != null && !isNonNullAnnotated(classScope, binding.getAnnotations())) > classScope.problemReporter().nonNullAnnotationIsMissingForOverridingMethod(type, binding, this); > } > > if (arguments != null) { > for (int i = 0; i < arguments.length; i++) { > ReferenceBinding type = isOverriddenMethodNonNullAnnotated(declaringClassRef, i, classScope); > boolean argIsNonNull = isNonNullAnnotated(classScope, binding.getParameterAnnotations(i)); > if (type != null && !argIsNonNull) > classScope.problemReporter().nonNullAnnotationIsMissingForArgumentInOverridingMethod(type, binding, arguments[i]); > > argumentIsNonNull[i] = type != null || argIsNonNull; > } > } > > if (argumentIsNonNull != null) { > for (int i = 0; i < argumentIsNonNull.length; i++) { > if (!argumentIsNonNull[i] && isNonNullAnnotated(classScope, binding.getParameterAnnotations(i))) > argumentIsNonNull[i] = true; > } > } > 81a115,116 > if (argumentIsNonNull[i]) > flowInfo.markAsDefinitelyNonNull(this.arguments[i].binding); 115a151,221 > > /** > * Check all the overridden methods (super classes and interfaces) > * searching for NonNull annotation. Return the first type which > * contains an annotated overridden method. > * > * @param declaringClassRef the base type > * @param argument if positive, search annotations on parameters, else > * search on method > * @param classScope > * @return the type containing the overridden and annotated method > * or null > */ > public ReferenceBinding isOverriddenMethodNonNullAnnotated(ReferenceBinding declaringClassRef, int argument, ClassScope classScope) { > if (declaringClassRef == null) > return null; > > if (binding.isPrivate() || binding.isConstructor()) > return null; > > ReferenceBinding superClassRef = declaringClassRef.superclass(); > if (superClassRef != null) { > MethodBinding mb = superClassRef.getExactMethod(selector, binding.parameters, classScope.compilationUnitScope()); > > if (mb != null) { > boolean nonNullAnnotated; > if (argument < 0) > nonNullAnnotated = isNonNullAnnotated(classScope, mb.getAnnotations()); > else > nonNullAnnotated = isNonNullAnnotated(classScope, mb.getParameterAnnotations(argument)); > > // if an annotation is found, returns > if (nonNullAnnotated) > return superClassRef; > } else { > ReferenceBinding type = isOverriddenMethodNonNullAnnotated(superClassRef, argument, classScope); > if (type != null) > return type; > } > } > > // if an overridden method have been found, but it was not annotated > // the check continues through the interfaces > > ReferenceBinding[] superInterfacesRef = declaringClassRef.superInterfaces(); > if (superInterfacesRef != null) { > for (int i = 0; i < superInterfacesRef.length; i++) { > if (superInterfacesRef[i] != null) { > MethodBinding mb = superInterfacesRef[i].getExactMethod(selector, binding.parameters, classScope.compilationUnitScope()); > > if (mb != null) { > boolean nonNullAnnotated; > if (argument < 0) > nonNullAnnotated = isNonNullAnnotated(classScope, mb.getAnnotations()); > else > nonNullAnnotated = isNonNullAnnotated(classScope, mb.getParameterAnnotations(argument)); > > if (nonNullAnnotated) > return superInterfacesRef[i]; > } else { > ReferenceBinding type = isOverriddenMethodNonNullAnnotated(superInterfacesRef[i], argument, classScope); > if (type != null) > return type; > } > } > } > } > > return null; > } > Index: compiler/org/eclipse/jdt/internal/compiler/ast/ReturnStatement.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/ReturnStatement.java,v retrieving revision 1.59 diff -r1.59 ReturnStatement.java 39a40,47 > > AbstractMethodDeclaration methodDecl = currentScope.methodScope().referenceMethod(); > MethodBinding methodBinding = methodDecl.binding; > > if ((methodBinding.returnType.tagBits & TagBits.IsBaseType) == 0 > && expression.nullStatus(flowInfo) != FlowInfo.NON_NULL > && isNonNullAnnotated(currentScope, methodBinding.getAnnotations())) > currentScope.problemReporter().cannotReturnPotentiallyNullExpression(expression); Index: compiler/org/eclipse/jdt/internal/compiler/impl/CompilerOptions.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/impl/CompilerOptions.java,v retrieving revision 1.196 diff -r1.196 CompilerOptions.java 119a120 > public static final String OPTION_Non_Null_Annotations = "org.eclipse.jdt.core.compiler.nonNullAnnotations"; //$NON-NLS-1$ 339a341,343 > // annotations list for null checks (separator is ';') > public String nonNullAnnotations = "org.NonNull;edu.umd.cs.findbugs.annotations.NonNull"; //$NON-NLS-1$ > 457a462 > optionsMap.put(OPTION_Non_Null_Annotations, this.nonNullAnnotations); 750c755 < } --- > } 937c942 < } --- > } 940c945 < } --- > } 975a981,983 > if ((optionValue = optionsMap.get(OPTION_Non_Null_Annotations)) != null) { > this.nonNullAnnotations = (String)optionValue; > } 1062a1071 > buf.append("\n\t- non null annotations list (';'): ").append(this.nonNullAnnotations); //$NON-NLS-1$ Index: compiler/org/eclipse/jdt/internal/compiler/problem/ProblemReporter.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/problem/ProblemReporter.java,v retrieving revision 1.365 diff -r1.365 ProblemReporter.java 33c33 < --- > 49c49 < case IProblem.MaskedCatch : --- > case IProblem.MaskedCatch : 54c54 < --- > 57c57 < --- > 65,66c65,66 < case IProblem.OverridingDeprecatedMethod : < case IProblem.UsingDeprecatedType : --- > case IProblem.OverridingDeprecatedMethod : > case IProblem.UsingDeprecatedType : 71c71 < --- > 74c74 < --- > 84c84 < case IProblem.NeedToEmulateConstructorAccess : --- > case IProblem.NeedToEmulateConstructorAccess : 93c93 < --- > 130c130 < --- > 140c140 < --- > 144c144 < --- > 147c147 < --- > 154c154 < --- > 174c174 < --- > 179c179 < --- > 185c185 < --- > 201c201 < --- > 209c209 < --- > 216c216 < --- > 219c219 < --- > 225c225 < --- > 307c307 < --- > 310c310 < --- > 316a317,323 > > case IProblem.LocalCannotBeAssignedPotentiallyNull: > case IProblem.CannotReturnPotentiallyNullExpression: > case IProblem.CannotPassPotentiallyNullExpressionAsArgument: > case IProblem.NonNullAnnotationIsMissingForOverridingMethod: > case IProblem.NonNullAnnotationIsMissingForArgumentInOverridingMethod: > return CompilerOptions.NullReference; 343c350 < --- > 351c358 < --- > 357c364 < --- > 366c373 < --- > 369c376 < --- > 372c379 < --- > 375c382 < --- > 381c388 < --- > 384c391 < --- > 399c406 < --- > 403c410 < case (int)(CompilerOptions.PotentialNullReference >>> 32): --- > case (int)(CompilerOptions.PotentialNullReference >>> 32): 409c416 < --- > 412c419 < --- > 422c429 < --- > 429c436 < } --- > } 436c443 < --- > 471c478 < new String(type.sourceName()), --- > new String(type.sourceName()), 478c485 < new String(type.sourceName()), --- > new String(type.sourceName()), 505c512 < new String[] { --- > new String[] { 507,508c514,515 < typesAsString(abstractMethod.isVarargs(), abstractMethod.parameters, false), < new String(decl.name), --- > typesAsString(abstractMethod.isVarargs(), abstractMethod.parameters, false), > new String(decl.name), 510c517 < new String[] { --- > new String[] { 512,513c519,520 < typesAsString(abstractMethod.isVarargs(), abstractMethod.parameters, true), < new String(decl.name), --- > typesAsString(abstractMethod.isVarargs(), abstractMethod.parameters, true), > new String(decl.name), 522c529 < new String[] { --- > new String[] { 524,526c531,533 < typesAsString(abstractMethod.isVarargs(), abstractMethod.parameters, false), < new String(abstractMethod.declaringClass.readableName()), < new String(type.readableName()), --- > typesAsString(abstractMethod.isVarargs(), abstractMethod.parameters, false), > new String(abstractMethod.declaringClass.readableName()), > new String(type.readableName()), 528c535 < new String[] { --- > new String[] { 530,532c537,539 < typesAsString(abstractMethod.isVarargs(), abstractMethod.parameters, true), < new String(abstractMethod.declaringClass.shortReadableName()), < new String(type.shortReadableName()), --- > typesAsString(abstractMethod.isVarargs(), abstractMethod.parameters, true), > new String(abstractMethod.declaringClass.shortReadableName()), > new String(type.shortReadableName()), 564c571 < new String(inheritedMethod.selector), --- > new String(inheritedMethod.selector), 569c576 < new String(inheritedMethod.selector), --- > new String(inheritedMethod.selector), 572c579 < location.sourceEnd); --- > location.sourceEnd); 736c743 < String[] arguments = new String[] { new String(name) }; --- > String[] arguments = new String[] { new String(name) }; 901c908 < new String[] { --- > new String[] { 903c910 < typesAsString(enumConstructor.isVarargs(), enumConstructor.parameters, false), --- > typesAsString(enumConstructor.isVarargs(), enumConstructor.parameters, false), 905c912 < new String[] { --- > new String[] { 907c914 < typesAsString(enumConstructor.isVarargs(), enumConstructor.parameters, true), --- > typesAsString(enumConstructor.isVarargs(), enumConstructor.parameters, true), 986c993 < nodeSourceEnd(field, location)); --- > nodeSourceEnd(field, location)); 1061c1068 < --- > 1102c1109 < return ProblemSeverities.Ignore; --- > return ProblemSeverities.Ignore; 1125c1132 < return ProblemSeverities.Ignore; --- > return ProblemSeverities.Ignore; 1144c1151 < if ((problemID & IProblem.Javadoc) != 0 && !this.options.docCommentSupport) --- > if ((problemID & IProblem.Javadoc) != 0 && !this.options.docCommentSupport) 1169c1176 < // this code is called on IntLiteral and LongLiteral --- > // this code is called on IntLiteral and LongLiteral 1206c1213 < --- > 1365c1372 < typesAsString(inheritedMethod1.isVarargs(), inheritedMethod1.original().parameters, false), --- > typesAsString(inheritedMethod1.isVarargs(), inheritedMethod1.original().parameters, false), 1370c1377 < typesAsString(inheritedMethod1.isVarargs(), inheritedMethod1.original().parameters, true), --- > typesAsString(inheritedMethod1.isVarargs(), inheritedMethod1.original().parameters, true), 1469c1476 < ? IProblem.DuplicateModifierForArgument --- > ? IProblem.DuplicateModifierForArgument 1505c1512 < nodeSourceEnd(field, reference)); --- > nodeSourceEnd(field, reference)); 1532c1539 < sourceEnd); --- > sourceEnd); 1540c1547 < new String[] { --- > new String[] { 1542,1543c1549,1550 < typesAsString(abstractMethod.isVarargs(), abstractMethod.parameters, false), < new String(abstractMethod.declaringClass.readableName()), --- > typesAsString(abstractMethod.isVarargs(), abstractMethod.parameters, false), > new String(abstractMethod.declaringClass.readableName()), 1545c1552 < new String[] { --- > new String[] { 1547,1548c1554,1555 < typesAsString(abstractMethod.isVarargs(), abstractMethod.parameters, true), < new String(abstractMethod.declaringClass.shortReadableName()), --- > typesAsString(abstractMethod.isVarargs(), abstractMethod.parameters, true), > new String(abstractMethod.declaringClass.shortReadableName()), 1557c1564 < new String[] { --- > new String[] { 1559,1560c1566,1567 < typesAsString(abstractMethod.isVarargs(), abstractMethod.parameters, false), < new String(field.name), --- > typesAsString(abstractMethod.isVarargs(), abstractMethod.parameters, false), > new String(field.name), 1562c1569 < new String[] { --- > new String[] { 1564,1565c1571,1572 < typesAsString(abstractMethod.isVarargs(), abstractMethod.parameters, true), < new String(field.name), --- > typesAsString(abstractMethod.isVarargs(), abstractMethod.parameters, true), > new String(field.name), 1592c1599 < nodeSourceEnd(field, reference)); --- > nodeSourceEnd(field, reference)); 1705c1712 < /** @param classpathEntryType one of {@link AccessRestriction#COMMAND_LINE}, --- > /** @param classpathEntryType one of {@link AccessRestriction#COMMAND_LINE}, 1707c1714 < public void forbiddenReference(FieldBinding field, ASTNode location, --- > public void forbiddenReference(FieldBinding field, ASTNode location, 1715,1716c1722,1723 < new String[] { < classpathEntryName, --- > new String[] { > classpathEntryName, 1723c1730 < /** @param classpathEntryType one of {@link AccessRestriction#COMMAND_LINE}, --- > /** @param classpathEntryType one of {@link AccessRestriction#COMMAND_LINE}, 1725c1732 < public void forbiddenReference(MethodBinding method, ASTNode location, --- > public void forbiddenReference(MethodBinding method, ASTNode location, 1728c1735 < if (severity == ProblemSeverities.Ignore) return; --- > if (severity == ProblemSeverities.Ignore) return; 1734,1735c1741,1742 < new String[] { < classpathEntryName, --- > new String[] { > classpathEntryName, 1745,1746c1752,1753 < new String[] { < classpathEntryName, --- > new String[] { > classpathEntryName, 1753c1760 < /** @param classpathEntryType one of {@link AccessRestriction#COMMAND_LINE}, --- > /** @param classpathEntryType one of {@link AccessRestriction#COMMAND_LINE}, 1755c1762 < public void forbiddenReference(TypeBinding type, ASTNode location, --- > public void forbiddenReference(TypeBinding type, ASTNode location, 1765c1772 < classpathEntryName, --- > classpathEntryName, 1800c1807 < int problemId, --- > int problemId, 1803c1810 < int problemStartPosition, --- > int problemStartPosition, 1812,1813c1819,1820 < this.referenceContext, < this.referenceContext == null ? null : this.referenceContext.compilationResult()); --- > this.referenceContext, > this.referenceContext == null ? null : this.referenceContext.compilationResult()); 1817c1824 < // reference context. --- > // reference context. 1819c1826 < int problemId, --- > int problemId, 1822c1829 < int problemStartPosition, --- > int problemStartPosition, 1832,1833c1839,1840 < this.referenceContext, < unitResult); --- > this.referenceContext, > unitResult); 1840c1847 < int problemId, --- > int problemId, 1844c1851 < int problemStartPosition, --- > int problemStartPosition, 1854c1861 < problemEndPosition); --- > problemEndPosition); 1860c1867 < int problemId, --- > int problemId, 1865c1872 < int problemStartPosition, --- > int problemStartPosition, 1875,1876c1882,1883 < this.referenceContext, < this.referenceContext == null ? null : this.referenceContext.compilationResult()); --- > this.referenceContext, > this.referenceContext == null ? null : this.referenceContext.compilationResult()); 1885c1892 < }, --- > }, 1888c1895 < }, --- > }, 1946c1953 < arguments, --- > arguments, 1956c1963 < arguments, --- > arguments, 1964,1965c1971,1972 < NoArgument, < NoArgument, --- > NoArgument, > NoArgument, 1972,1973c1979,1980 < NoArgument, < NoArgument, --- > NoArgument, > NoArgument, 2004c2011 < --- > 2009c2016 < problemID = IProblem.CannotDefineAnnotationInLocalType; --- > problemID = IProblem.CannotDefineAnnotationInLocalType; 2011c2018 < problemID = IProblem.CannotDefineInterfaceInLocalType; --- > problemID = IProblem.CannotDefineInterfaceInLocalType; 2049c2056 < }, --- > }, 2053c2060 < }, --- > }, 2063c2070 < }, --- > }, 2067c2074 < }, --- > }, 2120,2121c2127,2128 < NoArgument, < NoArgument, --- > NoArgument, > NoArgument, 2151c2158 < }, --- > }, 2155c2162 < }, --- > }, 2166c2173 < }, --- > }, 2171c2178 < }, --- > }, 2227c2234 < }, --- > }, 2232c2239 < }, --- > }, 2261c2268 < qualifiedTypeReference.sourceEnd); --- > qualifiedTypeReference.sourceEnd); 2285c2292 < qualifiedTypeReference.sourceEnd); --- > qualifiedTypeReference.sourceEnd); 2378,2381c2385,2388 < IProblem.ImportNotFound, < arguments, < arguments, < importRef.sourceStart, --- > IProblem.ImportNotFound, > arguments, > arguments, > importRef.sourceStart, 2389,2392c2396,2399 < IProblem.InvalidTypeForStaticImport, < arguments, < arguments, < importRef.sourceStart, --- > IProblem.InvalidTypeForStaticImport, > arguments, > arguments, > importRef.sourceStart, 2401c2408 < if (currentMethod.declaringClass.isInterface() --- > if (currentMethod.declaringClass.isInterface() 2427c2434 < } else --- > } else 2474c2481 < if (declaringClass.isInterface() --- > if (declaringClass.isInterface() 2659c2666 < }, --- > }, 2666c2673 < }, --- > }, 2721c2728 < --- > 2730c2737 < } --- > } 2732c2739 < boolean insideDefaultConstructor = --- > boolean insideDefaultConstructor = 2748c2755 < --- > 2772c2779 < } --- > } 2794c2801 < new String[] { --- > new String[] { 2796,2800c2803,2807 < typesAsString(shownConstructor.isVarargs(), shownConstructor.parameters, false), < new String(shownConstructor.declaringClass.readableName()), < typesAsString(false, invocationArguments, false), < new String(inferredTypeArgument.readableName()), < new String(typeParameter.sourceName), --- > typesAsString(shownConstructor.isVarargs(), shownConstructor.parameters, false), > new String(shownConstructor.declaringClass.readableName()), > typesAsString(false, invocationArguments, false), > new String(inferredTypeArgument.readableName()), > new String(typeParameter.sourceName), 2802c2809 < new String[] { --- > new String[] { 2804,2808c2811,2815 < typesAsString(shownConstructor.isVarargs(), shownConstructor.parameters, true), < new String(shownConstructor.declaringClass.shortReadableName()), < typesAsString(false, invocationArguments, true), < new String(inferredTypeArgument.shortReadableName()), < new String(typeParameter.sourceName), --- > typesAsString(shownConstructor.isVarargs(), shownConstructor.parameters, true), > new String(shownConstructor.declaringClass.shortReadableName()), > typesAsString(false, invocationArguments, true), > new String(inferredTypeArgument.shortReadableName()), > new String(typeParameter.sourceName), 2811,2813c2818,2820 < sourceEnd); < return; < --- > sourceEnd); > return; > 2820c2827 < new String[] { --- > new String[] { 2822,2823c2829,2830 < typesAsString(shownConstructor.isVarargs(), shownConstructor.parameters, false), < new String(shownConstructor.declaringClass.readableName()), --- > typesAsString(shownConstructor.isVarargs(), shownConstructor.parameters, false), > new String(shownConstructor.declaringClass.readableName()), 2825c2832 < new String[] { --- > new String[] { 2827,2828c2834,2835 < typesAsString(shownConstructor.isVarargs(), shownConstructor.parameters, true), < new String(shownConstructor.declaringClass.shortReadableName()), --- > typesAsString(shownConstructor.isVarargs(), shownConstructor.parameters, true), > new String(shownConstructor.declaringClass.shortReadableName()), 2831c2838 < sourceEnd); --- > sourceEnd); 2835c2842 < new String[] { --- > new String[] { 2837,2838c2844,2845 < typesAsString(shownConstructor.isVarargs(), shownConstructor.parameters, false), < new String(shownConstructor.declaringClass.readableName()), --- > typesAsString(shownConstructor.isVarargs(), shownConstructor.parameters, false), > new String(shownConstructor.declaringClass.readableName()), 2841c2848 < new String[] { --- > new String[] { 2843,2844c2850,2851 < typesAsString(shownConstructor.isVarargs(), shownConstructor.parameters, true), < new String(shownConstructor.declaringClass.shortReadableName()), --- > typesAsString(shownConstructor.isVarargs(), shownConstructor.parameters, true), > new String(shownConstructor.declaringClass.shortReadableName()), 2848c2855 < sourceEnd); --- > sourceEnd); 2856c2863 < new String[] { --- > new String[] { 2858,2859c2865,2866 < typesAsString(shownConstructor.isVarargs(), shownConstructor.parameters, false), < new String(shownConstructor.declaringClass.readableName()), --- > typesAsString(shownConstructor.isVarargs(), shownConstructor.parameters, false), > new String(shownConstructor.declaringClass.readableName()), 2862c2869 < new String[] { --- > new String[] { 2864,2865c2871,2872 < typesAsString(shownConstructor.isVarargs(), shownConstructor.parameters, true), < new String(shownConstructor.declaringClass.shortReadableName()), --- > typesAsString(shownConstructor.isVarargs(), shownConstructor.parameters, true), > new String(shownConstructor.declaringClass.shortReadableName()), 2869c2876 < sourceEnd); --- > sourceEnd); 2876c2883 < new String[] { --- > new String[] { 2878,2879c2885,2886 < typesAsString(shownConstructor.isVarargs(), shownConstructor.parameters, false), < new String(shownConstructor.declaringClass.readableName()), --- > typesAsString(shownConstructor.isVarargs(), shownConstructor.parameters, false), > new String(shownConstructor.declaringClass.readableName()), 2881c2888 < new String[] { --- > new String[] { 2883,2884c2890,2891 < typesAsString(shownConstructor.isVarargs(), shownConstructor.parameters, true), < new String(shownConstructor.declaringClass.shortReadableName()), --- > typesAsString(shownConstructor.isVarargs(), shownConstructor.parameters, true), > new String(shownConstructor.declaringClass.shortReadableName()), 2887c2894 < sourceEnd); --- > sourceEnd); 2914c2921 < --- > 2943c2950 < --- > 2961c2968 < --- > 3000c3007 < --- > 3079c3086 < --- > 3081c3088 < --- > 3113c3120 < nodeSourceStart(field, nameRef), --- > nodeSourceStart(field, nameRef), 3143c3150 < id, --- > id, 3146c3153 < nameRef.sourceStart, --- > nameRef.sourceStart, 3155c3162 < annotation.sourceEnd); --- > annotation.sourceEnd); 3160c3167 < --- > 3179c3186 < parameterTypeNames --- > parameterTypeNames 3190c3197 < } --- > } 3197c3204 < } --- > } 3230c3237 < new String[] { --- > new String[] { 3232,3236c3239,3243 < typesAsString(shownMethod.isVarargs(), shownMethod.parameters, false), < new String(shownMethod.declaringClass.readableName()), < typesAsString(false, invocationArguments, false), < new String(inferredTypeArgument.readableName()), < new String(typeParameter.sourceName), --- > typesAsString(shownMethod.isVarargs(), shownMethod.parameters, false), > new String(shownMethod.declaringClass.readableName()), > typesAsString(false, invocationArguments, false), > new String(inferredTypeArgument.readableName()), > new String(typeParameter.sourceName), 3238c3245 < new String[] { --- > new String[] { 3240,3244c3247,3251 < typesAsString(shownMethod.isVarargs(), shownMethod.parameters, true), < new String(shownMethod.declaringClass.shortReadableName()), < typesAsString(false, invocationArguments, true), < new String(inferredTypeArgument.shortReadableName()), < new String(typeParameter.sourceName), --- > typesAsString(shownMethod.isVarargs(), shownMethod.parameters, true), > new String(shownMethod.declaringClass.shortReadableName()), > typesAsString(false, invocationArguments, true), > new String(inferredTypeArgument.shortReadableName()), > new String(typeParameter.sourceName), 3247c3254 < (int) messageSend.nameSourcePosition); --- > (int) messageSend.nameSourcePosition); 3255c3262 < new String[] { --- > new String[] { 3257,3258c3264,3265 < typesAsString(shownMethod.isVarargs(), shownMethod.parameters, false), < new String(shownMethod.declaringClass.readableName()), --- > typesAsString(shownMethod.isVarargs(), shownMethod.parameters, false), > new String(shownMethod.declaringClass.readableName()), 3260c3267 < new String[] { --- > new String[] { 3262,3263c3269,3270 < typesAsString(shownMethod.isVarargs(), shownMethod.parameters, true), < new String(shownMethod.declaringClass.shortReadableName()), --- > typesAsString(shownMethod.isVarargs(), shownMethod.parameters, true), > new String(shownMethod.declaringClass.shortReadableName()), 3266c3273 < (int) messageSend.nameSourcePosition); --- > (int) messageSend.nameSourcePosition); 3270c3277 < new String[] { --- > new String[] { 3272,3273c3279,3280 < typesAsString(shownMethod.isVarargs(), shownMethod.parameters, false), < new String(shownMethod.declaringClass.readableName()), --- > typesAsString(shownMethod.isVarargs(), shownMethod.parameters, false), > new String(shownMethod.declaringClass.readableName()), 3276c3283 < new String[] { --- > new String[] { 3278,3279c3285,3286 < typesAsString(shownMethod.isVarargs(), shownMethod.parameters, true), < new String(shownMethod.declaringClass.shortReadableName()), --- > typesAsString(shownMethod.isVarargs(), shownMethod.parameters, true), > new String(shownMethod.declaringClass.shortReadableName()), 3283c3290 < (int) messageSend.nameSourcePosition); --- > (int) messageSend.nameSourcePosition); 3291c3298 < new String[] { --- > new String[] { 3293,3294c3300,3301 < typesAsString(shownMethod.isVarargs(), shownMethod.parameters, false), < new String(shownMethod.declaringClass.readableName()), --- > typesAsString(shownMethod.isVarargs(), shownMethod.parameters, false), > new String(shownMethod.declaringClass.readableName()), 3297c3304 < new String[] { --- > new String[] { 3299,3300c3306,3307 < typesAsString(shownMethod.isVarargs(), shownMethod.parameters, true), < new String(shownMethod.declaringClass.shortReadableName()), --- > typesAsString(shownMethod.isVarargs(), shownMethod.parameters, true), > new String(shownMethod.declaringClass.shortReadableName()), 3304c3311 < (int) messageSend.nameSourcePosition); --- > (int) messageSend.nameSourcePosition); 3311c3318 < new String[] { --- > new String[] { 3313,3314c3320,3321 < typesAsString(shownMethod.isVarargs(), shownMethod.parameters, false), < new String(shownMethod.declaringClass.readableName()), --- > typesAsString(shownMethod.isVarargs(), shownMethod.parameters, false), > new String(shownMethod.declaringClass.readableName()), 3316c3323 < new String[] { --- > new String[] { 3318,3319c3325,3326 < typesAsString(shownMethod.isVarargs(), shownMethod.parameters, true), < new String(shownMethod.declaringClass.shortReadableName()), --- > typesAsString(shownMethod.isVarargs(), shownMethod.parameters, true), > new String(shownMethod.declaringClass.shortReadableName()), 3322c3329 < (int) messageSend.nameSourcePosition); --- > (int) messageSend.nameSourcePosition); 3424c3431 < --- > 3445c3452 < case ProblemReasons.IllegalSuperTypeVariable : --- > case ProblemReasons.IllegalSuperTypeVariable : 3453c3460 < --- > 3495c3502 < new String[] {new String(type.leafComponentType().readableName()) }, --- > new String[] {new String(type.leafComponentType().readableName()) }, 3543c3550 < NoArgument, --- > NoArgument, 3546c3553 < annotation.sourceEnd); --- > annotation.sourceEnd); 3551,3552c3558,3559 < NoArgument, < NoArgument, --- > NoArgument, > NoArgument, 3559,3560c3566,3567 < NoArgument, < NoArgument, --- > NoArgument, > NoArgument, 3567,3568c3574,3575 < NoArgument, < NoArgument, --- > NoArgument, > NoArgument, 3575,3576c3582,3583 < NoArgument, < NoArgument, --- > NoArgument, > NoArgument, 3583,3584c3590,3591 < NoArgument, < NoArgument, --- > NoArgument, > NoArgument, 3591,3592c3598,3599 < NoArgument, < NoArgument, --- > NoArgument, > NoArgument, 3601,3602c3608,3609 < NoArgument, < NoArgument, --- > NoArgument, > NoArgument, 3611,3612c3618,3619 < NoArgument, < NoArgument, --- > NoArgument, > NoArgument, 3619,3620c3626,3627 < NoArgument, < NoArgument, --- > NoArgument, > NoArgument, 3627,3628c3634,3635 < NoArgument, < NoArgument, --- > NoArgument, > NoArgument, 3649c3656 < arguments, --- > arguments, 3710c3717 < default: --- > default: 3723c3730 < default: --- > default: 3732c3739 < --- > 3736c3743 < --- > 3924c3931 < --- > 3930c3937 < --- > 3933c3940 < new String[] { --- > new String[] { 3935,3939c3942,3946 < typesAsString(shownConstructor.isVarargs(), shownConstructor.parameters, false), < new String(shownConstructor.declaringClass.readableName()), < typesAsString(false, invocationArguments, false), < new String(inferredTypeArgument.readableName()), < new String(typeParameter.sourceName), --- > typesAsString(shownConstructor.isVarargs(), shownConstructor.parameters, false), > new String(shownConstructor.declaringClass.readableName()), > typesAsString(false, invocationArguments, false), > new String(inferredTypeArgument.readableName()), > new String(typeParameter.sourceName), 3941c3948 < new String[] { --- > new String[] { 3943,3947c3950,3954 < typesAsString(shownConstructor.isVarargs(), shownConstructor.parameters, true), < new String(shownConstructor.declaringClass.shortReadableName()), < typesAsString(false, invocationArguments, true), < new String(inferredTypeArgument.shortReadableName()), < new String(typeParameter.sourceName), --- > typesAsString(shownConstructor.isVarargs(), shownConstructor.parameters, true), > new String(shownConstructor.declaringClass.shortReadableName()), > typesAsString(false, invocationArguments, true), > new String(inferredTypeArgument.shortReadableName()), > new String(typeParameter.sourceName), 3951,3953c3958,3960 < sourceEnd); < return; < --- > sourceEnd); > return; > 3963c3970 < new String[] { --- > new String[] { 3965,3966c3972,3973 < typesAsString(shownConstructor.isVarargs(), shownConstructor.parameters, false), < new String(shownConstructor.declaringClass.readableName()), --- > typesAsString(shownConstructor.isVarargs(), shownConstructor.parameters, false), > new String(shownConstructor.declaringClass.readableName()), 3968c3975 < new String[] { --- > new String[] { 3970,3971c3977,3978 < typesAsString(shownConstructor.isVarargs(), shownConstructor.parameters, true), < new String(shownConstructor.declaringClass.shortReadableName()), --- > typesAsString(shownConstructor.isVarargs(), shownConstructor.parameters, true), > new String(shownConstructor.declaringClass.shortReadableName()), 3975c3982 < sourceEnd); --- > sourceEnd); 3979c3986 < new String[] { --- > new String[] { 3981,3982c3988,3989 < typesAsString(shownConstructor.isVarargs(), shownConstructor.parameters, false), < new String(shownConstructor.declaringClass.readableName()), --- > typesAsString(shownConstructor.isVarargs(), shownConstructor.parameters, false), > new String(shownConstructor.declaringClass.readableName()), 3985c3992 < new String[] { --- > new String[] { 3987,3988c3994,3995 < typesAsString(shownConstructor.isVarargs(), shownConstructor.parameters, true), < new String(shownConstructor.declaringClass.shortReadableName()), --- > typesAsString(shownConstructor.isVarargs(), shownConstructor.parameters, true), > new String(shownConstructor.declaringClass.shortReadableName()), 3993c4000 < sourceEnd); --- > sourceEnd); 4003c4010 < new String[] { --- > new String[] { 4005,4006c4012,4013 < typesAsString(shownConstructor.isVarargs(), shownConstructor.parameters, false), < new String(shownConstructor.declaringClass.readableName()), --- > typesAsString(shownConstructor.isVarargs(), shownConstructor.parameters, false), > new String(shownConstructor.declaringClass.readableName()), 4009c4016 < new String[] { --- > new String[] { 4011,4012c4018,4019 < typesAsString(shownConstructor.isVarargs(), shownConstructor.parameters, true), < new String(shownConstructor.declaringClass.shortReadableName()), --- > typesAsString(shownConstructor.isVarargs(), shownConstructor.parameters, true), > new String(shownConstructor.declaringClass.shortReadableName()), 4017c4024 < sourceEnd); --- > sourceEnd); 4026c4033 < new String[] { --- > new String[] { 4028,4029c4035,4036 < typesAsString(shownConstructor.isVarargs(), shownConstructor.parameters, false), < new String(shownConstructor.declaringClass.readableName()), --- > typesAsString(shownConstructor.isVarargs(), shownConstructor.parameters, false), > new String(shownConstructor.declaringClass.readableName()), 4031c4038 < new String[] { --- > new String[] { 4033,4034c4040,4041 < typesAsString(shownConstructor.isVarargs(), shownConstructor.parameters, true), < new String(shownConstructor.declaringClass.shortReadableName()), --- > typesAsString(shownConstructor.isVarargs(), shownConstructor.parameters, true), > new String(shownConstructor.declaringClass.shortReadableName()), 4038c4045 < sourceEnd); --- > sourceEnd); 4132c4139 < parameterTypeNames --- > parameterTypeNames 4166c4173 < new String[] { --- > new String[] { 4168,4172c4175,4179 < typesAsString(shownMethod.isVarargs(), shownMethod.parameters, false), < new String(shownMethod.declaringClass.readableName()), < typesAsString(false, invocationArguments, false), < new String(inferredTypeArgument.readableName()), < new String(typeParameter.sourceName), --- > typesAsString(shownMethod.isVarargs(), shownMethod.parameters, false), > new String(shownMethod.declaringClass.readableName()), > typesAsString(false, invocationArguments, false), > new String(inferredTypeArgument.readableName()), > new String(typeParameter.sourceName), 4174c4181 < new String[] { --- > new String[] { 4176,4180c4183,4187 < typesAsString(shownMethod.isVarargs(), shownMethod.parameters, true), < new String(shownMethod.declaringClass.shortReadableName()), < typesAsString(false, invocationArguments, true), < new String(inferredTypeArgument.shortReadableName()), < new String(typeParameter.sourceName), --- > typesAsString(shownMethod.isVarargs(), shownMethod.parameters, true), > new String(shownMethod.declaringClass.shortReadableName()), > typesAsString(false, invocationArguments, true), > new String(inferredTypeArgument.shortReadableName()), > new String(typeParameter.sourceName), 4184c4191 < (int) messageSend.nameSourcePosition); --- > (int) messageSend.nameSourcePosition); 4195c4202 < new String[] { --- > new String[] { 4197,4198c4204,4205 < typesAsString(shownMethod.isVarargs(), shownMethod.parameters, false), < new String(shownMethod.declaringClass.readableName()), --- > typesAsString(shownMethod.isVarargs(), shownMethod.parameters, false), > new String(shownMethod.declaringClass.readableName()), 4200c4207 < new String[] { --- > new String[] { 4202,4203c4209,4210 < typesAsString(shownMethod.isVarargs(), shownMethod.parameters, true), < new String(shownMethod.declaringClass.shortReadableName()), --- > typesAsString(shownMethod.isVarargs(), shownMethod.parameters, true), > new String(shownMethod.declaringClass.shortReadableName()), 4207c4214 < (int) messageSend.nameSourcePosition); --- > (int) messageSend.nameSourcePosition); 4211c4218 < new String[] { --- > new String[] { 4213,4214c4220,4221 < typesAsString(shownMethod.isVarargs(), shownMethod.parameters, false), < new String(shownMethod.declaringClass.readableName()), --- > typesAsString(shownMethod.isVarargs(), shownMethod.parameters, false), > new String(shownMethod.declaringClass.readableName()), 4217c4224 < new String[] { --- > new String[] { 4219,4220c4226,4227 < typesAsString(shownMethod.isVarargs(), shownMethod.parameters, true), < new String(shownMethod.declaringClass.shortReadableName()), --- > typesAsString(shownMethod.isVarargs(), shownMethod.parameters, true), > new String(shownMethod.declaringClass.shortReadableName()), 4225c4232 < (int) messageSend.nameSourcePosition); --- > (int) messageSend.nameSourcePosition); 4235c4242 < new String[] { --- > new String[] { 4237,4238c4244,4245 < typesAsString(shownMethod.isVarargs(), shownMethod.parameters, false), < new String(shownMethod.declaringClass.readableName()), --- > typesAsString(shownMethod.isVarargs(), shownMethod.parameters, false), > new String(shownMethod.declaringClass.readableName()), 4241c4248 < new String[] { --- > new String[] { 4243,4244c4250,4251 < typesAsString(shownMethod.isVarargs(), shownMethod.parameters, true), < new String(shownMethod.declaringClass.shortReadableName()), --- > typesAsString(shownMethod.isVarargs(), shownMethod.parameters, true), > new String(shownMethod.declaringClass.shortReadableName()), 4249c4256 < (int) messageSend.nameSourcePosition); --- > (int) messageSend.nameSourcePosition); 4258c4265 < new String[] { --- > new String[] { 4260,4261c4267,4268 < typesAsString(shownMethod.isVarargs(), shownMethod.parameters, false), < new String(shownMethod.declaringClass.readableName()), --- > typesAsString(shownMethod.isVarargs(), shownMethod.parameters, false), > new String(shownMethod.declaringClass.readableName()), 4263c4270 < new String[] { --- > new String[] { 4265,4266c4272,4273 < typesAsString(shownMethod.isVarargs(), shownMethod.parameters, true), < new String(shownMethod.declaringClass.shortReadableName()), --- > typesAsString(shownMethod.isVarargs(), shownMethod.parameters, true), > new String(shownMethod.declaringClass.shortReadableName()), 4270c4277 < (int) messageSend.nameSourcePosition); --- > (int) messageSend.nameSourcePosition); 4301c4308 < /** --- > /** 4311c4318 < /** --- > /** 4556,4557c4563,4564 < int id = (local instanceof Argument) < ? IProblem.ArgumentHidingLocalVariable --- > int id = (local instanceof Argument) > ? IProblem.ArgumentHidingLocalVariable 4599a4607,4666 > public void localCannotBeAssignedWithPotentiallyNull(LocalVariableBinding local, ASTNode location) { > int severity = computeSeverity(IProblem.LocalCannotBeAssignedPotentiallyNull); > if (severity == ProblemSeverities.Ignore) return; > String[] arguments = new String[] { new String(local.name) }; > this.handle( > IProblem.LocalCannotBeAssignedPotentiallyNull, > arguments, > arguments, > severity, > nodeSourceStart(local, location), > nodeSourceEnd(local, location)); > } > public void cannotReturnPotentiallyNullExpression(ASTNode location) { > int severity = computeSeverity(IProblem.CannotReturnPotentiallyNullExpression); > if (severity == ProblemSeverities.Ignore) return; > String[] arguments = new String[] { }; > this.handle( > IProblem.CannotReturnPotentiallyNullExpression, > arguments, > arguments, > severity, > location.sourceStart, > location.sourceEnd); > } > public void nonNullAnnotationIsMissingForOverridingMethod(ReferenceBinding type, MethodBinding method, ASTNode location) { > int severity = computeSeverity(IProblem.NonNullAnnotationIsMissingForOverridingMethod); > if (severity == ProblemSeverities.Ignore) return; > String[] arguments = new String[] { new String(type.readableName()), new String(method.readableName()) }; > this.handle( > IProblem.NonNullAnnotationIsMissingForOverridingMethod, > arguments, > arguments, > severity, > location.sourceStart, > location.sourceEnd); > } > public void nonNullAnnotationIsMissingForArgumentInOverridingMethod(ReferenceBinding type, MethodBinding method, Argument arg) { > int severity = computeSeverity(IProblem.NonNullAnnotationIsMissingForArgumentInOverridingMethod); > if (severity == ProblemSeverities.Ignore) return; > String[] arguments = new String[] { new String(type.readableName()), new String(method.readableName()), new String(arg.name) }; > this.handle( > IProblem.NonNullAnnotationIsMissingForArgumentInOverridingMethod, > arguments, > arguments, > severity, > arg.sourceStart, > arg.sourceEnd); > } > public void cannotPassPotentiallyNullExpressionAsArgument(MethodBinding method, ASTNode location) { > int severity = computeSeverity(IProblem.CannotPassPotentiallyNullExpressionAsArgument); > if (severity == ProblemSeverities.Ignore) return; > String[] arguments = new String[] { new String(method.readableName()) }; > this.handle( > IProblem.CannotPassPotentiallyNullExpressionAsArgument, > arguments, > arguments, > severity, > nodeSourceStart(method, location), > nodeSourceEnd(method, location)); > } 4702c4769 < }, --- > }, 4709c4776 < }, --- > }, 4728c4795 < } --- > } 4844c4911 < compUnitDecl.sourceStart + 1); --- > compUnitDecl.sourceStart + 1); 4864c4931 < this.abortDueToInternalError(Messages.abort_missingCode, location); --- > this.abortDueToInternalError(Messages.abort_missingCode, location); 4868c4935 < int id = isReadAccess --- > int id = isReadAccess 4882c4949 < MethodBinding method, --- > MethodBinding method, 4891c4958 < IProblem.NeedToEmulateConstructorAccess, --- > IProblem.NeedToEmulateConstructorAccess, 4893c4960 < new String(method.declaringClass.readableName()), --- > new String(method.declaringClass.readableName()), 4895c4962 < }, --- > }, 4897c4964 < new String(method.declaringClass.shortReadableName()), --- > new String(method.declaringClass.shortReadableName()), 4899c4966 < }, --- > }, 4901,4902c4968,4969 < location.sourceStart, < location.sourceEnd); --- > location.sourceStart, > location.sourceEnd); 4908c4975 < IProblem.NeedToEmulateMethodAccess, --- > IProblem.NeedToEmulateMethodAccess, 4910,4911c4977,4978 < new String(method.declaringClass.readableName()), < new String(method.selector), --- > new String(method.declaringClass.readableName()), > new String(method.selector), 4913c4980 < }, --- > }, 4915,4916c4982,4983 < new String(method.declaringClass.shortReadableName()), < new String(method.selector), --- > new String(method.declaringClass.shortReadableName()), > new String(method.selector), 4918c4985 < }, --- > }, 4920,4921c4987,4988 < location.sourceStart, < location.sourceEnd); --- > location.sourceStart, > location.sourceEnd); 5126c5193 < } else if (location instanceof AllocationExpression --- > } else if (location instanceof AllocationExpression 5128c5195 < || (((AllocationExpression) location).binding.declaringClass.isAnonymousType() --- > || (((AllocationExpression) location).binding.declaringClass.isAnonymousType() 5139c5206 < new String[] { new String(targetType.readableName())}, --- > new String[] { new String(targetType.readableName())}, 5358,5359c5425,5426 < int startPosition, < int endPosition, --- > int startPosition, > int endPosition, 5361,5362c5428,5429 < char[] currentTokenSource, < String errorTokenName, --- > char[] currentTokenSource, > String errorTokenName, 5364c5431 < --- > 5410c5477 < //extract the literal when it's a literal --- > //extract the literal when it's a literal 5433,5434c5500,5501 < start, < end, --- > start, > end, 5436c5503 < errorTokenSource, --- > errorTokenSource, 5438c5505 < null); --- > null); 5460,5461c5527,5528 < start, < end, --- > start, > end, 5463,5465c5530,5532 < errorTokenSource, < errorTokenName, < expectedToken); --- > errorTokenSource, > errorTokenName, > expectedToken); 5476,5477c5543,5544 < start, < end, --- > start, > end, 5479,5481c5546,5548 < errorTokenSource, < errorTokenName, < expectedToken); --- > errorTokenSource, > errorTokenName, > expectedToken); 5530,5531c5597,5598 < start, < end, --- > start, > end, 5533,5535c5600,5602 < errorTokenSource, < errorTokenName, < expectedToken); --- > errorTokenSource, > errorTokenName, > expectedToken); 5567,5568c5634,5635 < start, < end, --- > start, > end, 5570c5637 < errorTokenSource, --- > errorTokenSource, 5572c5639 < null); --- > null); 5593,5594c5660,5661 < start, < end, --- > start, > end, 5596,5598c5663,5665 < errorTokenSource, < errorTokenName, < expectedToken); --- > errorTokenSource, > errorTokenName, > expectedToken); 5615c5682 < --- > 5618c5685 < arguments = new String[] {Messages.parser_endOfConstructor}; --- > arguments = new String[] {Messages.parser_endOfConstructor}; 5620c5687 < arguments = new String[] {Messages.parser_endOfMethod}; --- > arguments = new String[] {Messages.parser_endOfMethod}; 5622c5689 < arguments = new String[] {Messages.parser_endOfInitializer}; --- > arguments = new String[] {Messages.parser_endOfInitializer}; 5624c5691 < arguments = new String[] {Messages.parser_endOfFile}; --- > arguments = new String[] {Messages.parser_endOfFile}; 5692c5759 < new String(constructorCall.binding.declaringClass.readableName()), --- > new String(constructorCall.binding.declaringClass.readableName()), 5696c5763 < new String(constructorCall.binding.declaringClass.shortReadableName()), --- > new String(constructorCall.binding.declaringClass.shortReadableName()), 5908c5975 < String[] arguments = flag == IProblem.ParsingErrorNoSuggestion --- > String[] arguments = flag == IProblem.ParsingErrorNoSuggestion 5912c5979 < flag, --- > flag, 5916c5983 < startPos, --- > startPos, 5964c6031 < nodeSourceEnd(field, location)); --- > nodeSourceEnd(field, location)); 6026c6093 < sourceEnd); --- > sourceEnd); 6058,6059c6125,6126 < int startPosition, < int endPosition, --- > int startPosition, > int endPosition, 6061,6062c6128,6129 < char[] currentTokenSource, < String errorTokenName, --- > char[] currentTokenSource, > String errorTokenName, 6091c6158 < new String[] { tag, message, priority/*secret argument that is not surfaced in getMessage()*/}, --- > new String[] { tag, message, priority/*secret argument that is not surfaced in getMessage()*/}, 6176,6177c6243,6244 < new String[] { < new String(typeDecl.name), --- > new String[] { > new String(typeDecl.name), 6181c6248 < new String(declaringMethod.declaringClass.readableName()), --- > new String(declaringMethod.declaringClass.readableName()), 6183c6250 < new String[] { --- > new String[] { 6188c6255 < new String(declaringMethod.declaringClass.shortReadableName()), --- > new String(declaringMethod.declaringClass.shortReadableName()), 6200c6267 < new String[] { new String(typeDecl.name) , new String(hiddenType.shortReadableName()) }, --- > new String[] { new String(typeDecl.name) , new String(hiddenType.shortReadableName()) }, 6281c6348 < new String[] {new String(variableName), new String(binaryType.readableName()) }, --- > new String[] {new String(variableName), new String(binaryType.readableName()) }, 6315c6382 < boolean insideDefaultConstructor = --- > boolean insideDefaultConstructor = 6325c6392 < : (insideImplicitConstructorCall --- > : (insideImplicitConstructorCall 6371c6438 < IProblem.UnmatchedBracket, --- > IProblem.UnmatchedBracket, 6374c6441 < position, --- > position, 6435c6502 < new String[] { --- > new String[] { 6437,6438c6504,6505 < typesAsString(method.isVarargs(), method.parameters, false), < new String(method.declaringClass.readableName()), --- > typesAsString(method.isVarargs(), method.parameters, false), > new String(method.declaringClass.readableName()), 6440c6507 < new String[] { --- > new String[] { 6442,6443c6509,6510 < typesAsString(method.isVarargs(), method.parameters, true), < new String(method.declaringClass.shortReadableName()), --- > typesAsString(method.isVarargs(), method.parameters, true), > new String(method.declaringClass.shortReadableName()), 6446c6513 < typeArguments[typeArguments.length-1].sourceEnd); --- > typeArguments[typeArguments.length-1].sourceEnd); 6476c6543 < }, --- > }, 6479c6546 < }, --- > }, 6534,6535c6601,6602 < new String[]{ < new String(castedExpressionType.readableName()), --- > new String[]{ > new String(castedExpressionType.readableName()), 6538,6539c6605,6606 < new String[]{ < new String(castedExpressionType.shortReadableName()), --- > new String[]{ > new String(castedExpressionType.shortReadableName()), 6562c6629 < new String[] { --- > new String[] { 6564c6631 < new String[] { --- > new String[] { 6568c6635 < nodeSourceEnd(field, location)); --- > nodeSourceEnd(field, location)); 6582c6649 < }, --- > }, 6591c6658 < location.sourceEnd); --- > location.sourceEnd); 6600c6667 < }, --- > }, 6609c6676 < location.sourceEnd); --- > location.sourceEnd); 6623c6690 < }, --- > }, 6628c6695 < }, --- > }, 6631c6698 < location.sourceEnd); --- > location.sourceEnd); 6640c6707 < }, --- > }, 6649c6716 < location.sourceEnd); --- > location.sourceEnd); 6672c6739 < }, --- > }, 6681c6748 < }, --- > }, 6695c6762 < expression.sourceEnd); --- > expression.sourceEnd); 6720c6787 < }, --- > }, 6725c6792 < }, --- > }, 6737c6804 < }, --- > }, 6743c6810 < }, --- > }, 6759c6826 < importRef.sourceEnd); --- > importRef.sourceEnd); 6786c6853 < --- > 6789c6856 < --- > 6796c6863 < }, --- > }, 6800c6867 < }, --- > }, 6806c6873 < --- > 6811c6878 < --- > 6830c6897 < }, --- > }, 6834c6901 < }, --- > }, 6843c6910 < --- > 6845c6912 < --- > 6884c6951 < }, --- > }, 6889c6956 < }, --- > }, 6903c6970 < }, --- > }, 6906c6973 < }, --- > }, 6917c6984 < sourceEnd); --- > sourceEnd); 6925c6992 < sourceEnd); --- > sourceEnd); 6935,6939c7002,7006 < new String(argumentType.readableName()), < new String(varargsType.readableName()), < new String(method.declaringClass.readableName()), < typesAsString(method.isVarargs(), method.parameters, false), < new String(varargsType.elementsType().readableName()), --- > new String(argumentType.readableName()), > new String(varargsType.readableName()), > new String(method.declaringClass.readableName()), > typesAsString(method.isVarargs(), method.parameters, false), > new String(varargsType.elementsType().readableName()), 6942,6946c7009,7013 < new String(argumentType.shortReadableName()), < new String(varargsType.shortReadableName()), < new String(method.declaringClass.shortReadableName()), < typesAsString(method.isVarargs(), method.parameters, true), < new String(varargsType.elementsType().shortReadableName()), --- > new String(argumentType.shortReadableName()), > new String(varargsType.shortReadableName()), > new String(method.declaringClass.shortReadableName()), > typesAsString(method.isVarargs(), method.parameters, true), > new String(varargsType.elementsType().shortReadableName()), 6954,6960c7021,7027 < new String[] { < new String(argumentType.readableName()), < new String(varargsType.readableName()), < new String(method.selector), < typesAsString(method.isVarargs(), method.parameters, false), < new String(method.declaringClass.readableName()), < new String(varargsType.elementsType().readableName()), --- > new String[] { > new String(argumentType.readableName()), > new String(varargsType.readableName()), > new String(method.selector), > typesAsString(method.isVarargs(), method.parameters, false), > new String(method.declaringClass.readableName()), > new String(varargsType.elementsType().readableName()), 6962,6967c7029,7034 < new String[] { < new String(argumentType.shortReadableName()), < new String(varargsType.shortReadableName()), < new String(method.selector), typesAsString(method.isVarargs(), method.parameters, true), < new String(method.declaringClass.shortReadableName()), < new String(varargsType.elementsType().shortReadableName()), --- > new String[] { > new String(argumentType.shortReadableName()), > new String(varargsType.shortReadableName()), > new String(method.selector), typesAsString(method.isVarargs(), method.parameters, true), > new String(method.declaringClass.shortReadableName()), > new String(varargsType.elementsType().shortReadableName()), 6977c7044 < new String[] { --- > new String[] { 6984c7051 < new String[] { --- > new String[] { 7025c7092 < new String[] { --- > new String[] { 7027c7094 < new String[] { --- > new String[] { 7030c7097 < location.sourceEnd); --- > location.sourceEnd); 7043c7110 < --- > 7054c7121 < }, --- > }, 7062c7129 < }, --- > }, 7064c7131 < location.sourceEnd); --- > location.sourceEnd); 7075c7142 < }, --- > }, 7083c7150 < }, --- > }, 7085c7152 < location.sourceEnd); --- > location.sourceEnd); 7098c7165 < }, --- > }, 7102c7169 < }, --- > }, Index: compiler/org/eclipse/jdt/internal/compiler/problem/messages.properties =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/problem/messages.properties,v retrieving revision 1.229 diff -r1.229 messages.properties 69c69 < 79 = Unqualified access to the field {0}.{1} --- > 79 = Unqualified access to the field {0}.{1} 101c101 < 119 = The static method {1}({2}) from the type {0} should be accessed directly --- > 119 = The static method {1}({2}) from the type {0} should be accessed directly 126c126 < 154 = The literal {1} of type {0} is out of range --- > 154 = The literal {1} of type {0} is out of range 167c167 < 196 = The field {0} is defined in an inherited type and an enclosing scope --- > 196 = The field {0} is defined in an inherited type and an enclosing scope 330c330 < --- > 350c350 < 421 = Code snippet support cannot find the method {0}.{1}({2}) --- > 421 = Code snippet support cannot find the method {0}.{1}({2}) 424c424 < 509 = The field {0} is defined in an inherited type and an enclosing scope --- > 509 = The field {0} is defined in an inherited type and an enclosing scope 429c429 < 514 = Javadoc: --- > 514 = Javadoc: 540c540 < 625 = The value for annotation attribute {0}.{1} must be some @{2} annotation --- > 625 = The value for annotation attribute {0}.{1} must be some @{2} annotation 599a600,606 > ### @NonNull annotation > 903 = Cannot assign null or potentially null expression to {0} because of @NonNull annotation > 904 = Cannot pass null or potentially null expression as argument for method {0} because of @NonNull annotation > 905 = Cannot return null or potentially null expression because of @NonNull annotation > 906 = Method {1} isn't NonNull annotated while overridden method in {0} is > 907 = Argument {2} in method {1} isn't NonNull annotated while overridden method in type {0} is >