X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/problem/ProblemReporter.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/problem/ProblemReporter.java index 7e1acce..29ba040 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/problem/ProblemReporter.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/problem/ProblemReporter.java @@ -15,16 +15,15 @@ import net.sourceforge.phpdt.core.compiler.InvalidInputException; import net.sourceforge.phpdt.internal.compiler.CompilationResult; import net.sourceforge.phpdt.internal.compiler.IErrorHandlingPolicy; import net.sourceforge.phpdt.internal.compiler.IProblemFactory; +import net.sourceforge.phpdt.internal.compiler.impl.CompilerOptions; import net.sourceforge.phpdt.internal.compiler.impl.Constant; import net.sourceforge.phpdt.internal.compiler.impl.ReferenceContext; import net.sourceforge.phpdt.internal.compiler.lookup.Binding; -import net.sourceforge.phpdt.internal.compiler.lookup.CompilerModifiers; import net.sourceforge.phpdt.internal.compiler.lookup.FieldBinding; import net.sourceforge.phpdt.internal.compiler.lookup.LocalVariableBinding; import net.sourceforge.phpdt.internal.compiler.lookup.MethodBinding; import net.sourceforge.phpdt.internal.compiler.lookup.ProblemMethodBinding; import net.sourceforge.phpdt.internal.compiler.lookup.ProblemReasons; -import net.sourceforge.phpdt.internal.compiler.lookup.ProblemReferenceBinding; import net.sourceforge.phpdt.internal.compiler.lookup.ReferenceBinding; import net.sourceforge.phpdt.internal.compiler.lookup.SourceTypeBinding; import net.sourceforge.phpdt.internal.compiler.lookup.SyntheticArgumentBinding; @@ -40,7 +39,7 @@ import net.sourceforge.phpeclipse.internal.compiler.ast.Argument; import net.sourceforge.phpeclipse.internal.compiler.ast.ArrayAllocationExpression; import net.sourceforge.phpeclipse.internal.compiler.ast.ArrayReference; import net.sourceforge.phpeclipse.internal.compiler.ast.Assignment; -import net.sourceforge.phpeclipse.internal.compiler.ast.AstNode; +import net.sourceforge.phpeclipse.internal.compiler.ast.ASTNode; import net.sourceforge.phpeclipse.internal.compiler.ast.BinaryExpression; import net.sourceforge.phpeclipse.internal.compiler.ast.BranchStatement; import net.sourceforge.phpeclipse.internal.compiler.ast.Case; @@ -54,7 +53,6 @@ import net.sourceforge.phpeclipse.internal.compiler.ast.ExplicitConstructorCall; import net.sourceforge.phpeclipse.internal.compiler.ast.Expression; import net.sourceforge.phpeclipse.internal.compiler.ast.FieldDeclaration; import net.sourceforge.phpeclipse.internal.compiler.ast.FieldReference; -import net.sourceforge.phpeclipse.internal.compiler.ast.ImportReference; import net.sourceforge.phpeclipse.internal.compiler.ast.InstanceOfExpression; import net.sourceforge.phpeclipse.internal.compiler.ast.IntLiteral; import net.sourceforge.phpeclipse.internal.compiler.ast.Literal; @@ -78,16 +76,18 @@ import net.sourceforge.phpeclipse.internal.compiler.ast.UnaryExpression; public class ProblemReporter extends ProblemHandler implements ProblemReasons { public ReferenceContext referenceContext; public ProblemReporter(IErrorHandlingPolicy policy, + CompilerOptions options, IProblemFactory problemFactory) { - //CompilerOptions options, IProblemFactory problemFactory) { - super(policy, problemFactory);//options, problemFactory); + + // IProblemFactory problemFactory) { + super(policy, options, problemFactory); //), problemFactory); } public void abortDueToInternalError(String errorMessage) { String[] arguments = new String[]{errorMessage}; this.handle(IProblem.Unclassified, arguments, arguments, Error | Abort, 0, 0); } - public void abortDueToInternalError(String errorMessage, AstNode location) { + public void abortDueToInternalError(String errorMessage, ASTNode location) { String[] arguments = new String[]{errorMessage}; this.handle(IProblem.Unclassified, arguments, arguments, Error | Abort, location.sourceStart, location.sourceEnd); @@ -135,7 +135,7 @@ public class ProblemReporter extends ProblemHandler implements ProblemReasons { method.sourceStart, method.sourceEnd, method, method .compilationResult()); } - public void alreadyDefinedLabel(char[] labelName, AstNode location) { + public void alreadyDefinedLabel(char[] labelName, ASTNode location) { String[] arguments = new String[]{new String(labelName)}; this.handle(IProblem.DuplicateLabel, arguments, arguments, location.sourceStart, location.sourceEnd); @@ -251,7 +251,7 @@ public class ProblemReporter extends ProblemHandler implements ProblemReasons { this.handle(IProblem.CannotAllocateVoidArray, NoArgument, NoArgument, expression.sourceStart, expression.sourceEnd); } - public void cannotAssignToFinalField(FieldBinding field, AstNode location) { + public void cannotAssignToFinalField(FieldBinding field, ASTNode location) { this.handle(IProblem.FinalFieldAssignment, new String[]{ (field.declaringClass == null ? "array" : new String( field.declaringClass.readableName())), //$NON-NLS-1$ @@ -262,13 +262,13 @@ public class ProblemReporter extends ProblemHandler implements ProblemReasons { location.sourceEnd); } public void cannotAssignToFinalLocal(LocalVariableBinding local, - AstNode location) { + ASTNode location) { String[] arguments = new String[]{new String(local.readableName())}; this.handle(IProblem.NonBlankFinalLocalAssignment, arguments, arguments, location.sourceStart, location.sourceEnd); } public void cannotAssignToFinalOuterLocal(LocalVariableBinding local, - AstNode location) { + ASTNode location) { String[] arguments = new String[]{new String(local.readableName())}; this.handle(IProblem.FinalOuterLocalAssignment, arguments, arguments, location.sourceStart, location.sourceEnd); @@ -293,11 +293,11 @@ public class ProblemReporter extends ProblemHandler implements ProblemReasons { new String(method.selector), parametersAsShortString(method)}, messageSend.sourceStart, messageSend.sourceEnd); } - public void cannotImportPackage(ImportReference importRef) { - String[] arguments = new String[]{CharOperation.toString(importRef.tokens)}; - this.handle(IProblem.CannotImportPackage, arguments, arguments, - importRef.sourceStart, importRef.sourceEnd); - } +// public void cannotImportPackage(ImportReference importRef) { +// String[] arguments = new String[]{CharOperation.toString(importRef.tokens)}; +// this.handle(IProblem.CannotImportPackage, arguments, arguments, +// importRef.sourceStart, importRef.sourceEnd); +// } public void cannotInstantiate(TypeReference typeRef, TypeBinding type) { this.handle(IProblem.InvalidClassInstantiation, new String[]{new String( type.readableName())}, @@ -305,12 +305,12 @@ public class ProblemReporter extends ProblemHandler implements ProblemReasons { typeRef.sourceStart, typeRef.sourceEnd); } public void cannotReferToNonFinalOuterLocal(LocalVariableBinding local, - AstNode location) { + ASTNode location) { String[] arguments = new String[]{new String(local.readableName())}; this.handle(IProblem.OuterLocalMustBeFinal, arguments, arguments, location.sourceStart, location.sourceEnd); } - public void cannotReturnInInitializer(AstNode location) { + public void cannotReturnInInitializer(ASTNode location) { this.handle(IProblem.CannotReturnInInitializer, NoArgument, NoArgument, location.sourceStart, location.sourceEnd); } @@ -326,7 +326,7 @@ public class ProblemReporter extends ProblemHandler implements ProblemReasons { .shortReadableName())}, exceptionType.sourceStart, exceptionType.sourceEnd); } - public void cannotUseSuperInJavaLangObject(AstNode reference) { + public void cannotUseSuperInJavaLangObject(ASTNode reference) { this.handle(IProblem.ObjectHasNoSuperclass, NoArgument, NoArgument, reference.sourceStart, reference.sourceEnd); } @@ -361,219 +361,192 @@ public class ProblemReporter extends ProblemHandler implements ProblemReasons { | Abort, start, end); } /* - * Given the current configuration, answers which category the problem falls - * into: Error | Warning | Ignore + * Given the current configuration, answers which category the problem + * falls into: + * Error | Warning | Ignore */ - //public int computeSeverity(int problemId){ - // - // // severity can have been preset on the problem - //// if ((problem.severity & Fatal) != 0){ - //// return Error; - //// } - // - // // if not then check whether it is a configurable problem - // int errorThreshold = options.errorThreshold; - // int warningThreshold = options.warningThreshold; - // - // switch(problemId){ - // - // case IProblem.UnreachableCatch : - // case IProblem.CodeCannotBeReached : - // if ((errorThreshold & CompilerOptions.UnreachableCode) != 0){ - // return Error; - // } - // if ((warningThreshold & CompilerOptions.UnreachableCode) != 0){ - // return Warning; - // } - // return Ignore; - // - // case IProblem.MaskedCatch : - // if ((errorThreshold & CompilerOptions.MaskedCatchBlock) != 0){ - // return Error; - // } - // if ((warningThreshold & CompilerOptions.MaskedCatchBlock) != 0){ - // return Warning; - // } - // return Ignore; - // - ///* - // case Never Used : - // if ((errorThreshold & ParsingOptionalError) != 0){ - // return Error; - // } - // if ((warningThreshold & ParsingOptionalError) != 0){ - // return Warning; - // } - // return Ignore; - //*/ - // case IProblem.ImportNotFound : - // case IProblem.ImportNotVisible : - // case IProblem.ImportAmbiguous : - // case IProblem.ImportInternalNameProvided : - // case IProblem.ImportInheritedNameHidesEnclosingName : - // case IProblem.DuplicateImport : - // case IProblem.ConflictingImport : - // case IProblem.CannotImportPackage : - // if ((errorThreshold & CompilerOptions.ImportProblem) != 0){ - // return Error; - // } - // if ((warningThreshold & CompilerOptions.ImportProblem) != 0){ - // return Warning; - // } - // return Ignore; - // - // case IProblem.UnusedImport : - // // if import problem are disabled, then ignore - // if ((errorThreshold & CompilerOptions.ImportProblem) == 0 - // && (warningThreshold & CompilerOptions.ImportProblem) == 0){ - // return Ignore; - // } - // if ((errorThreshold & CompilerOptions.UnusedImport) != 0){ - // return Error; - // } - // if ((warningThreshold & CompilerOptions.UnusedImport) != 0){ - // return Warning; - // } - // return Ignore; - // - // case IProblem.MethodButWithConstructorName : - // if ((errorThreshold & CompilerOptions.MethodWithConstructorName) != 0){ - // return Error; - // } - // if ((warningThreshold & CompilerOptions.MethodWithConstructorName) != - // 0){ - // return Warning; - // } - // return Ignore; - // - // case IProblem.OverridingNonVisibleMethod : - // if ((errorThreshold & CompilerOptions.OverriddenPackageDefaultMethod) != - // 0){ - // return Error; - // } - // if ((warningThreshold & CompilerOptions.OverriddenPackageDefaultMethod) - // != 0){ - // return Warning; - // } - // return Ignore; - // - // case IProblem.IncompatibleReturnTypeForNonInheritedInterfaceMethod : - // case - // IProblem.IncompatibleExceptionInThrowsClauseForNonInheritedInterfaceMethod - // : - // if ((errorThreshold & - // CompilerOptions.IncompatibleNonInheritedInterfaceMethod) != 0){ - // return Error; - // } - // if ((warningThreshold & - // CompilerOptions.IncompatibleNonInheritedInterfaceMethod) != 0){ - // return Warning; - // } - // return Ignore; - // - // case IProblem.OverridingDeprecatedMethod : - // case IProblem.UsingDeprecatedType : - // case IProblem.UsingDeprecatedMethod : - // case IProblem.UsingDeprecatedConstructor : - // case IProblem.UsingDeprecatedField : - // if ((errorThreshold & CompilerOptions.UsingDeprecatedAPI) != 0){ - // return Error; - // } - // if ((warningThreshold & CompilerOptions.UsingDeprecatedAPI) != 0){ - // return Warning; - // } - // return Ignore; - // - // case IProblem.LocalVariableIsNeverUsed : - // if ((errorThreshold & CompilerOptions.UnusedLocalVariable) != 0){ - // return Error; - // } - // if ((warningThreshold & CompilerOptions.UnusedLocalVariable) != 0){ - // return Warning; - // } - // return Ignore; - // - // case IProblem.ArgumentIsNeverUsed : - // if ((errorThreshold & CompilerOptions.UnusedArgument) != 0){ - // return Error; - // } - // if ((warningThreshold & CompilerOptions.UnusedArgument) != 0){ - // return Warning; - // } - // return Ignore; - // - // case IProblem.NoImplicitStringConversionForCharArrayExpression : - // if ((errorThreshold & CompilerOptions.NoImplicitStringConversion) != 0){ - // return Error; - // } - // if ((warningThreshold & CompilerOptions.NoImplicitStringConversion) != - // 0){ - // return Warning; - // } - // return Ignore; - // - // case IProblem.NeedToEmulateFieldReadAccess : - // case IProblem.NeedToEmulateFieldWriteAccess : - // case IProblem.NeedToEmulateMethodAccess : - // case IProblem.NeedToEmulateConstructorAccess : - // if ((errorThreshold & CompilerOptions.AccessEmulation) != 0){ - // return Error; - // } - // if ((warningThreshold & CompilerOptions.AccessEmulation) != 0){ - // return Warning; - // } - // return Ignore; - // case IProblem.NonExternalizedStringLiteral : - // if ((errorThreshold & CompilerOptions.NonExternalizedString) != 0){ - // return Error; - // } - // if ((warningThreshold & CompilerOptions.NonExternalizedString) != 0){ - // return Warning; - // } - // return Ignore; - // case IProblem.UseAssertAsAnIdentifier : - // if ((errorThreshold & CompilerOptions.AssertUsedAsAnIdentifier) != 0){ - // return Error; - // } - // if ((warningThreshold & CompilerOptions.AssertUsedAsAnIdentifier) != 0){ - // return Warning; - // } - // return Ignore; - // case IProblem.NonStaticAccessToStaticMethod : - // case IProblem.NonStaticAccessToStaticField : - // if ((errorThreshold & CompilerOptions.StaticAccessReceiver) != 0){ - // return Error; - // } - // if ((warningThreshold & CompilerOptions.StaticAccessReceiver) != 0){ - // return Warning; - // } - // return Ignore; - // case IProblem.AssignmentHasNoEffect: - // if ((errorThreshold & CompilerOptions.NoEffectAssignment) != 0){ - // return Error; - // } - // if ((warningThreshold & CompilerOptions.NoEffectAssignment) != 0){ - // return Warning; - // } - // return Ignore; - // case IProblem.UnusedPrivateConstructor: - // case IProblem.UnusedPrivateMethod: - // case IProblem.UnusedPrivateField: - // case IProblem.UnusedPrivateType: - // if ((errorThreshold & CompilerOptions.UnusedPrivateMember) != 0){ - // return Error; - // } - // if ((warningThreshold & CompilerOptions.UnusedPrivateMember) != 0){ - // return Warning; - // } - // return Ignore; - // - // case IProblem.Task : - // return Warning; - // default: - // return Error; - // } - //} + public int computeSeverity(int problemId){ + + // severity can have been preset on the problem +// if ((problem.severity & Fatal) != 0){ +// return Error; +// } + + // if not then check whether it is a configurable problem + switch(problemId){ + case IProblem.PHPVarDeprecatedWarning : + return this.options.getSeverity(CompilerOptions.PHPVarDeprecatedWarning); + case IProblem.PHPBadStyleKeywordWarning : + return this.options.getSeverity(CompilerOptions.PHPBadStyleKeywordWarning); + case IProblem.PHPBadStyleUppercaseIdentifierWarning : + return this.options.getSeverity(CompilerOptions.PHPBadStyleUppercaseIdentifierWarning); + + case IProblem.MaskedCatch : + return this.options.getSeverity(CompilerOptions.MaskedCatchBlock); + + case IProblem.UnusedImport : + return this.options.getSeverity(CompilerOptions.UnusedImport); + + case IProblem.MethodButWithConstructorName : + return this.options.getSeverity(CompilerOptions.MethodWithConstructorName); + + case IProblem.OverridingNonVisibleMethod : + return this.options.getSeverity(CompilerOptions.OverriddenPackageDefaultMethod); + + case IProblem.IncompatibleReturnTypeForNonInheritedInterfaceMethod : + case IProblem.IncompatibleExceptionInThrowsClauseForNonInheritedInterfaceMethod : + return this.options.getSeverity(CompilerOptions.IncompatibleNonInheritedInterfaceMethod); + + case IProblem.OverridingDeprecatedMethod : + case IProblem.UsingDeprecatedType : + case IProblem.UsingDeprecatedMethod : + case IProblem.UsingDeprecatedConstructor : + case IProblem.UsingDeprecatedField : + return this.options.getSeverity(CompilerOptions.UsingDeprecatedAPI); + + case IProblem.LocalVariableIsNeverUsed : + return this.options.getSeverity(CompilerOptions.UnusedLocalVariable); + + case IProblem.ArgumentIsNeverUsed : + return this.options.getSeverity(CompilerOptions.UnusedArgument); + + case IProblem.NoImplicitStringConversionForCharArrayExpression : + return this.options.getSeverity(CompilerOptions.NoImplicitStringConversion); + + case IProblem.NeedToEmulateFieldReadAccess : + case IProblem.NeedToEmulateFieldWriteAccess : + case IProblem.NeedToEmulateMethodAccess : + case IProblem.NeedToEmulateConstructorAccess : + return this.options.getSeverity(CompilerOptions.AccessEmulation); + + case IProblem.NonExternalizedStringLiteral : + return this.options.getSeverity(CompilerOptions.NonExternalizedString); + + case IProblem.UseAssertAsAnIdentifier : + return this.options.getSeverity(CompilerOptions.AssertUsedAsAnIdentifier); + + case IProblem.NonStaticAccessToStaticMethod : + case IProblem.NonStaticAccessToStaticField : + return this.options.getSeverity(CompilerOptions.NonStaticAccessToStatic); + +// case IProblem.IndirectAccessToStaticMethod : +// case IProblem.IndirectAccessToStaticField : +// case IProblem.IndirectAccessToStaticType : +// return this.options.getSeverity(CompilerOptions.IndirectStaticAccess); + + case IProblem.AssignmentHasNoEffect: + return this.options.getSeverity(CompilerOptions.NoEffectAssignment); + + case IProblem.UnusedPrivateConstructor: + case IProblem.UnusedPrivateMethod: + case IProblem.UnusedPrivateField: + case IProblem.UnusedPrivateType: + return this.options.getSeverity(CompilerOptions.UnusedPrivateMember); + + case IProblem.Task : + return Warning; + +// case IProblem.LocalVariableHidingLocalVariable: +// case IProblem.LocalVariableHidingField: +// case IProblem.ArgumentHidingLocalVariable: +// case IProblem.ArgumentHidingField: +// return this.options.getSeverity(CompilerOptions.LocalVariableHiding); + +// case IProblem.FieldHidingLocalVariable: +// case IProblem.FieldHidingField: +// return this.options.getSeverity(CompilerOptions.FieldHiding); + +// case IProblem.PossibleAccidentalBooleanAssignment: +// return this.options.getSeverity(CompilerOptions.AccidentalBooleanAssign); + +// case IProblem.SuperfluousSemicolon: +// return this.options.getSeverity(CompilerOptions.SuperfluousSemicolon); +// +// case IProblem.UndocumentedEmptyBlock: +// return this.options.getSeverity(CompilerOptions.UndocumentedEmptyBlock); +// +// case IProblem.UnnecessaryCast: +// case IProblem.UnnecessaryArgumentCast: +// case IProblem.UnnecessaryInstanceof: +// return this.options.getSeverity(CompilerOptions.UnnecessaryTypeCheck); +// +// case IProblem.FinallyMustCompleteNormally: +// return this.options.getSeverity(CompilerOptions.FinallyBlockNotCompleting); +// +// case IProblem.UnusedMethodDeclaredThrownException: +// case IProblem.UnusedConstructorDeclaredThrownException: +// return this.options.getSeverity(CompilerOptions.UnusedDeclaredThrownException); +// +// case IProblem.UnqualifiedFieldAccess: +// return this.options.getSeverity(CompilerOptions.UnqualifiedFieldAccess); + + /* + * Javadoc syntax errors + */ + // Javadoc explicit IDs +// case IProblem.JavadocUnexpectedTag: +// case IProblem.JavadocDuplicateReturnTag: +// case IProblem.JavadocInvalidThrowsClass: +// case IProblem.JavadocInvalidSeeReference: +// case IProblem.JavadocInvalidSeeHref: +// case IProblem.JavadocInvalidSeeArgs: +// case IProblem.JavadocInvalidTag: +// return this.options.getSeverity(CompilerOptions.InvalidJavadoc); + + /* + * Javadoc tags resolved references errors + */ +// case IProblem.JavadocInvalidParamName: +// case IProblem.JavadocDuplicateParamName: +// case IProblem.JavadocMissingParamName: +// case IProblem.JavadocInvalidThrowsClassName: +// case IProblem.JavadocDuplicateThrowsClassName: +// case IProblem.JavadocMissingThrowsClassName: +// case IProblem.JavadocMissingSeeReference: +// case IProblem.JavadocUsingDeprecatedField: +// case IProblem.JavadocUsingDeprecatedConstructor: +// case IProblem.JavadocUsingDeprecatedMethod: +// case IProblem.JavadocUsingDeprecatedType: +// case IProblem.JavadocUndefinedField: +// case IProblem.JavadocNotVisibleField: +// case IProblem.JavadocAmbiguousField: +// case IProblem.JavadocUndefinedConstructor: +// case IProblem.JavadocNotVisibleConstructor: +// case IProblem.JavadocAmbiguousConstructor: +// case IProblem.JavadocUndefinedMethod: +// case IProblem.JavadocNotVisibleMethod: +// case IProblem.JavadocAmbiguousMethod: +// case IProblem.JavadocParameterMismatch: +// case IProblem.JavadocUndefinedType: +// case IProblem.JavadocNotVisibleType: +// case IProblem.JavadocAmbiguousType: +// case IProblem.JavadocInternalTypeNameProvided: +// case IProblem.JavadocNoMessageSendOnArrayType: +// case IProblem.JavadocNoMessageSendOnBaseType: +// if (!this.options.reportInvalidJavadocTags) +// return ProblemSeverities.Ignore; +// else +// return this.options.getSeverity(CompilerOptions.InvalidJavadoc); + + /* + * Javadoc missing tags errors + */ +// case IProblem.JavadocMissingParamTag: +// case IProblem.JavadocMissingReturnTag: +// case IProblem.JavadocMissingThrowsTag: +// return this.options.getSeverity(CompilerOptions.MissingJavadocTags); + + /* + * Missing Javadoc errors + */ +// case IProblem.JavadocMissing: +// return this.options.getSeverity(CompilerOptions.MissingJavadocComments); + + // by default problems are errors. + default: + return Error; + } + } //public void conditionalArgumentsIncompatibleTypes(ConditionalExpression // expression, TypeBinding trueType, TypeBinding falseType) { // this.handle( @@ -585,11 +558,11 @@ public class ProblemReporter extends ProblemHandler implements ProblemReasons { // expression.sourceStart, // expression.sourceEnd); //} - public void conflictingImport(ImportReference importRef) { - String[] arguments = new String[]{CharOperation.toString(importRef.tokens)}; - this.handle(IProblem.ConflictingImport, arguments, arguments, - importRef.sourceStart, importRef.sourceEnd); - } +// public void conflictingImport(ImportReference importRef) { +// String[] arguments = new String[]{CharOperation.toString(importRef.tokens)}; +// this.handle(IProblem.ConflictingImport, arguments, arguments, +// importRef.sourceStart, importRef.sourceEnd); +// } public void constantOutOfFormat(NumberLiteral lit) { // the literal is not in a correct format // this code is called on IntLiteral and LongLiteral @@ -634,14 +607,14 @@ public class ProblemReporter extends ProblemHandler implements ProblemReasons { this.handle(IProblem.NumericValueOutOfRange, arguments, arguments, lit.sourceStart, lit.sourceEnd); } - public void deprecatedField(FieldBinding field, AstNode location) { + public void deprecatedField(FieldBinding field, ASTNode location) { this.handle(IProblem.UsingDeprecatedField, new String[]{new String(field.declaringClass.readableName()), new String(field.name)}, new String[]{ new String(field.declaringClass.shortReadableName()), new String(field.name)}, location.sourceStart, location.sourceEnd); } - public void deprecatedMethod(MethodBinding method, AstNode location) { + public void deprecatedMethod(MethodBinding method, ASTNode location) { if (method.isConstructor()) this.handle(IProblem.UsingDeprecatedConstructor, new String[]{ new String(method.declaringClass.readableName()), @@ -657,7 +630,7 @@ public class ProblemReporter extends ProblemHandler implements ProblemReasons { new String(method.selector), parametersAsShortString(method)}, location.sourceStart, location.sourceEnd); } - public void deprecatedType(TypeBinding type, AstNode location) { + public void deprecatedType(TypeBinding type, ASTNode location) { if (location == null) return; // 1G828DN - no type ref for synthetic arguments this.handle(IProblem.UsingDeprecatedType, new String[]{new String(type @@ -680,11 +653,11 @@ public class ProblemReporter extends ProblemHandler implements ProblemReasons { new String(type.shortReadableName()), fieldDecl.name()}, fieldDecl.sourceStart, fieldDecl.sourceEnd); } - public void duplicateImport(ImportReference importRef) { - String[] arguments = new String[]{CharOperation.toString(importRef.tokens)}; - this.handle(IProblem.DuplicateImport, arguments, arguments, - importRef.sourceStart, importRef.sourceEnd); - } +// public void duplicateImport(ImportReference importRef) { +// String[] arguments = new String[]{CharOperation.toString(importRef.tokens)}; +// this.handle(IProblem.DuplicateImport, arguments, arguments, +// importRef.sourceStart, importRef.sourceEnd); +// } public void duplicateInitializationOfBlankFinalField(FieldBinding field, Reference reference) { String[] arguments = new String[]{new String(field.readableName())}; @@ -692,7 +665,7 @@ public class ProblemReporter extends ProblemHandler implements ProblemReasons { arguments, reference.sourceStart, reference.sourceEnd); } public void duplicateInitializationOfFinalLocal(LocalVariableBinding local, - AstNode location) { + ASTNode location) { String[] arguments = new String[]{new String(local.readableName())}; this.handle(IProblem.DuplicateFinalLocalInitialization, arguments, arguments, location.sourceStart, location.sourceEnd); @@ -781,7 +754,7 @@ public class ProblemReporter extends ProblemHandler implements ProblemReasons { new String(messageSend.selector), shortBuffer.toString()}, messageSend.sourceStart, messageSend.sourceEnd); } - public void errorThisSuperInStatic(AstNode reference) { + public void errorThisSuperInStatic(ASTNode reference) { String[] arguments = new String[]{reference.isSuper() ? "super" : "this"}; //$NON-NLS-2$ //$NON-NLS-1$ this.handle(IProblem.ThisInStaticContext, arguments, arguments, reference.sourceStart, reference.sourceEnd); @@ -1041,7 +1014,7 @@ public class ProblemReporter extends ProblemHandler implements ProblemReasons { localDecl.sourceStart, localDecl.sourceEnd); } public void illegalPrimitiveOrArrayTypeForEnclosingInstance( - TypeBinding enclosingType, AstNode location) { + TypeBinding enclosingType, ASTNode location) { this.handle(IProblem.IllegalPrimitiveOrArrayTypeForEnclosingInstance, new String[]{new String(enclosingType.readableName())}, new String[]{new String(enclosingType.shortReadableName())}, @@ -1077,52 +1050,52 @@ public class ProblemReporter extends ProblemHandler implements ProblemReasons { this.handle(IProblem.IllegalVisibilityModifierForInterfaceMemberType, arguments, arguments, type.sourceStart(), type.sourceEnd()); } - public void illegalVoidExpression(AstNode location) { + public void illegalVoidExpression(ASTNode location) { this.handle(IProblem.InvalidVoidExpression, NoArgument, NoArgument, location.sourceStart, location.sourceEnd); } - public void importProblem(ImportReference importRef, Binding expectedImport) { - int problemId = expectedImport.problemId(); - int id; - switch (problemId) { - case NotFound : - // 1 - id = IProblem.ImportNotFound; - break; - case NotVisible : - // 2 - id = IProblem.ImportNotVisible; - break; - case Ambiguous : - // 3 - id = IProblem.ImportAmbiguous; - break; - case InternalNameProvided : - // 4 - id = IProblem.ImportInternalNameProvided; - break; - case InheritedNameHidesEnclosingName : - // 5 - id = IProblem.ImportInheritedNameHidesEnclosingName; - break; - case NoError : - // 0 - default : - needImplementation(); // want to fail to see why we were - // here... - return; - } - String argument; - if (expectedImport instanceof ProblemReferenceBinding) { - argument = CharOperation - .toString(((ProblemReferenceBinding) expectedImport).compoundName); - } else { - argument = CharOperation.toString(importRef.tokens); - } - String[] arguments = new String[]{argument}; - this.handle(id, arguments, arguments, importRef.sourceStart, - importRef.sourceEnd); - } +// public void importProblem(ImportReference importRef, Binding expectedImport) { +// int problemId = expectedImport.problemId(); +// int id; +// switch (problemId) { +// case NotFound : +// // 1 +// id = IProblem.ImportNotFound; +// break; +// case NotVisible : +// // 2 +// id = IProblem.ImportNotVisible; +// break; +// case Ambiguous : +// // 3 +// id = IProblem.ImportAmbiguous; +// break; +// case InternalNameProvided : +// // 4 +// id = IProblem.ImportInternalNameProvided; +// break; +// case InheritedNameHidesEnclosingName : +// // 5 +// id = IProblem.ImportInheritedNameHidesEnclosingName; +// break; +// case NoError : +// // 0 +// default : +// needImplementation(); // want to fail to see why we were +// // here... +// return; +// } +// String argument; +// if (expectedImport instanceof ProblemReferenceBinding) { +// argument = CharOperation +// .toString(((ProblemReferenceBinding) expectedImport).compoundName); +// } else { +// argument = CharOperation.toString(importRef.tokens); +// } +// String[] arguments = new String[]{argument}; +// this.handle(id, arguments, arguments, importRef.sourceStart, +// importRef.sourceEnd); +// } public void incompatibleExceptionInThrowsClause(SourceTypeBinding type, MethodBinding currentMethod, MethodBinding inheritedMethod, ReferenceBinding exceptionType) { @@ -1250,7 +1223,7 @@ public class ProblemReporter extends ProblemHandler implements ProblemReasons { NoArgument, fieldDecl.sourceStart, fieldDecl.sourceEnd); } public void innerTypesCannotDeclareStaticInitializers( - ReferenceBinding innerType, AstNode location) { + ReferenceBinding innerType, ASTNode location) { this.handle(IProblem.CannotDefineStaticInitializerInLocalType, new String[]{new String(innerType.readableName())}, new String[]{new String(innerType.shortReadableName())}, @@ -1267,7 +1240,7 @@ public class ProblemReporter extends ProblemHandler implements ProblemReasons { this.handle(IProblem.InterfaceCannotHaveInitializers, arguments, arguments, fieldDecl.sourceStart, fieldDecl.sourceEnd); } - public void invalidBreak(AstNode location) { + public void invalidBreak(ASTNode location) { this.handle(IProblem.InvalidBreak, NoArgument, NoArgument, location.sourceStart, location.sourceEnd); } @@ -1320,7 +1293,7 @@ public class ProblemReporter extends ProblemHandler implements ProblemReasons { parametersAsShortString(targetConstructor)}, statement.sourceStart, statement.sourceEnd); } - public void invalidContinue(AstNode location) { + public void invalidContinue(ASTNode location) { this.handle(IProblem.InvalidContinue, NoArgument, NoArgument, location.sourceStart, location.sourceEnd); } @@ -1628,7 +1601,7 @@ public class ProblemReporter extends ProblemHandler implements ProblemReasons { new String(type.shortReadableName())}, expression.sourceStart, expression.sourceEnd); } - public void invalidParenthesizedExpression(AstNode reference) { + public void invalidParenthesizedExpression(ASTNode reference) { this.handle(IProblem.InvalidParenthesizedExpression, NoArgument, NoArgument, reference.sourceStart, reference.sourceEnd); } @@ -1708,7 +1681,7 @@ public class ProblemReporter extends ProblemHandler implements ProblemReasons { new String(type.sourceName())}, superinterfaceRef.sourceStart, superinterfaceRef.sourceEnd); } - public void invalidType(AstNode location, TypeBinding type) { + public void invalidType(ASTNode location, TypeBinding type) { int flag = IProblem.UndefinedType; // default switch (type.problemId()) { case NotFound : @@ -1763,7 +1736,7 @@ public class ProblemReporter extends ProblemHandler implements ProblemReasons { : compUnitDecl.sourceEnd); } public void maskedExceptionHandler(ReferenceBinding exceptionType, - AstNode location) { + ASTNode location) { this.handle(IProblem.MaskedCatch, NoArgument, NoArgument, location.sourceStart, location.sourceEnd); } @@ -1783,7 +1756,7 @@ public class ProblemReporter extends ProblemHandler implements ProblemReasons { methodDecl.sourceStart, methodDecl.sourceEnd); } //public void missingEnclosingInstanceSpecification(ReferenceBinding - // enclosingType, AstNode location) { + // enclosingType, ASTNode location) { // boolean insideConstructorCall = // (location instanceof ExplicitConstructorCall) // && (((ExplicitConstructorCall) location).accessMode == @@ -1834,21 +1807,21 @@ public class ProblemReporter extends ProblemHandler implements ProblemReasons { public void needImplementation() { this.abortDueToInternalError(Util.bind("abort.missingCode")); //$NON-NLS-1$ } - public void needToEmulateFieldReadAccess(FieldBinding field, AstNode location) { + public void needToEmulateFieldReadAccess(FieldBinding field, ASTNode location) { this.handle(IProblem.NeedToEmulateFieldReadAccess, new String[]{new String(field.declaringClass.readableName()), new String(field.name)}, new String[]{ new String(field.declaringClass.shortReadableName()), new String(field.name)}, location.sourceStart, location.sourceEnd); } - public void needToEmulateFieldWriteAccess(FieldBinding field, AstNode location) { + public void needToEmulateFieldWriteAccess(FieldBinding field, ASTNode location) { this.handle(IProblem.NeedToEmulateFieldWriteAccess, new String[]{new String(field.declaringClass.readableName()), new String(field.name)}, new String[]{ new String(field.declaringClass.shortReadableName()), new String(field.name)}, location.sourceStart, location.sourceEnd); } - public void needToEmulateMethodAccess(MethodBinding method, AstNode location) { + public void needToEmulateMethodAccess(MethodBinding method, ASTNode location) { if (method.isConstructor()) this.handle(IProblem.NeedToEmulateConstructorAccess, new String[]{ new String(method.declaringClass.readableName()), @@ -1870,7 +1843,7 @@ public class ProblemReporter extends ProblemHandler implements ProblemReasons { arguments, typeDecl.sourceStart, typeDecl.sourceEnd); } public void noMoreAvailableSpaceForArgument(LocalVariableBinding local, - AstNode location) { + ASTNode location) { String[] arguments = new String[]{new String(local.name)}; this.handle(local instanceof SyntheticArgumentBinding ? IProblem.TooManySyntheticArgumentSlots @@ -1878,12 +1851,12 @@ public class ProblemReporter extends ProblemHandler implements ProblemReasons { location.sourceStart, location.sourceEnd); } public void noMoreAvailableSpaceForLocal(LocalVariableBinding local, - AstNode location) { + ASTNode location) { String[] arguments = new String[]{new String(local.name)}; this.handle(IProblem.TooManyLocalVariableSlots, arguments, arguments, Abort | Error, location.sourceStart, location.sourceEnd); } - public void noSuchEnclosingInstance(TypeBinding targetType, AstNode location, + public void noSuchEnclosingInstance(TypeBinding targetType, ASTNode location, boolean isConstructorCall) { int id; if (isConstructorCall) { @@ -1985,13 +1958,13 @@ public class ProblemReporter extends ProblemHandler implements ProblemReasons { new String(inheritedMethod.declaringClass.shortReadableName())}, localMethod.sourceStart(), localMethod.sourceEnd()); } - public void packageCollidesWithType(CompilationUnitDeclaration compUnitDecl) { - String[] arguments = new String[]{CharOperation - .toString(compUnitDecl.currentPackage.tokens)}; - this.handle(IProblem.PackageCollidesWithType, arguments, arguments, - compUnitDecl.currentPackage.sourceStart, - compUnitDecl.currentPackage.sourceEnd); - } +// public void packageCollidesWithType(CompilationUnitDeclaration compUnitDecl) { +// String[] arguments = new String[]{CharOperation +// .toString(compUnitDecl.currentPackage.tokens)}; +// this.handle(IProblem.PackageCollidesWithType, arguments, arguments, +// compUnitDecl.currentPackage.sourceStart, +// compUnitDecl.currentPackage.sourceEnd); +// } public void packageIsNotExpectedPackage( CompilationUnitDeclaration compUnitDecl) { String[] arguments = new String[]{CharOperation @@ -2199,7 +2172,7 @@ public class ProblemReporter extends ProblemHandler implements ProblemReasons { startPos, scanner.currentPosition - 1, parser.compilationUnit.compilationResult); } - public void shouldReturn(TypeBinding returnType, AstNode location) { + public void shouldReturn(TypeBinding returnType, ASTNode location) { this.handle(IProblem.ShouldReturnValue, new String[]{new String(returnType .readableName())}, new String[]{new String(returnType .shortReadableName())}, location.sourceStart, location.sourceEnd); @@ -2268,7 +2241,7 @@ public class ProblemReporter extends ProblemHandler implements ProblemReasons { new String(abstractMethods[0].declaringClass.shortReadableName())}, type.sourceStart(), type.sourceEnd()); } - public void stringConstantIsExceedingUtf8Limit(AstNode location) { + public void stringConstantIsExceedingUtf8Limit(ASTNode location) { this.handle(IProblem.StringConstantIsExceedingUtf8Limit, NoArgument, NoArgument, location.sourceStart, location.sourceEnd); } @@ -2303,7 +2276,7 @@ public class ProblemReporter extends ProblemHandler implements ProblemReasons { * surfaced in getMessage() */}, start, end); } - public void tooManyDimensions(AstNode expression) { + public void tooManyDimensions(ASTNode expression) { this.handle(IProblem.TooManyArrayDimensions, NoArgument, NoArgument, expression.sourceStart, expression.sourceEnd); } @@ -2345,7 +2318,7 @@ public class ProblemReporter extends ProblemHandler implements ProblemReasons { compUnitDecl.compilationResult); } public void typeMismatchError(TypeBinding resultType, - TypeBinding expectedType, AstNode location) { + TypeBinding expectedType, ASTNode location) { String resultTypeName = new String(resultType.readableName()); String expectedTypeName = new String(expectedType.readableName()); String resultTypeShortName = new String(resultType.shortReadableName()); @@ -2390,7 +2363,7 @@ public class ProblemReporter extends ProblemHandler implements ProblemReasons { this.handle(IProblem.UnexpectedStaticModifierForMethod, arguments, arguments, methodDecl.sourceStart, methodDecl.sourceEnd); } - public void unhandledException(TypeBinding exceptionType, AstNode location) { + public void unhandledException(TypeBinding exceptionType, ASTNode location) { boolean insideDefaultConstructor = (referenceContext instanceof ConstructorDeclaration) && ((ConstructorDeclaration) referenceContext).isDefaultConstructor(); boolean insideImplicitConstructorCall = (location instanceof ExplicitConstructorCall) @@ -2404,13 +2377,13 @@ public class ProblemReporter extends ProblemHandler implements ProblemReasons { .shortReadableName())}, location.sourceStart, location.sourceEnd); } public void uninitializedBlankFinalField(FieldBinding binding, - AstNode location) { + ASTNode location) { String[] arguments = new String[]{new String(binding.readableName())}; this.handle(IProblem.UninitializedBlankFinalField, arguments, arguments, location.sourceStart, location.sourceEnd); } public void uninitializedLocalVariable(LocalVariableBinding binding, - AstNode location) { + ASTNode location) { String[] arguments = new String[]{new String(binding.readableName())}; this.handle(IProblem.UninitializedLocalVariable, arguments, arguments, location.sourceStart, location.sourceEnd); @@ -2427,7 +2400,7 @@ public class ProblemReporter extends ProblemHandler implements ProblemReasons { new String[]{new String(targetType.shortReadableName())}, expression.sourceStart, expression.sourceEnd); } - public void unnecessaryReceiverForStaticMethod(AstNode location, + public void unnecessaryReceiverForStaticMethod(ASTNode location, MethodBinding method) { this.handle(IProblem.NonStaticAccessToStaticMethod, new String[]{ new String(method.declaringClass.readableName()), @@ -2436,7 +2409,7 @@ public class ProblemReporter extends ProblemHandler implements ProblemReasons { new String(method.selector), parametersAsShortString(method)}, location.sourceStart, location.sourceEnd); } - public void unnecessaryReceiverForStaticField(AstNode location, + public void unnecessaryReceiverForStaticField(ASTNode location, FieldBinding field) { this.handle(IProblem.NonStaticAccessToStaticField, new String[]{new String(field.declaringClass.readableName()), @@ -2449,7 +2422,7 @@ public class ProblemReporter extends ProblemHandler implements ProblemReasons { statement.sourceStart, statement.sourceEnd); } public void unreachableExceptionHandler(ReferenceBinding exceptionType, - AstNode location) { + ASTNode location) { this.handle(IProblem.UnreachableCatch, NoArgument, NoArgument, location.sourceStart, location.sourceEnd); } @@ -2470,11 +2443,11 @@ public class ProblemReporter extends ProblemHandler implements ProblemReasons { this.handle(IProblem.ArgumentIsNeverUsed, arguments, arguments, localDecl.sourceStart, localDecl.sourceEnd); } - public void unusedImport(ImportReference importRef) { - String[] arguments = new String[]{CharOperation.toString(importRef.tokens)}; - this.handle(IProblem.UnusedImport, arguments, arguments, - importRef.sourceStart, importRef.sourceEnd); - } +// public void unusedImport(ImportReference importRef) { +// String[] arguments = new String[]{CharOperation.toString(importRef.tokens)}; +// this.handle(IProblem.UnusedImport, arguments, arguments, +// importRef.sourceStart, importRef.sourceEnd); +// } public void unusedLocalVariable(LocalDeclaration localDecl) { String[] arguments = new String[]{localDecl.name()}; this.handle(IProblem.LocalVariableIsNeverUsed, arguments, arguments, @@ -2603,7 +2576,7 @@ public class ProblemReporter extends ProblemHandler implements ProblemReasons { this.handle(IProblem.UnreachableCatch, NoArgument, NoArgument, typeRef.sourceStart, typeRef.sourceEnd); } - public void nonExternalizedStringLiteral(AstNode location) { + public void nonExternalizedStringLiteral(ASTNode location) { this.handle(IProblem.NonExternalizedStringLiteral, NoArgument, NoArgument, location.sourceStart, location.sourceEnd); } @@ -2697,7 +2670,7 @@ public class ProblemReporter extends ProblemHandler implements ProblemReasons { // case Scanner.TokenNamestrictfp: // case Scanner.TokenNamesynchronized: case Scanner.TokenNametry : - case Scanner.TokenNamethis : +// case Scanner.TokenNamethis : // case Scanner.TokenNametrue : case Scanner.TokenNamethrow : // case Scanner.TokenNamethrows: @@ -2732,7 +2705,27 @@ public class ProblemReporter extends ProblemHandler implements ProblemReasons { public void phpVarDeprecatedWarning( int problemStartPosition, int problemEndPosition, ReferenceContext context, CompilationResult compilationResult) { + if (computeSeverity(IProblem.PHPVarDeprecatedWarning) == Ignore) + return; this.handle(IProblem.PHPVarDeprecatedWarning, NoArgument, new String[]{}, problemStartPosition, problemEndPosition, context, compilationResult); } + + public void phpKeywordWarning(String[] messageArguments, + int problemStartPosition, int problemEndPosition, + ReferenceContext context, CompilationResult compilationResult) { + if (computeSeverity(IProblem.PHPBadStyleKeywordWarning) == Ignore) + return; + this.handle(IProblem.PHPBadStyleKeywordWarning, NoArgument, messageArguments, + problemStartPosition, problemEndPosition, context, compilationResult); + } + + public void phpUppercaseIdentifierWarning( + int problemStartPosition, int problemEndPosition, + ReferenceContext context, CompilationResult compilationResult) { + if (computeSeverity(IProblem.PHPBadStyleUppercaseIdentifierWarning) == Ignore) + return; + this.handle(IProblem.PHPBadStyleUppercaseIdentifierWarning, NoArgument, new String[]{}, + problemStartPosition, problemEndPosition, context, compilationResult); + } }