diff options
| author | 2019-03-06 05:06:41 -0800 | |
|---|---|---|
| committer | 2019-03-06 05:06:41 -0800 | |
| commit | 748ed1ad44c37847d34d3af5305094583593a121 (patch) | |
| tree | ca7f155022f8afb513bba24bb686e6fa13074e4b | |
| parent | 872fe405e082606d9092ae9d045477c8da12f1af (diff) | |
| parent | cec0f35fcc500c7eecabfdf9b209bcb4b9760e6f (diff) | |
Merge "apilint: Lint unhidden @IntDef and @LongDef" am: 4435924104
am: cec0f35fcc
Change-Id: Ie5646faa1b8bf2665d70ed683dbd365e6c550c13
| -rw-r--r-- | tools/apilint/apilint.py | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/tools/apilint/apilint.py b/tools/apilint/apilint.py index a91fbe76be8d..f967c2fa6bcb 100644 --- a/tools/apilint/apilint.py +++ b/tools/apilint/apilint.py @@ -170,6 +170,7 @@ class Class(): self.ctors = [] self.fields = [] self.methods = [] + self.annotations = [] if sig_format == 2: V2LineParser(raw).parse_into_class(self) @@ -353,8 +354,8 @@ class V2LineParser(object): def parse_into_class(self, clazz): clazz.split = [] - annotations = self.parse_annotations() - if "@Deprecated" in annotations: + clazz.annotations = self.parse_annotations() + if "@Deprecated" in clazz.annotations: clazz.split.append("deprecated") clazz.split.extend(self.parse_modifiers()) kind = self.parse_one_of("class", "interface", "@interface", "enum") @@ -2000,6 +2001,16 @@ def has_nullability(annotations): @verifier +def verify_intdef(clazz): + """intdefs must be @hide, because the constant names cannot be stored in + the stubs (only the values are, which is not useful)""" + if "@interface" not in clazz.split: + return + if "@IntDef" in clazz.annotations or "@LongDef" in clazz.annotations: + error(clazz, None, None, "@IntDef and @LongDef annotations must be @hide") + + +@verifier def verify_singleton(clazz): """Catch singleton objects with constructors.""" |