summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Adrian Roos <roosa@google.com> 2019-03-06 05:06:41 -0800
committer android-build-merger <android-build-merger@google.com> 2019-03-06 05:06:41 -0800
commit748ed1ad44c37847d34d3af5305094583593a121 (patch)
treeca7f155022f8afb513bba24bb686e6fa13074e4b
parent872fe405e082606d9092ae9d045477c8da12f1af (diff)
parentcec0f35fcc500c7eecabfdf9b209bcb4b9760e6f (diff)
Merge "apilint: Lint unhidden @IntDef and @LongDef" am: 4435924104
am: cec0f35fcc Change-Id: Ie5646faa1b8bf2665d70ed683dbd365e6c550c13
-rw-r--r--tools/apilint/apilint.py15
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."""