Loading errorprone/java/com/google/errorprone/bugpatterns/android/RequiresPermissionChecker.java +2 −2 Original line number Diff line number Diff line Loading @@ -412,11 +412,11 @@ public final class RequiresPermissionChecker extends BugChecker private static ParsedRequiresPermission parseRequiresPermissionRecursively( MethodInvocationTree tree, VisitorState state) { if (ENFORCE_VIA_CONTEXT.matches(tree, state)) { if (ENFORCE_VIA_CONTEXT.matches(tree, state) && tree.getArguments().size() > 0) { final ParsedRequiresPermission res = new ParsedRequiresPermission(); res.allOf.add(String.valueOf(ASTHelpers.constValue(tree.getArguments().get(0)))); return res; } else if (ENFORCE_VIA_CHECKER.matches(tree, state)) { } else if (ENFORCE_VIA_CHECKER.matches(tree, state) && tree.getArguments().size() > 1) { final ParsedRequiresPermission res = new ParsedRequiresPermission(); res.allOf.add(String.valueOf(ASTHelpers.constValue(tree.getArguments().get(1)))); return res; Loading errorprone/tests/java/com/google/errorprone/bugpatterns/android/RequiresPermissionCheckerTest.java +23 −0 Original line number Diff line number Diff line Loading @@ -415,4 +415,27 @@ public class RequiresPermissionCheckerTest { "}") .doTest(); } @Test public void testInvalidFunctions() { compilationHelper .addSourceFile("/android/annotation/RequiresPermission.java") .addSourceFile("/android/annotation/SuppressLint.java") .addSourceFile("/android/content/Context.java") .addSourceLines("Example.java", "import android.annotation.RequiresPermission;", "import android.annotation.SuppressLint;", "import android.content.Context;", "class Foo extends Context {", " private static final String RED = \"red\";", " public void checkPermission() {", " }", " @RequiresPermission(RED)", " // BUG: Diagnostic contains:", " public void exampleScoped(Context context) {", " checkPermission();", " }", "}") .doTest(); } } Loading
errorprone/java/com/google/errorprone/bugpatterns/android/RequiresPermissionChecker.java +2 −2 Original line number Diff line number Diff line Loading @@ -412,11 +412,11 @@ public final class RequiresPermissionChecker extends BugChecker private static ParsedRequiresPermission parseRequiresPermissionRecursively( MethodInvocationTree tree, VisitorState state) { if (ENFORCE_VIA_CONTEXT.matches(tree, state)) { if (ENFORCE_VIA_CONTEXT.matches(tree, state) && tree.getArguments().size() > 0) { final ParsedRequiresPermission res = new ParsedRequiresPermission(); res.allOf.add(String.valueOf(ASTHelpers.constValue(tree.getArguments().get(0)))); return res; } else if (ENFORCE_VIA_CHECKER.matches(tree, state)) { } else if (ENFORCE_VIA_CHECKER.matches(tree, state) && tree.getArguments().size() > 1) { final ParsedRequiresPermission res = new ParsedRequiresPermission(); res.allOf.add(String.valueOf(ASTHelpers.constValue(tree.getArguments().get(1)))); return res; Loading
errorprone/tests/java/com/google/errorprone/bugpatterns/android/RequiresPermissionCheckerTest.java +23 −0 Original line number Diff line number Diff line Loading @@ -415,4 +415,27 @@ public class RequiresPermissionCheckerTest { "}") .doTest(); } @Test public void testInvalidFunctions() { compilationHelper .addSourceFile("/android/annotation/RequiresPermission.java") .addSourceFile("/android/annotation/SuppressLint.java") .addSourceFile("/android/content/Context.java") .addSourceLines("Example.java", "import android.annotation.RequiresPermission;", "import android.annotation.SuppressLint;", "import android.content.Context;", "class Foo extends Context {", " private static final String RED = \"red\";", " public void checkPermission() {", " }", " @RequiresPermission(RED)", " // BUG: Diagnostic contains:", " public void exampleScoped(Context context) {", " checkPermission();", " }", "}") .doTest(); } }