Merge "apilint: Lint unhidden @IntDef and @LongDef" am: 4435924104 am: cec0f35fcc

am: 748ed1ad44

Change-Id: Iccbb4042411822a0c489a8f7622747a8dd23df4e
This commit is contained in:
Adrian Roos
2019-03-06 05:16:17 -08:00
committed by android-build-merger

View File

@@ -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")
@@ -1999,6 +2000,16 @@ def has_nullability(annotations):
return "@NonNull" in annotations or "@Nullable" in 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."""