Merge "apilint: Correctly parse packages with annotations"
am: 57b5479a6b
Change-Id: Ifbc59f9c0997ccf012a59a61b5e55476e14a2ade
This commit is contained in:
@@ -208,13 +208,14 @@ class Class():
|
|||||||
|
|
||||||
|
|
||||||
class Package():
|
class Package():
|
||||||
|
NAME = re.compile("package(?: .*)? ([A-Za-z.]+)")
|
||||||
|
|
||||||
def __init__(self, line, raw, blame):
|
def __init__(self, line, raw, blame):
|
||||||
self.line = line
|
self.line = line
|
||||||
self.raw = raw.strip(" {;")
|
self.raw = raw.strip(" {;")
|
||||||
self.blame = blame
|
self.blame = blame
|
||||||
|
|
||||||
raw = raw.split()
|
self.name = Package.NAME.match(raw).group(1)
|
||||||
self.name = raw[raw.index("package")+1]
|
|
||||||
self.name_path = self.name.split(".")
|
self.name_path = self.name.split(".")
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
|
|||||||
@@ -369,5 +369,21 @@ class V2ParserTests(unittest.TestCase):
|
|||||||
m = self._method('method @NonNull public @NonNull String @NonNull [] split(@NonNull String, int);')
|
m = self._method('method @NonNull public @NonNull String @NonNull [] split(@NonNull String, int);')
|
||||||
self.assertEquals('java.lang.String[]', m.typ)
|
self.assertEquals('java.lang.String[]', m.typ)
|
||||||
|
|
||||||
|
class PackageTests(unittest.TestCase):
|
||||||
|
def _package(self, raw):
|
||||||
|
return apilint.Package(123, raw, "blame")
|
||||||
|
|
||||||
|
def test_regular_package(self):
|
||||||
|
p = self._package("package an.pref.int {")
|
||||||
|
self.assertEquals('an.pref.int', p.name)
|
||||||
|
|
||||||
|
def test_annotation_package(self):
|
||||||
|
p = self._package("package @RestrictTo(a.b.C) an.pref.int {")
|
||||||
|
self.assertEquals('an.pref.int', p.name)
|
||||||
|
|
||||||
|
def test_multi_annotation_package(self):
|
||||||
|
p = self._package("package @Rt(a.b.L_G_P) @RestrictTo(a.b.C) an.pref.int {")
|
||||||
|
self.assertEquals('an.pref.int', p.name)
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
|||||||
Reference in New Issue
Block a user