# python3
# Copyright (C) 2019 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

"""Warning patterns for Java compiler tools."""

# pylint:disable=relative-beyond-top-level
from .cpp_warn_patterns import compile_patterns
# pylint:disable=g-importing-member
from .severity import Severity


def java_warn(severity, description, pattern_list):
  return {
      'category': 'Java',
      'severity': severity,
      'description': 'Java: ' + description,
      'patterns': pattern_list
  }


def java_high(description, pattern_list):
  return java_warn(Severity.HIGH, description, pattern_list)


def java_medium(description, pattern_list):
  return java_warn(Severity.MEDIUM, description, pattern_list)


def java_medium_type(name):
  return java_medium(name, [r'.*\.java:.*: warning: .+ \[' + name + r'\]$'])


def java_low(description, pattern_list):
  return java_warn(Severity.LOW, description, pattern_list)


warn_patterns = [
    # pylint:disable=line-too-long,g-inconsistent-quotes
    # Warnings from Javac
    java_medium('Use of deprecated',
                [r'.*: warning: \[deprecation\] .+',
                 r'.*: warning: \[removal\] .+ has been deprecated and marked for removal$']),
    java_medium('Unchecked conversion',
                [r'.*: warning: \[unchecked\] .+']),
    # Warnings generated by Error Prone
    java_medium('Non-ascii characters used, but ascii encoding specified',
                [r".*: warning: unmappable character for encoding ascii"]),
    java_medium('Non-varargs call of varargs method with inexact argument type for last parameter',
                [r".*: warning: non-varargs call of varargs method with inexact argument type for last parameter"]),
    java_medium('Unchecked method invocation',
                [r".*: warning: \[unchecked\] unchecked method invocation: .+ in class .+"]),
    java_medium('Unchecked conversion',
                [r".*: warning: \[unchecked\] unchecked conversion"]),
    java_medium('_ used as an identifier',
                [r".*: warning: '_' used as an identifier"]),
    java_medium('hidden superclass',
                [r".*: warning: .* stripped of .* superclass .* \[HiddenSuperclass\]"]),
    java_high('Use of internal proprietary API',
              [r".*: warning: .* is internal proprietary API and may be removed"]),
    java_low('Use parameter comments to document ambiguous literals',
             [r".*: warning: \[BooleanParameter\] .+"]),
    java_low('This class\'s name looks like a Type Parameter.',
             [r".*: warning: \[ClassNamedLikeTypeParameter\] .+"]),
    java_low('Field name is CONSTANT_CASE, but field is not static and final',
             [r".*: warning: \[ConstantField\] .+"]),
    java_low('@Multibinds is a more efficient and declarative mechanism for ensuring that a set multibinding is present in the graph.',
             [r".*: warning: \[EmptySetMultibindingContributions\] .+"]),
    java_low('Prefer assertThrows to ExpectedException',
             [r".*: warning: \[ExpectedExceptionRefactoring\] .+"]),
    java_low('This field is only assigned during initialization; consider making it final',
             [r".*: warning: \[FieldCanBeFinal\] .+"]),
    java_low('Fields that can be null should be annotated @Nullable',
             [r".*: warning: \[FieldMissingNullable\] .+"]),
    java_low('Refactors uses of the JSR 305 @Immutable to Error Prone\'s annotation',
             [r".*: warning: \[ImmutableRefactoring\] .+"]),
    java_low(u'Use Java\'s utility functional interfaces instead of Function\u003cA, B> for primitive types.',
             [r".*: warning: \[LambdaFunctionalInterface\] .+"]),
    java_low('A private method that does not reference the enclosing instance can be static',
             [r".*: warning: \[MethodCanBeStatic\] .+"]),
    java_low('C-style array declarations should not be used',
             [r".*: warning: \[MixedArrayDimensions\] .+"]),
    java_low('Variable declarations should declare only one variable',
             [r".*: warning: \[MultiVariableDeclaration\] .+"]),
    java_low('Source files should not contain multiple top-level class declarations',
             [r".*: warning: \[MultipleTopLevelClasses\] .+"]),
    java_low('Avoid having multiple unary operators acting on the same variable in a method call',
             [r".*: warning: \[MultipleUnaryOperatorsInMethodCall\] .+"]),
    java_low('OnNameExpected naming style',
             [r".*\.java:.*: warning: .+ \[OnNameExpected\]$"]),
    java_low('Package names should match the directory they are declared in',
             [r".*: warning: \[PackageLocation\] .+"]),
    java_low('Non-standard parameter comment; prefer `/* paramName= */ arg`',
             [r".*: warning: \[ParameterComment\] .+"]),
    java_low('Method parameters that aren\'t checked for null shouldn\'t be annotated @Nullable',
             [r".*: warning: \[ParameterNotNullable\] .+"]),
    java_low('Add a private constructor to modules that will not be instantiated by Dagger.',
             [r".*: warning: \[PrivateConstructorForNoninstantiableModule\] .+"]),
    java_low('Utility classes (only static members) are not designed to be instantiated and should be made noninstantiable with a default constructor.',
             [r".*: warning: \[PrivateConstructorForUtilityClass\] .+"]),
    java_low('Unused imports',
             [r".*: warning: \[RemoveUnusedImports\] .+"]),
    java_low('Methods that can return null should be annotated @Nullable',
             [r".*: warning: \[ReturnMissingNullable\] .+"]),
    java_low('Scopes on modules have no function and will soon be an error.',
             [r".*: warning: \[ScopeOnModule\] .+"]),
    java_low('The default case of a switch should appear at the end of the last statement group',
             [r".*: warning: \[SwitchDefault\] .+"]),
    java_low('Prefer assertThrows to @Test(expected=...)',
             [r".*: warning: \[TestExceptionRefactoring\] .+"]),
    java_low('Unchecked exceptions do not need to be declared in the method signature.',
             [r".*: warning: \[ThrowsUncheckedException\] .+"]),
    java_low('Prefer assertThrows to try/fail',
             [r".*: warning: \[TryFailRefactoring\] .+"]),
    java_low('Type parameters must be a single letter with an optional numeric suffix, or an UpperCamelCase name followed by the letter \'T\'.',
             [r".*: warning: \[TypeParameterNaming\] .+"]),
    java_low('Constructors and methods with the same name should appear sequentially with no other code in between. Please re-order or re-name methods.',
             [r".*: warning: \[UngroupedOverloads\] .+"]),
    java_low('Unnecessary call to NullPointerTester#setDefault',
             [r".*: warning: \[UnnecessarySetDefault\] .+"]),
    java_low('Using static imports for types is unnecessary',
             [r".*: warning: \[UnnecessaryStaticImport\] .+"]),
    java_low('@Binds is a more efficient and declarative mechanism for delegating a binding.',
             [r".*: warning: \[UseBinds\] .+"]),
    java_low('Wildcard imports, static or otherwise, should not be used',
             [r".*: warning: \[WildcardImport\] .+"]),
    java_medium('AcronymName',
                [r".*\.java:.*: warning: .+ \[AcronymName\]$"]),
    java_medium('Method reference is ambiguous',
                [r".*: warning: \[AmbiguousMethodReference\] .+"]),
    java_medium('This method passes a pair of parameters through to String.format, but the enclosing method wasn\'t annotated @FormatMethod. Doing so gives compile-time rather than run-time protection against malformed format strings.',
                [r".*: warning: \[AnnotateFormatMethod\] .+"]),
    java_medium('Annotations should be positioned after Javadocs, but before modifiers..',
                [r".*: warning: \[AnnotationPosition\] .+"]),
    java_medium('Arguments are in the wrong order or could be commented for clarity.',
                [r".*: warning: \[ArgumentSelectionDefectChecker\] .+"]),
    java_medium('Arrays do not override equals() or hashCode, so comparisons will be done on reference equality only. If neither deduplication nor lookup are needed, consider using a List instead. Otherwise, use IdentityHashMap/Set, a Map from a library that handles object arrays, or an Iterable/List of pairs.',
                [r".*: warning: \[ArrayAsKeyOfSetOrMap\] .+"]),
    java_medium('Arguments are swapped in assertEquals-like call',
                [r".*: warning: \[AssertEqualsArgumentOrderChecker\] .+"]),
    java_medium('Assertions may be disabled at runtime and do not guarantee that execution will halt here; consider throwing an exception instead',
                [r".*: warning: \[AssertFalse\] .+"]),
    java_medium('The lambda passed to assertThrows should contain exactly one statement',
                [r".*: warning: \[AssertThrowsMultipleStatements\] .+"]),
    java_medium('This assertion throws an AssertionError if it fails, which will be caught by an enclosing try block.',
                [r".*: warning: \[AssertionFailureIgnored\] .+"]),
    java_medium('@AssistedInject and @Inject should not be used on different constructors in the same class.',
                [r".*: warning: \[AssistedInjectAndInjectOnConstructors\] .+"]),
    java_medium('Make toString(), hashCode() and equals() final in AutoValue classes, so it is clear to readers that AutoValue is not overriding them',
                [r".*: warning: \[AutoValueFinalMethods\] .+"]),
    java_medium('Classes that implement Annotation must override equals and hashCode. Consider using AutoAnnotation instead of implementing Annotation by hand.',
                [r".*: warning: \[BadAnnotationImplementation\] .+"]),
    java_medium('Possible sign flip from narrowing conversion',
                [r".*: warning: \[BadComparable\] .+"]),
    java_medium('Importing nested classes/static methods/static fields with commonly-used names can make code harder to read, because it may not be clear from the context exactly which type is being referred to. Qualifying the name with that of the containing class can make the code clearer.',
                [r".*: warning: \[BadImport\] .+"]),
    java_medium('instanceof used in a way that is equivalent to a null check.',
                [r".*: warning: \[BadInstanceof\] .+"]),
    java_medium('BigDecimal#equals has surprising behavior: it also compares scale.',
                [r".*: warning: \[BigDecimalEquals\] .+"]),
    java_medium('new BigDecimal(double) loses precision in this case.',
                [r".*: warning: \[BigDecimalLiteralDouble\] .+"]),
    java_medium('A call to Binder.clearCallingIdentity() should be followed by Binder.restoreCallingIdentity() in a finally block. Otherwise the wrong Binder identity may be used by subsequent code.',
                [r".*: warning: \[BinderIdentityRestoredDangerously\] .+"]),
    java_medium('This code declares a binding for a common value type without a Qualifier annotation.',
                [r".*: warning: \[BindingToUnqualifiedCommonType\] .+"]),
    java_medium('valueOf or autoboxing provides better time and space performance',
                [r".*: warning: \[BoxedPrimitiveConstructor\] .+"]),
    java_medium('ByteBuffer.array() shouldn\'t be called unless ByteBuffer.arrayOffset() is used or if the ByteBuffer was initialized using ByteBuffer.wrap() or ByteBuffer.allocate().',
                [r".*: warning: \[ByteBufferBackingArray\] .+"]),
    java_medium('Mockito cannot mock final classes',
                [r".*: warning: \[CannotMockFinalClass\] .+"]),
    java_medium('Duration can be expressed more clearly with different units',
                [r".*: warning: \[CanonicalDuration\] .+"]),
    java_medium('Logging or rethrowing exceptions should usually be preferred to catching and calling printStackTrace',
                [r".*: warning: \[CatchAndPrintStackTrace\] .+"]),
    java_medium('Ignoring exceptions and calling fail() is unnecessary, and makes test output less useful',
                [r".*: warning: \[CatchFail\] .+"]),
    java_medium('Inner class is non-static but does not reference enclosing class',
                [r".*: warning: \[ClassCanBeStatic\] .+"]),
    java_medium('Class.newInstance() bypasses exception checking; prefer getDeclaredConstructor().newInstance()',
                [r".*: warning: \[ClassNewInstance\] .+"]),
    java_medium('Providing Closeable resources makes their lifecycle unclear',
                [r".*: warning: \[CloseableProvides\] .+"]),
    java_medium('The type of the array parameter of Collection.toArray needs to be compatible with the array type',
                [r".*: warning: \[CollectionToArraySafeParameter\] .+"]),
    java_medium('Collector.of() should not use state',
                [r".*: warning: \[CollectorShouldNotUseState\] .+"]),
    java_medium('Class should not implement both `Comparable` and `Comparator`',
                [r".*: warning: \[ComparableAndComparator\] .+"]),
    java_medium('Constructors should not invoke overridable methods.',
                [r".*: warning: \[ConstructorInvokesOverridable\] .+"]),
    java_medium('Constructors should not pass the \'this\' reference out in method invocations, since the object may not be fully constructed.',
                [r".*: warning: \[ConstructorLeaksThis\] .+"]),
    java_medium('DateFormat is not thread-safe, and should not be used as a constant field.',
                [r".*: warning: \[DateFormatConstant\] .+"]),
    java_medium('Implicit use of the platform default charset, which can result in differing behaviour between JVM executions or incorrect behavior if the encoding of the data source doesn\'t match expectations.',
                [r".*: warning: \[DefaultCharset\] .+"]),
    java_medium('Avoid deprecated Thread methods; read the method\'s javadoc for details.',
                [r".*: warning: \[DeprecatedThreadMethods\] .+"]),
    java_medium('Prefer collection factory methods or builders to the double-brace initialization pattern.',
                [r".*: warning: \[DoubleBraceInitialization\] .+"]),
    java_medium('Double-checked locking on non-volatile fields is unsafe',
                [r".*: warning: \[DoubleCheckedLocking\] .+"]),
    java_medium('Empty top-level type declaration',
                [r".*: warning: \[EmptyTopLevelDeclaration\] .+"]),
    java_medium('equals() implementation may throw NullPointerException when given null',
                [r".*: warning: \[EqualsBrokenForNull\] .+"]),
    java_medium('Overriding Object#equals in a non-final class by using getClass rather than instanceof breaks substitutability of subclasses.',
                [r".*: warning: \[EqualsGetClass\] .+"]),
    java_medium('Classes that override equals should also override hashCode.',
                [r".*: warning: \[EqualsHashCode\] .+"]),
    java_medium('An equality test between objects with incompatible types always returns false',
                [r".*: warning: \[EqualsIncompatibleType\] .+"]),
    java_medium('The contract of #equals states that it should return false for incompatible types, while this implementation may throw ClassCastException.',
                [r".*: warning: \[EqualsUnsafeCast\] .+"]),
    java_medium('Implementing #equals by just comparing hashCodes is fragile. Hashes collide frequently, and this will lead to false positives in #equals.',
                [r".*: warning: \[EqualsUsingHashCode\] .+"]),
    java_medium('Calls to ExpectedException#expect should always be followed by exactly one statement.',
                [r".*: warning: \[ExpectedExceptionChecker\] .+"]),
    java_medium('When only using JUnit Assert\'s static methods, you should import statically instead of extending.',
                [r".*: warning: \[ExtendingJUnitAssert\] .+"]),
    java_medium('Switch case may fall through',
                [r".*: warning: \[FallThrough\] .+"]),
    java_medium('If you return or throw from a finally, then values returned or thrown from the try-catch block will be ignored. Consider using try-with-resources instead.',
                [r".*: warning: \[Finally\] .+"]),
    java_medium('Use parentheses to make the precedence explicit',
                [r".*: warning: \[FloatCast\] .+"]),
    java_medium('This fuzzy equality check is using a tolerance less than the gap to the next number. You may want a less restrictive tolerance, or to assert equality.',
                [r".*: warning: \[FloatingPointAssertionWithinEpsilon\] .+"]),
    java_medium('Floating point literal loses precision',
                [r".*: warning: \[FloatingPointLiteralPrecision\] .+"]),
    java_medium('Classes extending PreferenceActivity must implement isValidFragment such that it does not unconditionally return true to prevent vulnerability to fragment injection attacks.',
                [r".*: warning: \[FragmentInjection\] .+"]),
    java_medium('Subclasses of Fragment must be instantiable via Class#newInstance(): the class must be public, static and have a public nullary constructor',
                [r".*: warning: \[FragmentNotInstantiable\] .+"]),
    java_medium('Overloads will be ambiguous when passing lambda arguments',
                [r".*: warning: \[FunctionalInterfaceClash\] .+"]),
    java_medium('Return value of methods returning Future must be checked. Ignoring returned Futures suppresses exceptions thrown from the code that completes the Future.',
                [r".*: warning: \[FutureReturnValueIgnored\] .+"]),
    java_medium('Calling getClass() on an enum may return a subclass of the enum type',
                [r".*: warning: \[GetClassOnEnum\] .+"]),
    java_medium('Hardcoded reference to /sdcard',
                [r".*: warning: \[HardCodedSdCardPath\] .+"]),
    java_medium('Hiding fields of superclasses may cause confusion and errors',
                [r".*: warning: \[HidingField\] .+"]),
    java_medium('Annotations should always be immutable',
                [r".*: warning: \[ImmutableAnnotationChecker\] .+"]),
    java_medium('Enums should always be immutable',
                [r".*: warning: \[ImmutableEnumChecker\] .+"]),
    java_medium('This annotation has incompatible modifiers as specified by its @IncompatibleModifiers annotation',
                [r".*: warning: \[IncompatibleModifiers\] .+"]),
    java_medium('It is confusing to have a field and a parameter under the same scope that differ only in capitalization.',
                [r".*: warning: \[InconsistentCapitalization\] .+"]),
    java_medium('Including fields in hashCode which are not compared in equals violates the contract of hashCode.',
                [r".*: warning: \[InconsistentHashCode\] .+"]),
    java_medium('The ordering of parameters in overloaded methods should be as consistent as possible (when viewed from left to right)',
                [r".*: warning: \[InconsistentOverloads\] .+"]),
    java_medium('This for loop increments the same variable in the header and in the body',
                [r".*: warning: \[IncrementInForLoopAndHeader\] .+"]),
    java_medium('Constructors on abstract classes are never directly @Injected, only the constructors of their subclasses can be @Inject\'ed.',
                [r".*: warning: \[InjectOnConstructorOfAbstractClass\] .+"]),
    java_medium('Please also override int read(byte[], int, int), otherwise multi-byte reads from this input stream are likely to be slow.',
                [r".*: warning: \[InputStreamSlowMultibyteRead\] .+"]),
    java_medium('Casting inside an if block should be plausibly consistent with the instanceof type',
                [r".*: warning: \[InstanceOfAndCastMatchWrongType\] .+"]),
    java_medium('Expression of type int may overflow before being assigned to a long',
                [r".*: warning: \[IntLongMath\] .+"]),
    java_medium('IntentBuilderName',
                [r".*\.java:.*: warning: .+ \[IntentBuilderName\]$"]),
    java_medium('This @param tag doesn\'t refer to a parameter of the method.',
                [r".*: warning: \[InvalidParam\] .+"]),
    java_medium('This tag is invalid.',
                [r".*: warning: \[InvalidTag\] .+"]),
    java_medium('The documented method doesn\'t actually throw this checked exception.',
                [r".*: warning: \[InvalidThrows\] .+"]),
    java_medium('Class should not implement both `Iterable` and `Iterator`',
                [r".*: warning: \[IterableAndIterator\] .+"]),
    java_medium('Floating-point comparison without error tolerance',
                [r".*: warning: \[JUnit3FloatingPointComparisonWithoutDelta\] .+"]),
    java_medium('Some JUnit4 construct cannot be used in a JUnit3 context. Convert your class to JUnit4 style to use them.',
                [r".*: warning: \[JUnit4ClassUsedInJUnit3\] .+"]),
    java_medium('Test class inherits from JUnit 3\'s TestCase but has JUnit 4 @Test annotations.',
                [r".*: warning: \[JUnitAmbiguousTestClass\] .+"]),
    java_medium('Never reuse class names from java.lang',
                [r".*: warning: \[JavaLangClash\] .+"]),
    java_medium('Suggests alternatives to obsolete JDK classes.',
                [r".*: warning: \[JdkObsolete\] .+"]),
    java_medium('Calls to Lock#lock should be immediately followed by a try block which releases the lock.',
                [r".*: warning: \[LockNotBeforeTry\] .+"]),
    java_medium('Assignment where a boolean expression was expected; use == if this assignment wasn\'t expected or add parentheses for clarity.',
                [r".*: warning: \[LogicalAssignment\] .+"]),
    java_medium('Math.abs does not always give a positive result. Please consider other methods for positive random numbers.',
                [r".*: warning: \[MathAbsoluteRandom\] .+"]),
    java_medium('Switches on enum types should either handle all values, or have a default case.',
                [r".*: warning: \[MissingCasesInEnumSwitch\] .+"]),
    java_medium('The Google Java Style Guide requires that each switch statement includes a default statement group, even if it contains no code. (This requirement is lifted for any switch statement that covers all values of an enum.)',
                [r".*: warning: \[MissingDefault\] .+"]),
    java_medium('Not calling fail() when expecting an exception masks bugs',
                [r".*: warning: \[MissingFail\] .+"]),
    java_medium('method overrides method in supertype; expected @Override',
                [r".*: warning: \[MissingOverride\] .+"]),
    java_medium('A collection or proto builder was created, but its values were never accessed.',
                [r".*: warning: \[ModifiedButNotUsed\] .+"]),
    java_medium('Modifying a collection while iterating over it in a loop may cause a ConcurrentModificationException to be thrown.',
                [r".*: warning: \[ModifyCollectionInEnhancedForLoop\] .+"]),
    java_medium('Multiple calls to either parallel or sequential are unnecessary and cause confusion.',
                [r".*: warning: \[MultipleParallelOrSequentialCalls\] .+"]),
    java_medium('Constant field declarations should use the immutable type (such as ImmutableList) instead of the general collection interface type (such as List)',
                [r".*: warning: \[MutableConstantField\] .+"]),
    java_medium('Method return type should use the immutable type (such as ImmutableList) instead of the general collection interface type (such as List)',
                [r".*: warning: \[MutableMethodReturnType\] .+"]),
    java_medium('Compound assignments may hide dangerous casts',
                [r".*: warning: \[NarrowingCompoundAssignment\] .+"]),
    java_medium('Nested instanceOf conditions of disjoint types create blocks of code that never execute',
                [r".*: warning: \[NestedInstanceOfConditions\] .+"]),
    java_medium('Instead of returning a functional type, return the actual type that the returned function would return and use lambdas at use site.',
                [r".*: warning: \[NoFunctionalReturnType\] .+"]),
    java_medium('This update of a volatile variable is non-atomic',
                [r".*: warning: \[NonAtomicVolatileUpdate\] .+"]),
    java_medium('Static import of member uses non-canonical name',
                [r".*: warning: \[NonCanonicalStaticMemberImport\] .+"]),
    java_medium('equals method doesn\'t override Object.equals',
                [r".*: warning: \[NonOverridingEquals\] .+"]),
    java_medium('Not closeable',
                [r".*\.java:.*: warning: .+ \[NotCloseable\]$"]),
    java_medium('Constructors should not be annotated with @Nullable since they cannot return null',
                [r".*: warning: \[NullableConstructor\] .+"]),
    java_medium('Dereference of possibly-null value',
                [r".*: warning: \[NullableDereference\] .+"]),
    java_medium('@Nullable should not be used for primitive types since they cannot be null',
                [r".*: warning: \[NullablePrimitive\] .+"]),
    java_medium('void-returning methods should not be annotated with @Nullable, since they cannot return null',
                [r".*: warning: \[NullableVoid\] .+"]),
    java_medium('Calling toString on Objects that don\'t override toString() doesn\'t provide useful information',
                [r".*: warning: \[ObjectToString\] .+"]),
    java_medium('Objects.hashCode(Object o) should not be passed a primitive value',
                [r".*: warning: \[ObjectsHashCodePrimitive\] .+"]),
    java_medium('Use grouping parenthesis to make the operator precedence explicit',
                [r".*: warning: \[OperatorPrecedence\] .+"]),
    java_medium('One should not call optional.get() inside an if statement that checks !optional.isPresent',
                [r".*: warning: \[OptionalNotPresent\] .+"]),
    java_medium('String literal contains format specifiers, but is not passed to a format method',
                [r".*: warning: \[OrphanedFormatString\] .+"]),
    java_medium('To return a custom message with a Throwable class, one should override getMessage() instead of toString() for Throwable.',
                [r".*: warning: \[OverrideThrowableToString\] .+"]),
    java_medium('Varargs doesn\'t agree for overridden method',
                [r".*: warning: \[Overrides\] .+"]),
    java_medium('This method is not annotated with @Inject, but it overrides a method that is annotated with @com.google.inject.Inject. Guice will inject this method, and it is recommended to annotate it explicitly.',
                [r".*: warning: \[OverridesGuiceInjectableMethod\] .+"]),
    java_medium('Detects `/* name= */`-style comments on actual parameters where the name doesn\'t match the formal parameter',
                [r".*: warning: \[ParameterName\] .+"]),
    java_medium('Preconditions only accepts the %s placeholder in error message strings',
                [r".*: warning: \[PreconditionsInvalidPlaceholder\] .+"]),
    java_medium('Passing a primitive array to a varargs method is usually wrong',
                [r".*: warning: \[PrimitiveArrayPassedToVarargsMethod\] .+"]),
    java_medium('A field on a protocol buffer was set twice in the same chained expression.',
                [r".*: warning: \[ProtoRedundantSet\] .+"]),
    java_medium('Protos should not be used as a key to a map, in a set, or in a contains method on a descendant of a collection. Protos have non deterministic ordering and proto equality is deep, which is a performance issue.',
                [r".*: warning: \[ProtosAsKeyOfSetOrMap\] .+"]),
    java_medium('BugChecker has incorrect ProvidesFix tag, please update',
                [r".*: warning: \[ProvidesFix\] .+"]),
    java_medium('Qualifiers/Scope annotations on @Inject methods don\'t have any effect. Move the qualifier annotation to the binding location.',
                [r".*: warning: \[QualifierOrScopeOnInjectMethod\] .+"]),
    java_medium('Injection frameworks currently don\'t understand Qualifiers in TYPE_PARAMETER or TYPE_USE contexts.',
                [r".*: warning: \[QualifierWithTypeUse\] .+"]),
    java_medium('reachabilityFence should always be called inside a finally block',
                [r".*: warning: \[ReachabilityFenceUsage\] .+"]),
    java_medium('Thrown exception is a subtype of another',
                [r".*: warning: \[RedundantThrows\] .+"]),
    java_medium('Comparison using reference equality instead of value equality',
                [r".*: warning: \[ReferenceEquality\] .+"]),
    java_medium('This annotation is missing required modifiers as specified by its @RequiredModifiers annotation',
                [r".*: warning: \[RequiredModifiers\] .+"]),
    java_medium('Void methods should not have a @return tag.',
                [r".*: warning: \[ReturnFromVoid\] .+"]),
    java_medium('SAM-compatible parameters should be last',
                [r".*\.java:.*: warning: .+ \[SamShouldBeLast\]$"]),
    java_medium(u'Prefer the short-circuiting boolean operators \u0026\u0026 and || to \u0026 and |.',
                [r".*: warning: \[ShortCircuitBoolean\] .+"]),
    java_medium('Writes to static fields should not be guarded by instance locks',
                [r".*: warning: \[StaticGuardedByInstance\] .+"]),
    java_medium('A static variable or method should be qualified with a class name, not expression',
                [r".*: warning: \[StaticQualifiedUsingExpression\] .+"]),
    java_medium('Streams that encapsulate a closeable resource should be closed using try-with-resources',
                [r".*: warning: \[StreamResourceLeak\] .+"]),
    java_medium('String comparison using reference equality instead of value equality',
                [r".*: warning: \[StringEquality\] .+"]),
    java_medium('String.split(String) has surprising behavior',
                [r".*: warning: \[StringSplitter\] .+"]),
    java_medium('SWIG generated code that can\'t call a C++ destructor will leak memory',
                [r".*: warning: \[SwigMemoryLeak\] .+"]),
    java_medium('Synchronizing on non-final fields is not safe: if the field is ever updated, different threads may end up locking on different objects.',
                [r".*: warning: \[SynchronizeOnNonFinalField\] .+"]),
    java_medium('Code that contains System.exit() is untestable.',
                [r".*: warning: \[SystemExitOutsideMain\] .+"]),
    java_medium('Using @Test(expected=...) is discouraged, since the test will pass if *any* statement in the test method throws the expected exception',
                [r".*: warning: \[TestExceptionChecker\] .+"]),
    java_medium('Thread.join needs to be surrounded by a loop until it succeeds, as in Uninterruptibles.joinUninterruptibly.',
                [r".*: warning: \[ThreadJoinLoop\] .+"]),
    java_medium('ThreadLocals should be stored in static fields',
                [r".*: warning: \[ThreadLocalUsage\] .+"]),
    java_medium('Relying on the thread scheduler is discouraged; see Effective Java Item 72 (2nd edition) / 84 (3rd edition).',
                [r".*: warning: \[ThreadPriorityCheck\] .+"]),
    java_medium('Three-letter time zone identifiers are deprecated, may be ambiguous, and might not do what you intend; the full IANA time zone ID should be used instead.',
                [r".*: warning: \[ThreeLetterTimeZoneID\] .+"]),
    java_medium('An implementation of Object.toString() should never return null.',
                [r".*: warning: \[ToStringReturnsNull\] .+"]),
    java_medium('The actual and expected values appear to be swapped, which results in poor assertion failure messages. The actual value should come first.',
                [r".*: warning: \[TruthAssertExpected\] .+"]),
    java_medium('Truth Library assert is called on a constant.',
                [r".*: warning: \[TruthConstantAsserts\] .+"]),
    java_medium('Argument is not compatible with the subject\'s type.',
                [r".*: warning: \[TruthIncompatibleType\] .+"]),
    java_medium('Type parameter declaration shadows another named type',
                [r".*: warning: \[TypeNameShadowing\] .+"]),
    java_medium('Type parameter declaration overrides another type parameter already declared',
                [r".*: warning: \[TypeParameterShadowing\] .+"]),
    java_medium('Declaring a type parameter that is only used in the return type is a misuse of generics: operations on the type parameter are unchecked, it hides unsafe casts at invocations of the method, and it interacts badly with method overload resolution.',
                [r".*: warning: \[TypeParameterUnusedInFormals\] .+"]),
    java_medium('Avoid hash-based containers of java.net.URL--the containers rely on equals() and hashCode(), which cause java.net.URL to make blocking internet connections.',
                [r".*: warning: \[URLEqualsHashCode\] .+"]),
    java_medium('Collection, Iterable, Multimap, and Queue do not have well-defined equals behavior',
                [r".*: warning: \[UndefinedEquals\] .+"]),
    java_medium('Switch handles all enum values: an explicit default case is unnecessary and defeats error checking for non-exhaustive switches.',
                [r".*: warning: \[UnnecessaryDefaultInEnumSwitch\] .+"]),
    java_medium('Unnecessary use of grouping parentheses',
                [r".*: warning: \[UnnecessaryParentheses\] .+"]),
    java_medium('Finalizer may run before native code finishes execution',
                [r".*: warning: \[UnsafeFinalization\] .+"]),
    java_medium('Prefer `asSubclass` instead of casting the result of `newInstance`, to detect classes of incorrect type before invoking their constructors.This way, if the class is of the incorrect type,it will throw an exception before invoking its constructor.',
                [r".*: warning: \[UnsafeReflectiveConstructionCast\] .+"]),
    java_medium('Unsynchronized method overrides a synchronized method.',
                [r".*: warning: \[UnsynchronizedOverridesSynchronized\] .+"]),
    java_medium('Unused.',
                [r".*: warning: \[Unused\] .+"]),
    java_medium('This catch block catches an exception and re-throws another, but swallows the caught exception rather than setting it as a cause. This can make debugging harder.',
                [r".*: warning: \[UnusedException\] .+"]),
    java_medium('Java assert is used in test. For testing purposes Assert.* matchers should be used.',
                [r".*: warning: \[UseCorrectAssertInTests\] .+"]),
    java_medium('UserHandle',
                [r".*\.java:.*: warning: .+ \[UserHandle\]$"]),
    java_medium('UserHandleName',
                [r".*\.java:.*: warning: .+ \[UserHandleName\]$"]),
    java_medium('Non-constant variable missing @Var annotation',
                [r".*: warning: \[Var\] .+"]),
    java_medium('variableName and type with the same name would refer to the static field instead of the class',
                [r".*: warning: \[VariableNameSameAsType\] .+"]),
    java_medium('Because of spurious wakeups, Object.wait() and Condition.await() must always be called in a loop',
                [r".*: warning: \[WaitNotInLoop\] .+"]),
    java_medium('A wakelock acquired with a timeout may be released by the system before calling `release`, even after checking `isHeld()`. If so, it will throw a RuntimeException. Please wrap in a try/catch block.',
                [r".*: warning: \[WakelockReleasedDangerously\] .+"]),
    java_medium_type('CallbackName'),
    java_medium_type('ExecutorRegistration'),
    java_medium_type('ListenerLast'),
    java_medium_type('MissingBuildMethod'),
    java_medium_type('NoByteOrShort'),
    java_medium_type('SetterReturnsThis'),
    java_medium_type('UseIcu'),
    java_high('AndroidInjection.inject() should always be invoked before calling super.lifecycleMethod()',
              [r".*: warning: \[AndroidInjectionBeforeSuper\] .+"]),
    java_high('Use of class, field, or method that is not compatible with legacy Android devices',
              [r".*: warning: \[AndroidJdkLibsChecker\] .+"]),
    java_high('Reference equality used to compare arrays',
              [r".*: warning: \[ArrayEquals\] .+"]),
    java_high('Arrays.fill(Object[], Object) called with incompatible types.',
              [r".*: warning: \[ArrayFillIncompatibleType\] .+"]),
    java_high('hashcode method on array does not hash array contents',
              [r".*: warning: \[ArrayHashCode\] .+"]),
    java_high('ArrayReturn',
              [r".*\.java:.*: warning: .+ \[ArrayReturn\]$"]),
    java_high('Calling toString on an array does not provide useful information',
              [r".*: warning: \[ArrayToString\] .+"]),
    java_high('Arrays.asList does not autobox primitive arrays, as one might expect.',
              [r".*: warning: \[ArraysAsListPrimitiveArray\] .+"]),
    java_high('@AssistedInject and @Inject cannot be used on the same constructor.',
              [r".*: warning: \[AssistedInjectAndInjectOnSameConstructor\] .+"]),
    java_high('AsyncCallable should not return a null Future, only a Future whose result is null.',
              [r".*: warning: \[AsyncCallableReturnsNull\] .+"]),
    java_high('AsyncFunction should not return a null Future, only a Future whose result is null.',
              [r".*: warning: \[AsyncFunctionReturnsNull\] .+"]),
    java_high('@AutoFactory and @Inject should not be used in the same type.',
              [r".*: warning: \[AutoFactoryAtInject\] .+"]),
    java_high('Arguments to AutoValue constructor are in the wrong order',
              [r".*: warning: \[AutoValueConstructorOrderChecker\] .+"]),
    java_high('Shift by an amount that is out of range',
              [r".*: warning: \[BadShiftAmount\] .+"]),
    java_high('Object serialized in Bundle may have been flattened to base type.',
              [r".*: warning: \[BundleDeserializationCast\] .+"]),
    java_high('The called constructor accepts a parameter with the same name and type as one of its caller\'s parameters, but its caller doesn\'t pass that parameter to it.  It\'s likely that it was intended to.',
              [r".*: warning: \[ChainingConstructorIgnoresParameter\] .+"]),
    java_high('Ignored return value of method that is annotated with @CheckReturnValue',
              [r".*: warning: \[CheckReturnValue\] .+"]),
    java_high('The source file name should match the name of the top-level class it contains',
              [r".*: warning: \[ClassName\] .+"]),
    java_high('Incompatible type as argument to Object-accepting Java collections method',
              [r".*: warning: \[CollectionIncompatibleType\] .+"]),
    java_high(u'Implementing \'Comparable\u003cT>\' where T is not compatible with the implementing class.',
              [r".*: warning: \[ComparableType\] .+"]),
    java_high('this == null is always false, this != null is always true',
              [r".*: warning: \[ComparingThisWithNull\] .+"]),
    java_high('This comparison method violates the contract',
              [r".*: warning: \[ComparisonContractViolated\] .+"]),
    java_high('Comparison to value that is out of range for the compared type',
              [r".*: warning: \[ComparisonOutOfRange\] .+"]),
    java_high('@CompatibleWith\'s value is not a type argument.',
              [r".*: warning: \[CompatibleWithAnnotationMisuse\] .+"]),
    java_high('Non-compile-time constant expression passed to parameter with @CompileTimeConstant type annotation.',
              [r".*: warning: \[CompileTimeConstant\] .+"]),
    java_high('Non-trivial compile time constant boolean expressions shouldn\'t be used.',
              [r".*: warning: \[ComplexBooleanConstant\] .+"]),
    java_high('A conditional expression with numeric operands of differing types will perform binary numeric promotion of the operands; when these operands are of reference types, the expression\'s result may not be of the expected type.',
              [r".*: warning: \[ConditionalExpressionNumericPromotion\] .+"]),
    java_high('Compile-time constant expression overflows',
              [r".*: warning: \[ConstantOverflow\] .+"]),
    java_high('Dagger @Provides methods may not return null unless annotated with @Nullable',
              [r".*: warning: \[DaggerProvidesNull\] .+"]),
    java_high('Exception created but not thrown',
              [r".*: warning: \[DeadException\] .+"]),
    java_high('Thread created but not started',
              [r".*: warning: \[DeadThread\] .+"]),
    java_high('Deprecated item is not annotated with @Deprecated',
              [r".*\.java:.*: warning: \[.*\] .+ is not annotated with @Deprecated$"]),
    java_high('Division by integer literal zero',
              [r".*: warning: \[DivZero\] .+"]),
    java_high('This method should not be called.',
              [r".*: warning: \[DoNotCall\] .+"]),
    java_high('Empty statement after if',
              [r".*: warning: \[EmptyIf\] .+"]),
    java_high('== NaN always returns false; use the isNaN methods instead',
              [r".*: warning: \[EqualsNaN\] .+"]),
    java_high('== must be used in equals method to check equality to itself or an infinite loop will occur.',
              [r".*: warning: \[EqualsReference\] .+"]),
    java_high('Comparing different pairs of fields/getters in an equals implementation is probably a mistake.',
              [r".*: warning: \[EqualsWrongThing\] .+"]),
    java_high('Method annotated @ForOverride must be protected or package-private and only invoked from declaring class, or from an override of the method',
              [r".*: warning: \[ForOverride\] .+"]),
    java_high('Invalid printf-style format string',
              [r".*: warning: \[FormatString\] .+"]),
    java_high('Invalid format string passed to formatting method.',
              [r".*: warning: \[FormatStringAnnotation\] .+"]),
    java_high('Casting a lambda to this @FunctionalInterface can cause a behavior change from casting to a functional superinterface, which is surprising to users.  Prefer decorator methods to this surprising behavior.',
              [r".*: warning: \[FunctionalInterfaceMethodChanged\] .+"]),
    java_high('Futures.getChecked requires a checked exception type with a standard constructor.',
              [r".*: warning: \[FuturesGetCheckedIllegalExceptionType\] .+"]),
    java_high('DoubleMath.fuzzyEquals should never be used in an Object.equals() method',
              [r".*: warning: \[FuzzyEqualsShouldNotBeUsedInEqualsMethod\] .+"]),
    java_high('Calling getClass() on an annotation may return a proxy class',
              [r".*: warning: \[GetClassOnAnnotation\] .+"]),
    java_high('Calling getClass() on an object of type Class returns the Class object for java.lang.Class; you probably meant to operate on the object directly',
              [r".*: warning: \[GetClassOnClass\] .+"]),
    java_high('Checks for unguarded accesses to fields and methods with @GuardedBy annotations',
              [r".*: warning: \[GuardedBy\] .+"]),
    java_high('Scope annotation on implementation class of AssistedInject factory is not allowed',
              [r".*: warning: \[GuiceAssistedInjectScoping\] .+"]),
    java_high('A constructor cannot have two @Assisted parameters of the same type unless they are disambiguated with named @Assisted annotations.',
              [r".*: warning: \[GuiceAssistedParameters\] .+"]),
    java_high('Although Guice allows injecting final fields, doing so is disallowed because the injected value may not be visible to other threads.',
              [r".*: warning: \[GuiceInjectOnFinalField\] .+"]),
    java_high('contains() is a legacy method that is equivalent to containsValue()',
              [r".*: warning: \[HashtableContains\] .+"]),
    java_high('A binary expression where both operands are the same is usually incorrect.',
              [r".*: warning: \[IdentityBinaryExpression\] .+"]),
    java_high('Type declaration annotated with @Immutable is not immutable',
              [r".*: warning: \[Immutable\] .+"]),
    java_high('Modifying an immutable collection is guaranteed to throw an exception and leave the collection unmodified',
              [r".*: warning: \[ImmutableModification\] .+"]),
    java_high('Passing argument to a generic method with an incompatible type.',
              [r".*: warning: \[IncompatibleArgumentType\] .+"]),
    java_high('The first argument to indexOf is a Unicode code point, and the second is the index to start the search from',
              [r".*: warning: \[IndexOfChar\] .+"]),
    java_high('Conditional expression in varargs call contains array and non-array arguments',
              [r".*: warning: \[InexactVarargsConditional\] .+"]),
    java_high('This method always recurses, and will cause a StackOverflowError',
              [r".*: warning: \[InfiniteRecursion\] .+"]),
    java_high('A scoping annotation\'s Target should include TYPE and METHOD.',
              [r".*: warning: \[InjectInvalidTargetingOnScopingAnnotation\] .+"]),
    java_high('Using more than one qualifier annotation on the same element is not allowed.',
              [r".*: warning: \[InjectMoreThanOneQualifier\] .+"]),
    java_high('A class can be annotated with at most one scope annotation.',
              [r".*: warning: \[InjectMoreThanOneScopeAnnotationOnClass\] .+"]),
    java_high('Members shouldn\'t be annotated with @Inject if constructor is already annotated @Inject',
              [r".*: warning: \[InjectOnMemberAndConstructor\] .+"]),
    java_high('Scope annotation on an interface or abstact class is not allowed',
              [r".*: warning: \[InjectScopeAnnotationOnInterfaceOrAbstractClass\] .+"]),
    java_high('Scoping and qualifier annotations must have runtime retention.',
              [r".*: warning: \[InjectScopeOrQualifierAnnotationRetention\] .+"]),
    java_high('Injected constructors cannot be optional nor have binding annotations',
              [r".*: warning: \[InjectedConstructorAnnotations\] .+"]),
    java_high('A standard cryptographic operation is used in a mode that is prone to vulnerabilities',
              [r".*: warning: \[InsecureCryptoUsage\] .+"]),
    java_high('Invalid syntax used for a regular expression',
              [r".*: warning: \[InvalidPatternSyntax\] .+"]),
    java_high('Invalid time zone identifier. TimeZone.getTimeZone(String) will silently return GMT instead of the time zone you intended.',
              [r".*: warning: \[InvalidTimeZoneID\] .+"]),
    java_high('The argument to Class#isInstance(Object) should not be a Class',
              [r".*: warning: \[IsInstanceOfClass\] .+"]),
    java_high('Log tag too long, cannot exceed 23 characters.',
              [r".*: warning: \[IsLoggableTagLength\] .+"]),
    java_high(u'Path implements Iterable\u003cPath>; prefer Collection\u003cPath> for clarity',
              [r".*: warning: \[IterablePathParameter\] .+"]),
    java_high('jMock tests must have a @RunWith(JMock.class) annotation, or the Mockery field must have a @Rule JUnit annotation',
              [r".*: warning: \[JMockTestWithoutRunWithOrRuleAnnotation\] .+"]),
    java_high('Test method will not be run; please correct method signature (Should be public, non-static, and method name should begin with "test").',
              [r".*: warning: \[JUnit3TestNotRun\] .+"]),
    java_high('This method should be static',
              [r".*: warning: \[JUnit4ClassAnnotationNonStatic\] .+"]),
    java_high('setUp() method will not be run; please add JUnit\'s @Before annotation',
              [r".*: warning: \[JUnit4SetUpNotRun\] .+"]),
    java_high('tearDown() method will not be run; please add JUnit\'s @After annotation',
              [r".*: warning: \[JUnit4TearDownNotRun\] .+"]),
    java_high('This looks like a test method but is not run; please add @Test and @Ignore, or, if this is a helper method, reduce its visibility.',
              [r".*: warning: \[JUnit4TestNotRun\] .+"]),
    java_high('An object is tested for reference equality to itself using JUnit library.',
              [r".*: warning: \[JUnitAssertSameCheck\] .+"]),
    java_high('Use of class, field, or method that is not compatible with JDK 7',
              [r".*: warning: \[Java7ApiChecker\] .+"]),
    java_high('Abstract and default methods are not injectable with javax.inject.Inject',
              [r".*: warning: \[JavaxInjectOnAbstractMethod\] .+"]),
    java_high('@javax.inject.Inject cannot be put on a final field.',
              [r".*: warning: \[JavaxInjectOnFinalField\] .+"]),
    java_high('This pattern will silently corrupt certain byte sequences from the serialized protocol message. Use ByteString or byte[] directly',
              [r".*: warning: \[LiteByteStringUtf8\] .+"]),
    java_high('This method does not acquire the locks specified by its @LockMethod annotation',
              [r".*: warning: \[LockMethodChecker\] .+"]),
    java_high('Prefer \'L\' to \'l\' for the suffix to long literals',
              [r".*: warning: \[LongLiteralLowerCaseSuffix\] .+"]),
    java_high('Loop condition is never modified in loop body.',
              [r".*: warning: \[LoopConditionChecker\] .+"]),
    java_high('Math.round(Integer) results in truncation',
              [r".*: warning: \[MathRoundIntLong\] .+"]),
    java_high('Certain resources in `android.R.string` have names that do not match their content',
              [r".*: warning: \[MislabeledAndroidString\] .+"]),
    java_high('Overriding method is missing a call to overridden super method',
              [r".*: warning: \[MissingSuperCall\] .+"]),
    java_high('A terminating method call is required for a test helper to have any effect.',
              [r".*: warning: \[MissingTestCall\] .+"]),
    java_high('Use of "YYYY" (week year) in a date pattern without "ww" (week in year). You probably meant to use "yyyy" (year) instead.',
              [r".*: warning: \[MisusedWeekYear\] .+"]),
    java_high('A bug in Mockito will cause this test to fail at runtime with a ClassCastException',
              [r".*: warning: \[MockitoCast\] .+"]),
    java_high('Missing method call for verify(mock) here',
              [r".*: warning: \[MockitoUsage\] .+"]),
    java_high('Using a collection function with itself as the argument.',
              [r".*: warning: \[ModifyingCollectionWithItself\] .+"]),
    java_high('This class has more than one @Inject-annotated constructor. Please remove the @Inject annotation from all but one of them.',
              [r".*: warning: \[MoreThanOneInjectableConstructor\] .+"]),
    java_high('The result of this method must be closed.',
              [r".*: warning: \[MustBeClosedChecker\] .+"]),
    java_high('The first argument to nCopies is the number of copies, and the second is the item to copy',
              [r".*: warning: \[NCopiesOfChar\] .+"]),
    java_high('@NoAllocation was specified on this method, but something was found that would trigger an allocation',
              [r".*: warning: \[NoAllocation\] .+"]),
    java_high('Static import of type uses non-canonical name',
              [r".*: warning: \[NonCanonicalStaticImport\] .+"]),
    java_high('@CompileTimeConstant parameters should be final or effectively final',
              [r".*: warning: \[NonFinalCompileTimeConstant\] .+"]),
    java_high('Calling getAnnotation on an annotation that is not retained at runtime.',
              [r".*: warning: \[NonRuntimeAnnotation\] .+"]),
    java_high('This conditional expression may evaluate to null, which will result in an NPE when the result is unboxed.',
              [r".*: warning: \[NullTernary\] .+"]),
    java_high('Numeric comparison using reference equality instead of value equality',
              [r".*: warning: \[NumericEquality\] .+"]),
    java_high('Comparison using reference equality instead of value equality',
              [r".*: warning: \[OptionalEquality\] .+"]),
    java_high('Annotations cannot be both Scope annotations and Qualifier annotations: this causes confusion when trying to use them.',
              [r".*: warning: \[OverlappingQualifierAndScopeAnnotation\] .+"]),
    java_high('This method is not annotated with @Inject, but it overrides a method that is  annotated with @javax.inject.Inject. The method will not be Injected.',
              [r".*: warning: \[OverridesJavaxInjectableMethod\] .+"]),
    java_high('Declaring types inside package-info.java files is very bad form',
              [r".*: warning: \[PackageInfo\] .+"]),
    java_high('Method parameter has wrong package',
              [r".*: warning: \[ParameterPackage\] .+"]),
    java_high('Detects classes which implement Parcelable but don\'t have CREATOR',
              [r".*: warning: \[ParcelableCreator\] .+"]),
    java_high('Literal passed as first argument to Preconditions.checkNotNull() can never be null',
              [r".*: warning: \[PreconditionsCheckNotNull\] .+"]),
    java_high('First argument to `Preconditions.checkNotNull()` is a primitive rather than an object reference',
              [r".*: warning: \[PreconditionsCheckNotNullPrimitive\] .+"]),
    java_high('Using ::equals or ::isInstance as an incompatible Predicate; the predicate will always return false',
              [r".*: warning: \[PredicateIncompatibleType\] .+"]),
    java_high('Access to a private protocol buffer field is forbidden. This protocol buffer carries a security contract, and can only be created using an approved library. Direct access to the fields is forbidden.',
              [r".*: warning: \[PrivateSecurityContractProtoAccess\] .+"]),
    java_high('Protobuf fields cannot be null.',
              [r".*: warning: \[ProtoFieldNullComparison\] .+"]),
    java_high('Comparing protobuf fields of type String using reference equality',
              [r".*: warning: \[ProtoStringFieldReferenceEquality\] .+"]),
    java_high('To get the tag number of a protocol buffer enum, use getNumber() instead.',
              [r".*: warning: \[ProtocolBufferOrdinal\] .+"]),
    java_high('@Provides methods need to be declared in a Module to have any effect.',
              [r".*: warning: \[ProvidesMethodOutsideOfModule\] .+"]),
    java_high('Casting a random number in the range [0.0, 1.0) to an integer or long always results in 0.',
              [r".*: warning: \[RandomCast\] .+"]),
    java_high('Use Random.nextInt(int).  Random.nextInt() % n can have negative results',
              [r".*: warning: \[RandomModInteger\] .+"]),
    java_high('Return value of android.graphics.Rect.intersect() must be checked',
              [r".*: warning: \[RectIntersectReturnValueIgnored\] .+"]),
    java_high('Use of method or class annotated with @RestrictTo',
              [r".*: warning: \[RestrictTo\] .+"]),
    java_high(' Check for non-whitelisted callers to RestrictedApiChecker.',
              [r".*: warning: \[RestrictedApiChecker\] .+"]),
    java_high('Return value of this method must be used',
              [r".*: warning: \[ReturnValueIgnored\] .+"]),
    java_high('Variable assigned to itself',
              [r".*: warning: \[SelfAssignment\] .+"]),
    java_high('An object is compared to itself',
              [r".*: warning: \[SelfComparison\] .+"]),
    java_high('Testing an object for equality with itself will always be true.',
              [r".*: warning: \[SelfEquals\] .+"]),
    java_high('This method must be called with an even number of arguments.',
              [r".*: warning: \[ShouldHaveEvenArgs\] .+"]),
    java_high('Comparison of a size >= 0 is always true, did you intend to check for non-emptiness?',
              [r".*: warning: \[SizeGreaterThanOrEqualsZero\] .+"]),
    java_high('Static and default interface methods are not natively supported on older Android devices. ',
              [r".*: warning: \[StaticOrDefaultInterfaceMethod\] .+"]),
    java_high('Calling toString on a Stream does not provide useful information',
              [r".*: warning: \[StreamToString\] .+"]),
    java_high('StringBuilder does not have a char constructor; this invokes the int constructor.',
              [r".*: warning: \[StringBuilderInitWithChar\] .+"]),
    java_high('String.substring(0) returns the original String',
              [r".*: warning: \[SubstringOfZero\] .+"]),
    java_high('Suppressing "deprecated" is probably a typo for "deprecation"',
              [r".*: warning: \[SuppressWarningsDeprecated\] .+"]),
    java_high('throwIfUnchecked(knownCheckedException) is a no-op.',
              [r".*: warning: \[ThrowIfUncheckedKnownChecked\] .+"]),
    java_high('Throwing \'null\' always results in a NullPointerException being thrown.',
              [r".*: warning: \[ThrowNull\] .+"]),
    java_high('isEqualTo should not be used to test an object for equality with itself; the assertion will never fail.',
              [r".*: warning: \[TruthSelfEquals\] .+"]),
    java_high('Catching Throwable/Error masks failures from fail() or assert*() in the try block',
              [r".*: warning: \[TryFailThrowable\] .+"]),
    java_high('Type parameter used as type qualifier',
              [r".*: warning: \[TypeParameterQualifier\] .+"]),
    java_high('This method does not acquire the locks specified by its @UnlockMethod annotation',
              [r".*: warning: \[UnlockMethod\] .+"]),
    java_high('Non-generic methods should not be invoked with type arguments',
              [r".*: warning: \[UnnecessaryTypeArgument\] .+"]),
    java_high('Instance created but never used',
              [r".*: warning: \[UnusedAnonymousClass\] .+"]),
    java_high('Collection is modified in place, but the result is not used',
              [r".*: warning: \[UnusedCollectionModifiedInPlace\] .+"]),
    java_high('`var` should not be used as a type name.',
              [r".*: warning: \[VarTypeName\] .+"]),
    # Other javac tool warnings
    java_medium('addNdkApiCoverage failed to getPackage',
                [r".*: warning: addNdkApiCoverage failed to getPackage"]),
    java_medium('Supported version from annotation processor',
                [r".*: warning: Supported source version .+ from annotation processor"]),
]

compile_patterns(warn_patterns)
