IDEA-107730@VisibleForTesting is marked as a warning when called within class

This commit is contained in:
peter
2013-07-16 17:48:44 +02:00
parent 041c3c9319
commit f231d964c4
7 changed files with 85 additions and 6 deletions
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<problems>
<problem>
<file>B.java</file>
<line>3</line>
<description>Test-only method is called in production code</description>
</problem>
</problems>
@@ -0,0 +1,16 @@
public class A {
void publicMethod() {
invisibleMethod(1);
visibleMethod(1);
}
@com.google.common.annotations.VisibleForTesting()
void invisibleMethod(int a) {
}
@com.google.common.annotations.VisibleForTesting(visibility=com.google.common.annotations.VisibleForTesting.Visibility.PROTECTED)
void visibleMethod(int a) {
}
}
@@ -0,0 +1,6 @@
public class B {
void publicMethod() {
new A().invisibleMethod(2);
new A().visibleMethod(2);
}
}
@@ -0,0 +1,14 @@
package com.google.common.annotations;
public @interface VisibleForTesting {
enum Visibility {
/** The element should be considered protected. */
PROTECTED,
/** The element should be considered package-private. */
PACKAGE,
/** The element should be considered private. */
PRIVATE
}
Visibility visibility() default Visibility.PRIVATE;
}
@@ -0,0 +1,6 @@
public class Test {
void publicMethod() {
new A().invisibleMethod(3);
new A().visibleMethod(3);
}
}