From 56ff78438513dd6c308468d1c5ac7ad29556dbbf Mon Sep 17 00:00:00 2001 From: Adrian Roos Date: Thu, 28 Feb 2019 12:45:00 +0100 Subject: [PATCH] Apilint: lint for URL/URI Test: python apilint_test.py Change-Id: Iebe3b48df7ed69e0b5f5ff372b72f68ca9f8efec --- tools/apilint/apilint.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tools/apilint/apilint.py b/tools/apilint/apilint.py index 52707c28286e..ddfee622699e 100644 --- a/tools/apilint/apilint.py +++ b/tools/apilint/apilint.py @@ -1262,6 +1262,19 @@ def verify_collections(clazz): if arg in bad: error(clazz, m, "CL2", "Argument is concrete collection; must be higher-level interface") +def verify_uris(clazz): + bad = ["java.net.URL", "java.net.URI", "android.net.URL"] + + for f in clazz.fields: + if f.typ in bad: + error(clazz, f, None, "Field must be android.net.Uri instead of " + f.typ) + + for m in clazz.methods + clazz.ctors: + if m.typ in bad: + error(clazz, m, None, "Must return android.net.Uri instead of " + m.typ) + for arg in m.args: + if arg in bad: + error(clazz, m, None, "Argument must take android.net.Uri instead of " + arg) def verify_flags(clazz): """Verifies that flags are non-overlapping.""" @@ -1982,6 +1995,7 @@ def examine_clazz(clazz): verify_layering(clazz) verify_boolean(clazz) verify_collections(clazz) + verify_uris(clazz) verify_flags(clazz) verify_exception(clazz) if not ALLOW_GOOGLE: verify_google(clazz) -- 2.11.0