summaryrefslogtreecommitdiff
path: root/plugins/InspectionGadgets/test/com/siyeh/igtest/memory/anonymous_inner_class_may_be_static/AnonymousInnerClassMayBeStatic.java
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/InspectionGadgets/test/com/siyeh/igtest/memory/anonymous_inner_class_may_be_static/AnonymousInnerClassMayBeStatic.java')
-rw-r--r--plugins/InspectionGadgets/test/com/siyeh/igtest/memory/anonymous_inner_class_may_be_static/AnonymousInnerClassMayBeStatic.java93
1 files changed, 93 insertions, 0 deletions
diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/memory/anonymous_inner_class_may_be_static/AnonymousInnerClassMayBeStatic.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/memory/anonymous_inner_class_may_be_static/AnonymousInnerClassMayBeStatic.java
new file mode 100644
index 000000000000..4641642c09c5
--- /dev/null
+++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/memory/anonymous_inner_class_may_be_static/AnonymousInnerClassMayBeStatic.java
@@ -0,0 +1,93 @@
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+
+public class AnonymousInnerClassMayBeStatic {
+
+ public void foo()
+ {
+ final Runnable runnable = new <warning descr="Anonymous class 'Runnable' may be a named 'static' inner class">Runnable</warning>(){
+ public void run() {
+ }
+ };
+ runnable.run();
+ new A() {};
+ new <warning descr="Anonymous class 'B' may be a named 'static' inner class">B</warning>() {};
+ new <error descr="Cannot resolve symbol 'C'">C</error>() {};
+ String localVar = "";
+ new <warning descr="Anonymous class 'B' may be a named 'static' inner class">B</warning> () {
+ void f() {
+ System.out.println(localVar);
+ }
+ };
+ }
+
+ class A {}
+ static class B {}
+
+ void m() {
+ class C {
+ }
+ new B() {
+ void bla() {
+ C b; // reference to local class
+ }
+ };
+ new <warning descr="Anonymous class 'B' may be a named 'static' inner class">B</warning>() {
+ void bla() {
+ AnonymousInnerClassMayBeStatic.n();
+ }
+ };
+ }
+
+ static void n() {}
+
+ class D {
+ {new E().m();}
+ class E {
+ private void m() {}
+ }
+ }
+
+ class CC {}
+ static class BB<T> {
+ void m() {
+ new <warning descr="Anonymous class 'BB<CC>' may be a named 'static' inner class">BB<CC></warning>() {
+ class Z {}
+ };
+ }
+ }
+
+ String t = "";
+
+ void m(int p) {
+ String s = null;
+ new <warning descr="Anonymous class 'Object' may be a named 'static' inner class">Object</warning>() {
+ private int a = 1;
+ void f() {
+ System.out.println(a);
+ System.out.println(p);
+ System.out.println(s);
+ this.g();
+ }
+
+ private void g() {}
+ };
+ }
+
+ void sort(List<String> list) {
+ Collections.sort(list, new <warning descr="Anonymous class 'Comparator<String>' may be a named 'static' inner class">Comparator<String></warning>() {
+ @Override
+ public int compare(String o1, String o2) {
+ return o1.toString().compareToIgnoreCase(o2.toString());
+ }
+ });
+ }
+}
+class One {
+ class Two {
+ void foo() {
+ new Object() {};
+ }
+ }
+} \ No newline at end of file