# 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 from other tools."""

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


def warn(name, severity, description, pattern_list):
  return {
      'category': name,
      'severity': severity,
      'description': name + ': ' + description,
      'patterns': pattern_list
  }


def aapt(description, pattern_list):
  return warn('aapt', Severity.MEDIUM, description, pattern_list)


def misc(description, pattern_list):
  return warn('logtags', Severity.LOW, description, pattern_list)


def asm(description, pattern_list):
  return warn('asm', Severity.MEDIUM, description, pattern_list)


def kotlin(description, pattern):
  return warn('Kotlin', Severity.MEDIUM, description,
              [r'.*\.kt:.*: warning: ' + pattern])


def yacc(description, pattern_list):
  return warn('yacc', Severity.MEDIUM, description, pattern_list)


def rust(severity, description, pattern):
  return warn('Rust', severity, description,
              [r'.*\.rs:.*: warning: ' + pattern])


warn_patterns = [
    # pylint:disable=line-too-long,g-inconsistent-quotes
    # aapt warnings
    aapt('No comment for public symbol',
         [r".*: warning: No comment for public symbol .+"]),
    aapt('No default translation',
         [r".*: warning: string '.+' has no default translation in .*"]),
    aapt('Missing default or required localization',
         [r".*: warning: \*\*\*\* string '.+' has no default or required localization for '.+' in .+"]),
    aapt('String marked untranslatable, but translation exists',
         [r".*: warning: string '.+' in .* marked untranslatable but exists in locale '??_??'"]),
    aapt('empty span in string',
         [r".*: warning: empty '.+' span found in text '.+"]),
    # misc warnings
    misc('Duplicate logtag',
         [r".*: warning: tag \".+\" \(.+\) duplicated in .+"]),
    misc('Typedef redefinition',
         [r".*: warning: redefinition of typedef '.+' is a C11 feature"]),
    misc('GNU old-style field designator',
         [r".*: warning: use of GNU old-style field designator extension"]),
    misc('Missing field initializers',
         [r".*: warning: missing field '.+' initializer"]),
    misc('Missing braces',
         [r".*: warning: suggest braces around initialization of",
          r".*: warning: too many braces around scalar initializer .+Wmany-braces-around-scalar-init",
          r".*: warning: braces around scalar initializer"]),
    misc('Comparison of integers of different signs',
         [r".*: warning: comparison of integers of different signs.+sign-compare"]),
    misc('Add braces to avoid dangling else',
         [r".*: warning: add explicit braces to avoid dangling else"]),
    misc('Initializer overrides prior initialization',
         [r".*: warning: initializer overrides prior initialization of this subobject"]),
    misc('Assigning value to self',
         [r".*: warning: explicitly assigning value of .+ to itself"]),
    misc('GNU extension, variable sized type not at end',
         [r".*: warning: field '.+' with variable sized type '.+' not at the end of a struct or class"]),
    misc('Comparison of constant is always false/true',
         [r".*: comparison of .+ is always .+Wtautological-constant-out-of-range-compare"]),
    misc('Hides overloaded virtual function',
         [r".*: '.+' hides overloaded virtual function"]),
    misc('Incompatible pointer types',
         [r".*: warning: incompatible .*pointer types .*-Wincompatible-.*pointer-types"]),
    # Assembler warnings
    asm('ASM value size does not match register size',
        [r".*: warning: value size does not match register size specified by the constraint and modifier"]),
    asm('IT instruction is deprecated',
        [r".*: warning: applying IT instruction .* is deprecated"]),
    # NDK warnings
    {'category': 'NDK', 'severity': Severity.HIGH,
     'description': 'NDK: Generate guard with empty availability, obsoleted',
     'patterns': [r".*: warning: .* generate guard with empty availability: obsoleted ="]},
    # Protoc warnings
    {'category': 'Protoc', 'severity': Severity.MEDIUM,
     'description': 'Proto: Enum name collision after strip',
     'patterns': [r".*: warning: Enum .* has the same name .* ignore case and strip"]},
    {'category': 'Protoc', 'severity': Severity.MEDIUM,
     'description': 'Proto: Import not used',
     'patterns': [r".*: warning: Import .*/.*\.proto but not used.$"]},
    # Kotlin warnings
    kotlin('never used parameter or variable', '.+ \'.*\' is never used'),
    kotlin('multiple labels', '.+ more than one label .+ in this scope'),
    kotlin('type mismatch', 'type mismatch: '),
    kotlin('is always true', '.+ is always \'true\''),
    kotlin('no effect', '.+ annotation has no effect for '),
    kotlin('no cast needed', 'no cast needed'),
    kotlin('accessor not generated', 'an accessor will not be generated '),
    kotlin('initializer is redundant', '.* initializer is redundant$'),
    kotlin('elvis operator always returns ...',
           'elvis operator (?:) always returns .+'),
    kotlin('shadowed name', 'name shadowed: .+'),
    kotlin('unchecked cast', 'unchecked cast: .* to .*$'),
    kotlin('unreachable code', 'unreachable code'),
    kotlin('unnecessary assertion', 'unnecessary .+ assertion .+'),
    kotlin('unnecessary safe call on a non-null receiver',
           'unnecessary safe call on a non-null receiver'),
    kotlin('Deprecated in Java',
           '\'.*\' is deprecated. Deprecated in Java'),
    kotlin('Replacing Handler for Executor',
           '.+ Replacing Handler for Executor in '),
    kotlin('library has Kotlin runtime',
           '.+ has Kotlin runtime (bundled|library)'),
    warn('Kotlin', Severity.MEDIUM, 'bundled Kotlin runtime',
         ['.*warning: .+ (has|have the) Kotlin (runtime|Runtime library) bundled']),
    kotlin('other warnings', '.+'),  # catch all other Kotlin warnings
    # Yacc warnings
    yacc('deprecate directive',
         [r".*\.yy?:.*: warning: deprecated directive: "]),
    yacc('shift/reduce conflicts',
         [r".*\.yy?: warning: .+ shift/reduce conflicts "]),
    {'category': 'yacc', 'severity': Severity.SKIP,
     'description': 'yacc: fix-its can be applied',
     'patterns': [r".*\.yy?: warning: fix-its can be applied."]},
    # Rust warnings
    rust(Severity.HIGH, 'Does not derive Copy', '.+ does not derive Copy'),
    rust(Severity.MEDIUM, '... are deprecated',
         ('(.+ are deprecated$|' +
          'use of deprecated item .* (use .* instead|is now preferred))')),
    rust(Severity.MEDIUM, 'never used', '.* is never used:'),
    rust(Severity.MEDIUM, 'unused import', 'unused import: '),
    rust(Severity.MEDIUM, 'unnecessary attribute',
         '.+ no longer requires an attribute'),
    rust(Severity.MEDIUM, 'unnecessary parentheses',
         'unnecessary parentheses around'),
    # Catch all RenderScript warnings
    {'category': 'RenderScript', 'severity': Severity.LOW,
     'description': 'RenderScript warnings',
     'patterns': [r'.*\.rscript:.*: warning: ']},
    # Broken/partial warning messages will be skipped.
    {'category': 'Misc', 'severity': Severity.SKIP,
     'description': 'skip, ,',
     'patterns': [r".*: warning: ,?$"]},
    {'category': 'C/C++', 'severity': Severity.SKIP,
     'description': 'skip, In file included from ...',
     'patterns': [r".*: warning: In file included from .+,"]},
    # catch-all for warnings this script doesn't know about yet
    {'category': 'C/C++', 'severity': Severity.UNMATCHED,
     'description': 'Unclassified/unrecognized warnings',
     'patterns': [r".*: warning: .+"]},
]


compile_patterns(warn_patterns)
