/******************************************************************************* * Copyright (c) 2000, 2004 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Common Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/cpl-v10.html * * Contributors: * IBM Corporation - initial API and implementation * IBM Corporation - added the following constants * NonStaticAccessToStaticField * NonStaticAccessToStaticMethod * Task * ExpressionShouldBeAVariable * AssignmentHasNoEffect * IBM Corporation - added the following constants * TooManySyntheticArgumentSlots * TooManyArrayDimensions * TooManyBytesForStringConstant * TooManyMethods * TooManyFields * NonBlankFinalLocalAssignment * ObjectCannotHaveSuperTypes * MissingSemiColon * InvalidParenthesizedExpression * EnclosingInstanceInConstructorCall * BytecodeExceeds64KLimitForConstructor * IncompatibleReturnTypeForNonInheritedInterfaceMethod * UnusedPrivateMethod * UnusedPrivateConstructor * UnusedPrivateType * UnusedPrivateField * IncompatibleExceptionInThrowsClauseForNonInheritedInterfaceMethod * InvalidExplicitConstructorCall * IBM Corporation - added the following constants * PossibleAccidentalBooleanAssignment * SuperfluousSemicolon * IndirectAccessToStaticField * IndirectAccessToStaticMethod * IndirectAccessToStaticType * BooleanMethodThrowingException * UnnecessaryCast * UnnecessaryArgumentCast * UnnecessaryInstanceof * FinallyMustCompleteNormally * UnusedMethodDeclaredThrownException * UnusedConstructorDeclaredThrownException * InvalidCatchBlockSequence * UnqualifiedFieldAccess * IBM Corporation - added the following constants * Javadoc * JavadocUnexpectedTag * JavadocMissingParamTag * JavadocMissingParamName * JavadocDuplicateParamName * JavadocInvalidParamName * JavadocMissingReturnTag * JavadocDuplicateReturnTag * JavadocMissingThrowsTag * JavadocMissingThrowsClassName * JavadocInvalidThrowsClass * JavadocDuplicateThrowsClassName * JavadocInvalidThrowsClassName * JavadocMissingSeeReference * JavadocInvalidSeeReference * JavadocInvalidSeeHref * JavadocInvalidSeeArgs * JavadocMissing * JavadocInvalidTag * JavadocMessagePrefix * EmptyControlFlowStatement * IBM Corporation - added the following constants * IllegalUsageOfQualifiedTypeReference * InvalidDigit ****************************************************************************/ package org.eclipse.jdt.core.compiler; import org.eclipse.jdt.internal.compiler.lookup.ProblemReasons; /** * Description of a Java problem, as detected by the compiler or some of the underlying * technology reusing the compiler. * A problem provides access to: * <ul> * <li> its location (originating source file name, source position, line number), </li> * <li> its message description and a predicate to check its severity (warning or error). </li> * <li> its ID : an number identifying the very nature of this problem. All possible IDs are listed * as constants on this interface. </li> * </ul> * * Note: the compiler produces IProblems internally, which are turned into markers by the JavaBuilder * so as to persist problem descriptions. This explains why there is no API allowing to reach IProblem detected * when compiling. However, the Java problem markers carry equivalent information to IProblem, in particular * their ID (attribute "id") is set to one of the IDs defined on this interface. * * @since 2.0 */ public interface IProblem { /** * Answer back the original arguments recorded into the problem. * @return the original arguments recorded into the problem */ String[] getArguments(); /** * Returns the problem id * * @return the problem id */ int getID(); /** * Answer a localized, human-readable message string which describes the problem. * * @return a localized, human-readable message string which describes the problem */ String getMessage(); /** * Answer the file name in which the problem was found. * * @return the file name in which the problem was found */ char[] getOriginatingFileName(); /** * Answer the end position of the problem (inclusive), or -1 if unknown. * * @return the end position of the problem (inclusive), or -1 if unknown */ int getSourceEnd(); /** * Answer the line number in source where the problem begins. * * @return the line number in source where the problem begins */ int getSourceLineNumber(); /** * Answer the start position of the problem (inclusive), or -1 if unknown. * * @return the start position of the problem (inclusive), or -1 if unknown */ int getSourceStart(); /** * Checks the severity to see if the Error bit is set. * * @return true if the Error bit is set for the severity, false otherwise */ boolean isError(); /** * Checks the severity to see if the Error bit is not set. * * @return true if the Error bit is not set for the severity, false otherwise */ boolean isWarning(); /** * Set the end position of the problem (inclusive), or -1 if unknown. * Used for shifting problem positions. * * @param sourceEnd the given end position */ void setSourceEnd(int sourceEnd); /** * Set the line number in source where the problem begins. * * @param lineNumber the given line number */ void setSourceLineNumber(int lineNumber); /** * Set the start position of the problem (inclusive), or -1 if unknown. * Used for shifting problem positions. * * @param sourceStart the given start position */ void setSourceStart(int sourceStart); /** * Problem Categories * The high bits of a problem ID contains information about the category of a problem. * For example, (problemID & TypeRelated) != 0, indicates that this problem is type related. * * A problem category can help to implement custom problem filters. Indeed, when numerous problems * are listed, focusing on import related problems first might be relevant. * * When a problem is tagged as Internal, it means that no change other than a local source code change * can fix the corresponding problem. */ int TypeRelated = 0x01000000; int FieldRelated = 0x02000000; int MethodRelated = 0x04000000; int ConstructorRelated = 0x08000000; int ImportRelated = 0x10000000; int Internal = 0x20000000; int Syntax = 0x40000000; /** * @since 3.0 */ int Javadoc = 0x80000000; /** * Mask to use in order to filter out the category portion of the problem ID. */ int IgnoreCategoriesMask = 0xFFFFFF; /** * Below are listed all available problem IDs. Note that this list could be augmented in the future, * as new features are added to the Java core implementation. */ /** * ID reserved for referencing an internal error inside the JavaCore implementation which * may be surfaced as a problem associated with the compilation unit which caused it to occur. */ int Unclassified = 0; /** * General type related problems */ int ObjectHasNoSuperclass = TypeRelated + 1; int UndefinedType = TypeRelated + 2; int NotVisibleType = TypeRelated + 3; int AmbiguousType = TypeRelated + 4; int UsingDeprecatedType = TypeRelated + 5; int InternalTypeNameProvided = TypeRelated + 6; /** @since 2.1 */ int UnusedPrivateType = Internal + TypeRelated + 7; int IncompatibleTypesInEqualityOperator = TypeRelated + 15; int IncompatibleTypesInConditionalOperator = TypeRelated + 16; int TypeMismatch = TypeRelated + 17; /** @since 3.0 */ int IndirectAccessToStaticType = Internal + TypeRelated + 18; /** * Inner types related problems */ int MissingEnclosingInstanceForConstructorCall = TypeRelated + 20; int MissingEnclosingInstance = TypeRelated + 21; int IncorrectEnclosingInstanceReference = TypeRelated + 22; int IllegalEnclosingInstanceSpecification = TypeRelated + 23; int CannotDefineStaticInitializerInLocalType = Internal + 24; int OuterLocalMustBeFinal = Internal + 25; int CannotDefineInterfaceInLocalType = Internal + 26; int IllegalPrimitiveOrArrayTypeForEnclosingInstance = TypeRelated + 27; /** @since 2.1 */ int EnclosingInstanceInConstructorCall = Internal + 28; int AnonymousClassCannotExtendFinalClass = TypeRelated + 29; // variables int UndefinedName = 50; int UninitializedLocalVariable = Internal + 51; int VariableTypeCannotBeVoid = Internal + 52; int VariableTypeCannotBeVoidArray = Internal + 53; int CannotAllocateVoidArray = Internal + 54; // local variables int RedefinedLocal = Internal + 55; int RedefinedArgument = Internal + 56; // final local variables int DuplicateFinalLocalInitialization = Internal + 57; /** @since 2.1 */ int NonBlankFinalLocalAssignment = Internal + 58; int FinalOuterLocalAssignment = Internal + 60; int LocalVariableIsNeverUsed = Internal + 61; int ArgumentIsNeverUsed = Internal + 62; int BytecodeExceeds64KLimit = Internal + 63; int BytecodeExceeds64KLimitForClinit = Internal + 64; int TooManyArgumentSlots = Internal + 65; int TooManyLocalVariableSlots = Internal + 66; /** @since 2.1 */ int TooManySyntheticArgumentSlots = Internal + 67; /** @since 2.1 */ int TooManyArrayDimensions = Internal + 68; /** @since 2.1 */ int BytecodeExceeds64KLimitForConstructor = Internal + 69; // fields int UndefinedField = FieldRelated + 70; int NotVisibleField = FieldRelated + 71; int AmbiguousField = FieldRelated + 72; int UsingDeprecatedField = FieldRelated + 73; int NonStaticFieldFromStaticInvocation = FieldRelated + 74; int ReferenceToForwardField = FieldRelated + Internal + 75; /** @since 2.1 */ int NonStaticAccessToStaticField = Internal + FieldRelated + 76; /** @since 2.1 */ int UnusedPrivateField = Internal + FieldRelated + 77; /** @since 3.0 */ int IndirectAccessToStaticField = Internal + FieldRelated + 78; /** @since 3.0 */ int UnqualifiedFieldAccess = Internal + FieldRelated + 79; // blank final fields int FinalFieldAssignment = FieldRelated + 80; int UninitializedBlankFinalField = FieldRelated + 81; int DuplicateBlankFinalFieldInitialization = FieldRelated + 82; // variable hiding /** * The local variable {0} is hiding another local variable defined in an enclosing type scope * @since 3.0 */ int LocalVariableHidingLocalVariable = Internal + 90; /** * The local variable {0} is hiding the field {1}.{2} * @since 3.0 */ int LocalVariableHidingField = Internal + FieldRelated + 91; /** * The field {0}.{1} is hiding another local variable defined in an enclosing type scope * @since 3.0 */ int FieldHidingLocalVariable = Internal + FieldRelated + 92; /** * The field {0}.{1} is hiding the field {2}.{3} * @since 3.0 */ int FieldHidingField = Internal + FieldRelated + 93; /** * The argument {0} is hiding another local variable defined in an enclosing type scope * @since 3.0 */ int ArgumentHidingLocalVariable = Internal + 94; /** * The argument {0} is hiding the field {2}.{3} * @since 3.0 */ int ArgumentHidingField = Internal + 95; /** @since 3.1 */ int MissingSerialVersion = Internal + 96; // methods int UndefinedMethod = MethodRelated + 100; int NotVisibleMethod = MethodRelated + 101; int AmbiguousMethod = MethodRelated + 102; int UsingDeprecatedMethod = MethodRelated + 103; int DirectInvocationOfAbstractMethod = MethodRelated + 104; int VoidMethodReturnsValue = MethodRelated + 105; int MethodReturnsVoid = MethodRelated + 106; int MethodRequiresBody = Internal + MethodRelated + 107; int ShouldReturnValue = Internal + MethodRelated + 108; int MethodButWithConstructorName = MethodRelated + 110; int MissingReturnType = TypeRelated + 111; int BodyForNativeMethod = Internal + MethodRelated + 112; int BodyForAbstractMethod = Internal + MethodRelated + 113; int NoMessageSendOnBaseType = MethodRelated + 114; int ParameterMismatch = MethodRelated + 115; int NoMessageSendOnArrayType = MethodRelated + 116; /** @since 2.1 */ int NonStaticAccessToStaticMethod = Internal + MethodRelated + 117; /** @since 2.1 */ int UnusedPrivateMethod = Internal + MethodRelated + 118; /** @since 3.0 */ int IndirectAccessToStaticMethod = Internal + MethodRelated + 119; // constructors int UndefinedConstructor = ConstructorRelated + 130; int NotVisibleConstructor = ConstructorRelated + 131; int AmbiguousConstructor = ConstructorRelated + 132; int UsingDeprecatedConstructor = ConstructorRelated + 133; /** @since 2.1 */ int UnusedPrivateConstructor = Internal + MethodRelated + 134; // explicit constructor calls int InstanceFieldDuringConstructorInvocation = ConstructorRelated + 135; int InstanceMethodDuringConstructorInvocation = ConstructorRelated + 136; int RecursiveConstructorInvocation = ConstructorRelated + 137; int ThisSuperDuringConstructorInvocation = ConstructorRelated + 138; /** @since 3.0 */ int InvalidExplicitConstructorCall = ConstructorRelated + Syntax + 139; // implicit constructor calls int UndefinedConstructorInDefaultConstructor = ConstructorRelated + 140; int NotVisibleConstructorInDefaultConstructor = ConstructorRelated + 141; int AmbiguousConstructorInDefaultConstructor = ConstructorRelated + 142; int UndefinedConstructorInImplicitConstructorCall = ConstructorRelated + 143; int NotVisibleConstructorInImplicitConstructorCall = ConstructorRelated + 144; int AmbiguousConstructorInImplicitConstructorCall = ConstructorRelated + 145; int UnhandledExceptionInDefaultConstructor = TypeRelated + 146; int UnhandledExceptionInImplicitConstructorCall = TypeRelated + 147; // expressions int ArrayReferenceRequired = Internal + 150; int NoImplicitStringConversionForCharArrayExpression = Internal + 151; // constant expressions int StringConstantIsExceedingUtf8Limit = Internal + 152; int NonConstantExpression = 153; int NumericValueOutOfRange = Internal + 154; // cast expressions int IllegalCast = TypeRelated + 156; // allocations int InvalidClassInstantiation = TypeRelated + 157; int CannotDefineDimensionExpressionsWithInit = Internal + 158; int MustDefineEitherDimensionExpressionsOrInitializer = Internal + 159; // operators int InvalidOperator = Internal + 160; // statements int CodeCannotBeReached = Internal + 161; int CannotReturnInInitializer = Internal + 162; int InitializerMustCompleteNormally = Internal + 163; // assert int InvalidVoidExpression = Internal + 164; // try int MaskedCatch = TypeRelated + 165; int DuplicateDefaultCase = 166; int UnreachableCatch = TypeRelated + MethodRelated + 167; int UnhandledException = TypeRelated + 168; // switch int IncorrectSwitchType = TypeRelated + 169; int DuplicateCase = FieldRelated + 170; // labelled int DuplicateLabel = Internal + 171; int InvalidBreak = Internal + 172; int InvalidContinue = Internal + 173; int UndefinedLabel = Internal + 174; //synchronized int InvalidTypeToSynchronized = Internal + 175; int InvalidNullToSynchronized = Internal + 176; // throw int CannotThrowNull = Internal + 177; // assignment /** @since 2.1 */ int AssignmentHasNoEffect = Internal + 178; /** @since 3.0 */ int PossibleAccidentalBooleanAssignment = Internal + 179; /** @since 3.0 */ int SuperfluousSemicolon = Internal + 180; /** @since 3.0 */ int UnnecessaryCast = Internal + TypeRelated + 181; /** @since 3.0 */ int UnnecessaryArgumentCast = Internal + TypeRelated + 182; /** @since 3.0 */ int UnnecessaryInstanceof = Internal + TypeRelated + 183; /** @since 3.0 */ int FinallyMustCompleteNormally = Internal + 184; /** @since 3.0 */ int UnusedMethodDeclaredThrownException = Internal + 185; /** @since 3.0 */ int UnusedConstructorDeclaredThrownException = Internal + 186; /** @since 3.0 */ int InvalidCatchBlockSequence = Internal + TypeRelated + 187; /** @since 3.0 */ int EmptyControlFlowStatement = Internal + TypeRelated + 188; /** @since 3.0 */ int UnnecessaryElse = Internal + 189; // inner emulation int NeedToEmulateFieldReadAccess = FieldRelated + 190; int NeedToEmulateFieldWriteAccess = FieldRelated + 191; int NeedToEmulateMethodAccess = MethodRelated + 192; int NeedToEmulateConstructorAccess = MethodRelated + 193; //inherited name hides enclosing name (sort of ambiguous) int InheritedMethodHidesEnclosingName = MethodRelated + 195; int InheritedFieldHidesEnclosingName = FieldRelated + 196; int InheritedTypeHidesEnclosingName = TypeRelated + 197; /** @since 3.1 */ int IllegalUsageOfQualifiedTypeReference = Internal + Syntax + 198; // miscellaneous int ThisInStaticContext = Internal + 200; int StaticMethodRequested = Internal + MethodRelated + 201; int IllegalDimension = Internal + 202; int InvalidTypeExpression = Internal + 203; int ParsingError = Syntax + Internal + 204; int ParsingErrorNoSuggestion = Syntax + Internal + 205; int InvalidUnaryExpression = Syntax + Internal + 206; // syntax errors int InterfaceCannotHaveConstructors = Syntax + Internal + 207; int ArrayConstantsOnlyInArrayInitializers = Syntax + Internal + 208; int ParsingErrorOnKeyword = Syntax + Internal + 209; int ParsingErrorOnKeywordNoSuggestion = Syntax + Internal + 210; int UnmatchedBracket = Syntax + Internal + 220; int NoFieldOnBaseType = FieldRelated + 221; int InvalidExpressionAsStatement = Syntax + Internal + 222; /** @since 2.1 */ int ExpressionShouldBeAVariable = Syntax + Internal + 223; /** @since 2.1 */ int MissingSemiColon = Syntax + Internal + 224; /** @since 2.1 */ int InvalidParenthesizedExpression = Syntax + Internal + 225; /** @since 3.0 */ int ParsingErrorInsertTokenBefore = Syntax + Internal + 230; /** @since 3.0 */ int ParsingErrorInsertTokenAfter = Syntax + Internal + 231; /** @since 3.0 */ int ParsingErrorDeleteToken = Syntax + Internal + 232; /** @since 3.0 */ int ParsingErrorDeleteTokens = Syntax + Internal + 233; /** @since 3.0 */ int ParsingErrorMergeTokens = Syntax + Internal + 234; /** @since 3.0 */ int ParsingErrorInvalidToken = Syntax + Internal + 235; /** @since 3.0 */ int ParsingErrorMisplacedConstruct = Syntax + Internal + 236; /** @since 3.0 */ int ParsingErrorReplaceTokens = Syntax + Internal + 237; /** @since 3.0 */ int ParsingErrorNoSuggestionForTokens = Syntax + Internal + 238; /** @since 3.0 */ int ParsingErrorUnexpectedEOF = Syntax + Internal + 239; /** @since 3.0 */ int ParsingErrorInsertToComplete = Syntax + Internal + 240; /** @since 3.0 */ int ParsingErrorInsertToCompleteScope = Syntax + Internal + 241; /** @since 3.0 */ int ParsingErrorInsertToCompletePhrase = Syntax + Internal + 242; // scanner errors int EndOfSource = Syntax + Internal + 250; int InvalidHexa = Syntax + Internal + 251; int InvalidOctal = Syntax + Internal + 252; int InvalidCharacterConstant = Syntax + Internal + 253; int InvalidEscape = Syntax + Internal + 254; int InvalidInput = Syntax + Internal + 255; int InvalidUnicodeEscape = Syntax + Internal + 256; int InvalidFloat = Syntax + Internal + 257; int NullSourceString = Syntax + Internal + 258; int UnterminatedString = Syntax + Internal + 259; int UnterminatedComment = Syntax + Internal + 260; /** @since 3.1 */ int InvalidDigit = Syntax + Internal + 262; // type related problems int InterfaceCannotHaveInitializers = TypeRelated + 300; int DuplicateModifierForType = TypeRelated + 301; int IllegalModifierForClass = TypeRelated + 302; int IllegalModifierForInterface = TypeRelated + 303; int IllegalModifierForMemberClass = TypeRelated + 304; int IllegalModifierForMemberInterface = TypeRelated + 305; int IllegalModifierForLocalClass = TypeRelated + 306; int ForbiddenReference = TypeRelated + 307; int IllegalModifierCombinationFinalAbstractForClass = TypeRelated + 308; int IllegalVisibilityModifierForInterfaceMemberType = TypeRelated + 309; int IllegalVisibilityModifierCombinationForMemberType = TypeRelated + 310; int IllegalStaticModifierForMemberType = TypeRelated + 311; int SuperclassMustBeAClass = TypeRelated + 312; int ClassExtendFinalClass = TypeRelated + 313; int DuplicateSuperInterface = TypeRelated + 314; int SuperInterfaceMustBeAnInterface = TypeRelated + 315; int HierarchyCircularitySelfReference = TypeRelated + 316; int HierarchyCircularity = TypeRelated + 317; int HidingEnclosingType = TypeRelated + 318; int DuplicateNestedType = TypeRelated + 319; int CannotThrowType = TypeRelated + 320; int PackageCollidesWithType = TypeRelated + 321; int TypeCollidesWithPackage = TypeRelated + 322; int DuplicateTypes = TypeRelated + 323; int IsClassPathCorrect = TypeRelated + 324; int PublicClassMustMatchFileName = TypeRelated + 325; int MustSpecifyPackage = 326; int HierarchyHasProblems = TypeRelated + 327; int PackageIsNotExpectedPackage = 328; /** @since 2.1 */ int ObjectCannotHaveSuperTypes = 329; /** @deprecated - problem is no longer generated, UndefinedType is used instead */ int SuperclassNotFound = TypeRelated + 329 + ProblemReasons.NotFound; // TypeRelated + 330 /** @deprecated - problem is no longer generated, NotVisibleType is used instead */ int SuperclassNotVisible = TypeRelated + 329 + ProblemReasons.NotVisible; // TypeRelated + 331 /** @deprecated - problem is no longer generated, use AmbiguousType is used instead */ int SuperclassAmbiguous = TypeRelated + 329 + ProblemReasons.Ambiguous; // TypeRelated + 332 /** @deprecated - problem is no longer generated, use InternalTypeNameProvided is used instead */ int SuperclassInternalNameProvided = TypeRelated + 329 + ProblemReasons.InternalNameProvided; // TypeRelated + 333 /** @deprecated - problem is no longer generated, use InheritedTypeHidesEnclosingName is used instead */ int SuperclassInheritedNameHidesEnclosingName = TypeRelated + 329 + ProblemReasons.InheritedNameHidesEnclosingName; // TypeRelated + 334 /** @deprecated - problem is no longer generated, UndefinedType is used instead */ int InterfaceNotFound = TypeRelated + 334 + ProblemReasons.NotFound; // TypeRelated + 335 /** @deprecated - problem is no longer generated, NotVisibleType is used instead */ int InterfaceNotVisible = TypeRelated + 334 + ProblemReasons.NotVisible; // TypeRelated + 336 /** @deprecated - problem is no longer generated, use AmbiguousType is used instead */ int InterfaceAmbiguous = TypeRelated + 334 + ProblemReasons.Ambiguous; // TypeRelated + 337 /** @deprecated - problem is no longer generated, use InternalTypeNameProvided is used instead */ int InterfaceInternalNameProvided = TypeRelated + 334 + ProblemReasons.InternalNameProvided; // TypeRelated + 338 /** @deprecated - problem is no longer generated, use InheritedTypeHidesEnclosingName is used instead */ int InterfaceInheritedNameHidesEnclosingName = TypeRelated + 334 + ProblemReasons.InheritedNameHidesEnclosingName; // TypeRelated + 339 // field related problems int DuplicateField = FieldRelated + 340; int DuplicateModifierForField = FieldRelated + 341; int IllegalModifierForField = FieldRelated + 342; int IllegalModifierForInterfaceField = FieldRelated + 343; int IllegalVisibilityModifierCombinationForField = FieldRelated + 344; int IllegalModifierCombinationFinalVolatileForField = FieldRelated + 345; int UnexpectedStaticModifierForField = FieldRelated + 346; /** @deprecated - problem is no longer generated, UndefinedType is used instead */ int FieldTypeNotFound = FieldRelated + 349 + ProblemReasons.NotFound; // FieldRelated + 350 /** @deprecated - problem is no longer generated, NotVisibleType is used instead */ int FieldTypeNotVisible = FieldRelated + 349 + ProblemReasons.NotVisible; // FieldRelated + 351 /** @deprecated - problem is no longer generated, use AmbiguousType is used instead */ int FieldTypeAmbiguous = FieldRelated + 349 + ProblemReasons.Ambiguous; // FieldRelated + 352 /** @deprecated - problem is no longer generated, use InternalTypeNameProvided is used instead */ int FieldTypeInternalNameProvided = FieldRelated + 349 + ProblemReasons.InternalNameProvided; // FieldRelated + 353 /** @deprecated - problem is no longer generated, use InheritedTypeHidesEnclosingName is used instead */ int FieldTypeInheritedNameHidesEnclosingName = FieldRelated + 349 + ProblemReasons.InheritedNameHidesEnclosingName; // FieldRelated + 354 // method related problems int DuplicateMethod = MethodRelated + 355; int IllegalModifierForArgument = MethodRelated + 356; int DuplicateModifierForMethod = MethodRelated + 357; int IllegalModifierForMethod = MethodRelated + 358; int IllegalModifierForInterfaceMethod = MethodRelated + 359; int IllegalVisibilityModifierCombinationForMethod = MethodRelated + 360; int UnexpectedStaticModifierForMethod = MethodRelated + 361; int IllegalAbstractModifierCombinationForMethod = MethodRelated + 362; int AbstractMethodInAbstractClass = MethodRelated + 363; int ArgumentTypeCannotBeVoid = MethodRelated + 364; int ArgumentTypeCannotBeVoidArray = MethodRelated + 365; int ReturnTypeCannotBeVoidArray = MethodRelated + 366; int NativeMethodsCannotBeStrictfp = MethodRelated + 367; int DuplicateModifierForArgument = MethodRelated + 368; /** @deprecated - problem is no longer generated, UndefinedType is used instead */ int ArgumentTypeNotFound = MethodRelated + 369 + ProblemReasons.NotFound; // MethodRelated + 370 /** @deprecated - problem is no longer generated, NotVisibleType is used instead */ int ArgumentTypeNotVisible = MethodRelated + 369 + ProblemReasons.NotVisible; // MethodRelated + 371 /** @deprecated - problem is no longer generated, use AmbiguousType is used instead */ int ArgumentTypeAmbiguous = MethodRelated + 369 + ProblemReasons.Ambiguous; // MethodRelated + 372 /** @deprecated - problem is no longer generated, use InternalTypeNameProvided is used instead */ int ArgumentTypeInternalNameProvided = MethodRelated + 369 + ProblemReasons.InternalNameProvided; // MethodRelated + 373 /** @deprecated - problem is no longer generated, use InheritedTypeHidesEnclosingName is used instead */ int ArgumentTypeInheritedNameHidesEnclosingName = MethodRelated + 369 + ProblemReasons.InheritedNameHidesEnclosingName; // MethodRelated + 374 /** @deprecated - problem is no longer generated, UndefinedType is used instead */ int ExceptionTypeNotFound = MethodRelated + 374 + ProblemReasons.NotFound; // MethodRelated + 375 /** @deprecated - problem is no longer generated, NotVisibleType is used instead */ int ExceptionTypeNotVisible = MethodRelated + 374 + ProblemReasons.NotVisible; // MethodRelated + 376 /** @deprecated - problem is no longer generated, use AmbiguousType is used instead */ int ExceptionTypeAmbiguous = MethodRelated + 374 + ProblemReasons.Ambiguous; // MethodRelated + 377 /** @deprecated - problem is no longer generated, use InternalTypeNameProvided is used instead */ int ExceptionTypeInternalNameProvided = MethodRelated + 374 + ProblemReasons.InternalNameProvided; // MethodRelated + 378 /** @deprecated - problem is no longer generated, use InheritedTypeHidesEnclosingName is used instead */ int ExceptionTypeInheritedNameHidesEnclosingName = MethodRelated + 374 + ProblemReasons.InheritedNameHidesEnclosingName; // MethodRelated + 379 /** @deprecated - problem is no longer generated, UndefinedType is used instead */ int ReturnTypeNotFound = MethodRelated + 379 + ProblemReasons.NotFound; // MethodRelated + 380 /** @deprecated - problem is no longer generated, NotVisibleType is used instead */ int ReturnTypeNotVisible = MethodRelated + 379 + ProblemReasons.NotVisible; // MethodRelated + 381 /** @deprecated - problem is no longer generated, use AmbiguousType is used instead */ int ReturnTypeAmbiguous = MethodRelated + 379 + ProblemReasons.Ambiguous; // MethodRelated + 382 /** @deprecated - problem is no longer generated, use InternalTypeNameProvided is used instead */ int ReturnTypeInternalNameProvided = MethodRelated + 379 + ProblemReasons.InternalNameProvided; // MethodRelated + 383 /** @deprecated - problem is no longer generated, use InheritedTypeHidesEnclosingName is used instead */ int ReturnTypeInheritedNameHidesEnclosingName = MethodRelated + 379 + ProblemReasons.InheritedNameHidesEnclosingName; // MethodRelated + 384 // import related problems int ConflictingImport = ImportRelated + 385; int DuplicateImport = ImportRelated + 386; int CannotImportPackage = ImportRelated + 387; int UnusedImport = ImportRelated + 388; int ImportNotFound = ImportRelated + 389 + ProblemReasons.NotFound; // ImportRelated + 390 /** @deprecated - problem is no longer generated, NotVisibleType is used instead */ int ImportNotVisible = ImportRelated + 389 + ProblemReasons.NotVisible; // ImportRelated + 391 /** @deprecated - problem is no longer generated, use AmbiguousType is used instead */ int ImportAmbiguous = ImportRelated + 389 + ProblemReasons.Ambiguous; // ImportRelated + 392 /** @deprecated - problem is no longer generated, use InternalTypeNameProvided is used instead */ int ImportInternalNameProvided = ImportRelated + 389 + ProblemReasons.InternalNameProvided; // ImportRelated + 393 /** @deprecated - problem is no longer generated, use InheritedTypeHidesEnclosingName is used instead */ int ImportInheritedNameHidesEnclosingName = ImportRelated + 389 + ProblemReasons.InheritedNameHidesEnclosingName; // ImportRelated + 394 // local variable related problems int DuplicateModifierForVariable = MethodRelated + 395; int IllegalModifierForVariable = MethodRelated + 396; // method verifier problems int AbstractMethodMustBeImplemented = MethodRelated + 400; int FinalMethodCannotBeOverridden = MethodRelated + 401; int IncompatibleExceptionInThrowsClause = MethodRelated + 402; int IncompatibleExceptionInInheritedMethodThrowsClause = MethodRelated + 403; int IncompatibleReturnType = MethodRelated + 404; int InheritedMethodReducesVisibility = MethodRelated + 405; int CannotOverrideAStaticMethodWithAnInstanceMethod = MethodRelated + 406; int CannotHideAnInstanceMethodWithAStaticMethod = MethodRelated + 407; int StaticInheritedMethodConflicts = MethodRelated + 408; int MethodReducesVisibility = MethodRelated + 409; int OverridingNonVisibleMethod = MethodRelated + 410; int AbstractMethodCannotBeOverridden = MethodRelated + 411; int OverridingDeprecatedMethod = MethodRelated + 412; /** @since 2.1 */ int IncompatibleReturnTypeForNonInheritedInterfaceMethod = MethodRelated + 413; /** @since 2.1 */ int IncompatibleExceptionInThrowsClauseForNonInheritedInterfaceMethod = MethodRelated + 414; // code snippet support int CodeSnippetMissingClass = Internal + 420; int CodeSnippetMissingMethod = Internal + 421; int NonExternalizedStringLiteral = Internal + 261; int CannotUseSuperInCodeSnippet = Internal + 422; //constant pool int TooManyConstantsInConstantPool = Internal + 430; /** @since 2.1 */ int TooManyBytesForStringConstant = Internal + 431; // static constraints /** @since 2.1 */ int TooManyFields = Internal + 432; /** @since 2.1 */ int TooManyMethods = Internal + 433; // 1.4 features // assertion warning int UseAssertAsAnIdentifier = Internal + 440; // 1.5 features int UseEnumAsAnIdentifier = Internal + 441; // detected task /** @since 2.1 */ int Task = Internal + 450; // block /** @since 3.0 */ int UndocumentedEmptyBlock = Internal + 460; /* * Javadoc comments */ /** @since 3.0 */ int JavadocUnexpectedTag = Javadoc + Internal + 470; /** @since 3.0 */ int JavadocMissingParamTag = Javadoc + Internal + 471; /** @since 3.0 */ int JavadocMissingParamName = Javadoc + Internal + 472; /** @since 3.0 */ int JavadocDuplicateParamName = Javadoc + Internal + 473; /** @since 3.0 */ int JavadocInvalidParamName = Javadoc + Internal + 474; /** @since 3.0 */ int JavadocMissingReturnTag = Javadoc + Internal + 475; /** @since 3.0 */ int JavadocDuplicateReturnTag = Javadoc + Internal + 476; /** @since 3.0 */ int JavadocMissingThrowsTag = Javadoc + Internal + 477; /** @since 3.0 */ int JavadocMissingThrowsClassName = Javadoc + Internal + 478; /** @since 3.0 */ int JavadocInvalidThrowsClass = Javadoc + Internal + 479; /** @since 3.0 */ int JavadocDuplicateThrowsClassName = Javadoc + Internal + 480; /** @since 3.0 */ int JavadocInvalidThrowsClassName = Javadoc + Internal + 481; /** @since 3.0 */ int JavadocMissingReference = Javadoc + Internal + 482; /** @since 3.0 */ int JavadocInvalidReference = Javadoc + Internal + 483; /** @since 3.0 */ int JavadocInvalidSeeHref = Javadoc + Internal + 484; /** @since 3.0 */ int JavadocInvalidSeeArgs = Javadoc + Internal + 485; /** @since 3.0 */ int JavadocMissing = Javadoc + Internal + 486; /** @since 3.0 */ int JavadocInvalidTag = Javadoc + Internal + 487; /* * ID for field errors in Javadoc */ /** @since 3.0 */ int JavadocUndefinedField = Javadoc + Internal + 488; /** @since 3.0 */ int JavadocNotVisibleField = Javadoc + Internal + 489; /** @since 3.0 */ int JavadocAmbiguousField = Javadoc + Internal + 490; /** @since 3.0 */ int JavadocUsingDeprecatedField = Javadoc + Internal + 491; /* * IDs for constructor errors in Javadoc */ /** @since 3.0 */ int JavadocUndefinedConstructor = Javadoc + Internal + 492; /** @since 3.0 */ int JavadocNotVisibleConstructor = Javadoc + Internal + 493; /** @since 3.0 */ int JavadocAmbiguousConstructor = Javadoc + Internal + 494; /** @since 3.0 */ int JavadocUsingDeprecatedConstructor = Javadoc + Internal + 495; /* * IDs for method errors in Javadoc */ /** @since 3.0 */ int JavadocUndefinedMethod = Javadoc + Internal + 496; /** @since 3.0 */ int JavadocNotVisibleMethod = Javadoc + Internal + 497; /** @since 3.0 */ int JavadocAmbiguousMethod = Javadoc + Internal + 498; /** @since 3.0 */ int JavadocUsingDeprecatedMethod = Javadoc + Internal + 499; /** @since 3.0 */ int JavadocNoMessageSendOnBaseType = Javadoc + Internal + 500; /** @since 3.0 */ int JavadocParameterMismatch = Javadoc + Internal + 501; /** @since 3.0 */ int JavadocNoMessageSendOnArrayType = Javadoc + Internal + 502; /* * IDs for type errors in Javadoc */ /** @since 3.0 */ int JavadocUndefinedType = Javadoc + Internal + 503; /** @since 3.0 */ int JavadocNotVisibleType = Javadoc + Internal + 504; /** @since 3.0 */ int JavadocAmbiguousType = Javadoc + Internal + 505; /** @since 3.0 */ int JavadocUsingDeprecatedType = Javadoc + Internal + 506; /** @since 3.0 */ int JavadocInternalTypeNameProvided = Javadoc + Internal + 507; /** @since 3.0 */ int JavadocInheritedMethodHidesEnclosingName = Javadoc + Internal + 508; /** @since 3.0 */ int JavadocInheritedFieldHidesEnclosingName = Javadoc + Internal + 509; /** @since 3.0 */ int JavadocInheritedNameHidesEnclosingTypeName = Javadoc + Internal + 510; /** @since 3.0 */ int JavadocAmbiguousMethodReference = Javadoc + Internal + 511; /** @since 3.0 */ int JavadocUnterminatedInlineTag = Javadoc + Internal + 512; /** @since 3.0 */ int JavadocMissingHashCharacter = Javadoc + Internal + 513; /** @since 3.0 */ int JavadocMalformedSeeReference = Javadoc + Internal + 514; /** @since 3.0 */ int JavadocEmptyReturnTag = Javadoc + Internal + 515; /** @since 3.1 */ int JavadocInvalidValueReference = Javadoc + Internal + 516; /** @since 3.1 */ int JavadocUnexpectedText = Javadoc + Internal + 517; /** @since 3.0 */ int JavadocMessagePrefix = Internal + 519; /** * Generics */ /** @since 3.1 */ int DuplicateTypeVariable = Internal + 520; /** @since 3.1 */ int IllegalTypeVariableSuperReference = Internal + 521; /** @since 3.1 */ int TypeVariableReferenceFromStaticContext = Internal + 522; /** @since 3.1 */ int ObjectCannotBeGeneric = Internal + 523; /** @since 3.1 */ int NonGenericType = TypeRelated + 524; /** @since 3.1 */ int IncorrectArityForParameterizedType = TypeRelated + 525; /** @since 3.1 */ int TypeArgumentMismatch = TypeRelated + 526; /** @since 3.1 */ int DuplicateMethodErasure = TypeRelated + 527; /** @since 3.1 */ int ReferenceToForwardTypeVariable = TypeRelated + 528; /** @since 3.1 */ int BoundsMustBeAnInterface = TypeRelated + 529; /** @since 3.1 */ int UnsafeRawConstructorInvocation = TypeRelated + 530; /** @since 3.1 */ int UnsafeRawMethodInvocation = TypeRelated + 531; /** @since 3.1 */ int UnsafeRawConversion = TypeRelated + 532; /** @since 3.1 */ int InvalidTypeVariableExceptionType = TypeRelated + 533; /** @since 3.1 */ int InvalidParameterizedExceptionType = TypeRelated + 534; /** @since 3.1 */ int IllegalGenericArray = TypeRelated + 535; /** @since 3.1 */ int UnsafeRawFieldAssignment = TypeRelated + 536; /** @since 3.1 */ int FinalBoundForTypeVariable = TypeRelated + 537; /** @since 3.1 */ int UndefinedTypeVariable = Internal + 538; /** @since 3.1 */ int SuperInterfacesCollide = TypeRelated + 539; /** @since 3.1 */ int WildcardConstructorInvocation = TypeRelated + 540; /** @since 3.1 */ int WildcardMethodInvocation = TypeRelated + 541; /** @since 3.1 */ int WildcardFieldAssignment = TypeRelated + 542; /** @since 3.1 */ int GenericMethodTypeArgumentMismatch = TypeRelated + 543; /** @since 3.1 */ int GenericConstructorTypeArgumentMismatch = TypeRelated + 544; /** @since 3.1 */ int UnsafeGenericCast = TypeRelated + 545; /** @since 3.1 */ int IllegalInstanceofParameterizedType = Internal + 546; /** @since 3.1 */ int IllegalInstanceofTypeParameter = Internal + 547; /** @since 3.1 */ int NonGenericMethod = TypeRelated + 548; /** @since 3.1 */ int IncorrectArityForParameterizedMethod = TypeRelated + 549; /** @since 3.1 */ int ParameterizedMethodArgumentTypeMismatch = TypeRelated + 550; /** @since 3.1 */ int NonGenericConstructor = TypeRelated + 551; /** @since 3.1 */ int IncorrectArityForParameterizedConstructor = TypeRelated + 552; /** @since 3.1 */ int ParameterizedConstructorArgumentTypeMismatch = TypeRelated + 553; /** @since 3.1 */ int TypeArgumentsForRawGenericMethod = TypeRelated + 554; /** @since 3.1 */ int TypeArgumentsForRawGenericConstructor = TypeRelated + 555; /** @since 3.1 */ int SuperTypeUsingWildcard = TypeRelated + 556; /** @since 3.1 */ int GenericTypeCannotExtendThrowable = TypeRelated + 557; /** @since 3.1 */ int IllegalClassLiteralForTypeVariable = TypeRelated + 558; /** @since 3.1 */ int UnsafeReturnTypeOverride = MethodRelated + 559; /** @since 3.1 */ int MethodNameClash = MethodRelated + 560; /** @since 3.1 */ int RawMemberTypeCannotBeParameterized = TypeRelated + 561; /** @since 3.1 */ int MissingArgumentsForParameterizedMemberType = TypeRelated + 562; /** @since 3.1 */ int StaticMemberOfParameterizedType = TypeRelated + 563; /** * Foreach */ /** @since 3.1 */ int IncompatibleTypesInForeach = TypeRelated + 580; /** @since 3.1 */ int InvalidTypeForCollection = Internal + 581; /** * 1.5 Syntax errors (when source level < 1.5) */ /** @since 3.1 */ int InvalidUsageOfTypeParameters = Syntax + Internal + 590; /** @since 3.1 */ int InvalidUsageOfStaticImports = Syntax + Internal + 591; /** @since 3.1 */ int InvalidUsageOfForeachStatements = Syntax + Internal + 592; /** @since 3.1 */ int InvalidUsageOfTypeArguments = Syntax + Internal + 593; /** @since 3.1 */ int InvalidUsageOfEnumDeclarations = Syntax + Internal + 594; /** @since 3.1 */ int InvalidUsageOfVarargs = Syntax + Internal + 595; /** @since 3.1 */ int InvalidUsageOfAnnotations = Syntax + Internal + 596; /** @since 3.1 */ int InvalidUsageOfAnnotationDeclarations = Syntax + Internal + 597; /** * Annotation */ /** @since 3.0 */ int AnnotationButConstructorName = MethodRelated + 600; /** @since 3.0 */ int IllegalExtendedDimensions = MethodRelated + 601; /** @since 3.0 */ int InvalidFileNameForPackageAnnotations = Syntax + Internal + 602; /** * Corrupted binaries */ int CorruptedSignature = Internal + 700; }