Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 86246 Details for
Bug 186342
[compiler][null] Using annotations for null checking
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
Updated NonNull annotation patch to compile against HEAD 2008-01-04
org.eclipse.jdt.core_non_null_patch (text/plain), 68.13 KB, created by
Paul Wagland
on 2008-01-04 17:39:04 EST
(
hide
)
Description:
Updated NonNull annotation patch to compile against HEAD 2008-01-04
Filename:
MIME Type:
Creator:
Paul Wagland
Created:
2008-01-04 17:39:04 EST
Size:
68.13 KB
patch
obsolete
>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 <code>true</code> if <code>ab</code> 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 >>
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 186342
:
74851
|
86246
|
86247
|
89354
|
184335
|
185507
|
186796
|
186798
|
186872
|
186876
|
186889
|
186890
|
206525
|
206557
|
207270
|
207308
|
207478
|
207565
|
207567
|
207573
|
207592
|
207604
|
207635
|
207637
|
207639
|
207657
|
207659
|
207672
|
207677
|
207685