Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Android/build/build/make/tools/warn/   (Android Betriebssystem Version 17©)  Datei vom 26.5.2026 mit Größe 7 kB image not shown  

Quelle  other_warn_patterns.py

  Sprache: Python
 

# 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."""

# No need of doc strings for trivial small functions.
# pylint:disable=missing-function-docstring

# pylint:disable=relative-beyond-top-level
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 does not recognize g-inconsistent-quotes
    # pylint:disable=line-too-long,bad-option-value,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 .+"]),
    # 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"]),
    asm('section flags ignored',
        [r".*: warning: section flags ignored on section redeclaration"]),
    asm('setjmp/longjmp/vfork changed binding',
        [r".*: warning: .*(setjmp|longjmp|vfork) changed binding to .*"]),
    # 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('reduce/reduce conflicts',
         [r".*\.yy?: warning: .+ reduce/reduce conflicts "]),
    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: ']},
    {'category''RenderScript''severity': Severity.HIGH,
     'description''RenderScript is deprecated',
     'patterns': [r'.*: warning: Renderscript is deprecated:.+']},
    # 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)

Messung V0.5 in Prozent
C=88 H=93 G=90

¤ Dauer der Verarbeitung: 0.11 Sekunden  (vorverarbeitet am  2026-06-28) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.