diff options
Diffstat (limited to 'plugins/InspectionGadgets/test/com/siyeh')
39 files changed, 666 insertions, 292 deletions
diff --git a/plugins/InspectionGadgets/test/com/siyeh/igfixes/initialization/double_brace_initialization/Argument.java b/plugins/InspectionGadgets/test/com/siyeh/igfixes/initialization/double_brace_initialization/Argument.java new file mode 100644 index 000000000000..766ea62ea51d --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igfixes/initialization/double_brace_initialization/Argument.java @@ -0,0 +1,12 @@ +public class Argument { + + void m(A a) {} + void n() { + m(new A<caret>() {{ setI(1); setJ(2); }}); + } + + class A { + void setI(int i) {} + void setJ(int j) {} + } +}
\ No newline at end of file diff --git a/plugins/InspectionGadgets/test/com/siyeh/igfixes/initialization/double_brace_initialization/Field.after.java b/plugins/InspectionGadgets/test/com/siyeh/igfixes/initialization/double_brace_initialization/Field.after.java new file mode 100644 index 000000000000..804a5e59d66b --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igfixes/initialization/double_brace_initialization/Field.after.java @@ -0,0 +1,12 @@ +import java.util.ArrayList; +import java.util.List; + +public class Field { + static final List<Integer> list = new ArrayList<Integer>(); + + static { + for (int i = 0; i < 10; i++) { + list.add(i); + } + } +}
\ No newline at end of file diff --git a/plugins/InspectionGadgets/test/com/siyeh/igfixes/initialization/double_brace_initialization/Field.java b/plugins/InspectionGadgets/test/com/siyeh/igfixes/initialization/double_brace_initialization/Field.java new file mode 100644 index 000000000000..4f75edf20f18 --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igfixes/initialization/double_brace_initialization/Field.java @@ -0,0 +1,10 @@ +import java.util.ArrayList; +import java.util.List; + +public class Field { + static final List<Integer> list = new <caret>ArrayList<Integer>() {{ + for (int i = 0; i < 10; i++) { + add(i); + } + }}; +}
\ No newline at end of file diff --git a/plugins/InspectionGadgets/test/com/siyeh/igfixes/initialization/double_brace_initialization/LocalVariable.after.java b/plugins/InspectionGadgets/test/com/siyeh/igfixes/initialization/double_brace_initialization/LocalVariable.after.java new file mode 100644 index 000000000000..92f47c31f39c --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igfixes/initialization/double_brace_initialization/LocalVariable.after.java @@ -0,0 +1,13 @@ +import java.util.HashMap; + +public class LocalVariable { + + void m() { + final HashMap<String, String> map = new HashMap();// comment + map.put("a", "b"); + map.put("a", "b"); + map.put("a", "b"); + map.put("a", "b"); + + } +}
\ No newline at end of file diff --git a/plugins/InspectionGadgets/test/com/siyeh/igfixes/initialization/double_brace_initialization/LocalVariable.java b/plugins/InspectionGadgets/test/com/siyeh/igfixes/initialization/double_brace_initialization/LocalVariable.java new file mode 100644 index 000000000000..12b6f415a4a9 --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igfixes/initialization/double_brace_initialization/LocalVariable.java @@ -0,0 +1,14 @@ +import java.util.HashMap; + +public class LocalVariable { + + void m() { + final HashMap<String, String> map = new HashMap<caret>() {{ + // comment + put("a", "b"); + put("a", "b"); + put("a", "b"); + put("a", "b"); + }}; + } +}
\ No newline at end of file diff --git a/plugins/InspectionGadgets/test/com/siyeh/igfixes/performance/inner_class_static/Simple.after.java b/plugins/InspectionGadgets/test/com/siyeh/igfixes/memory/inner_class_static/Simple.after.java index 973bfc5b6e06..2b2ebd86b79a 100644 --- a/plugins/InspectionGadgets/test/com/siyeh/igfixes/performance/inner_class_static/Simple.after.java +++ b/plugins/InspectionGadgets/test/com/siyeh/igfixes/memory/inner_class_static/Simple.after.java @@ -1,4 +1,4 @@ -package performance.inner_class_static; +package memory.inner_class_static; class Simple { static class Inner {} diff --git a/plugins/InspectionGadgets/test/com/siyeh/igfixes/performance/inner_class_static/Simple.java b/plugins/InspectionGadgets/test/com/siyeh/igfixes/memory/inner_class_static/Simple.java index c183bdb0986f..e08255ca8562 100644 --- a/plugins/InspectionGadgets/test/com/siyeh/igfixes/performance/inner_class_static/Simple.java +++ b/plugins/InspectionGadgets/test/com/siyeh/igfixes/memory/inner_class_static/Simple.java @@ -1,4 +1,4 @@ -package performance.inner_class_static; +package memory.inner_class_static; class Simple { class Inner<caret> {} diff --git a/plugins/InspectionGadgets/test/com/siyeh/igfixes/style/cstyle_array_declaration/FieldWithWhitespace.after.java b/plugins/InspectionGadgets/test/com/siyeh/igfixes/style/cstyle_array_declaration/FieldWithWhitespace.after.java new file mode 100644 index 000000000000..3a3984b1a64c --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igfixes/style/cstyle_array_declaration/FieldWithWhitespace.after.java @@ -0,0 +1,4 @@ +class FieldWithWhitespace { + + String[] s; +}
\ No newline at end of file diff --git a/plugins/InspectionGadgets/test/com/siyeh/igfixes/style/cstyle_array_declaration/FieldWithWhitespace.java b/plugins/InspectionGadgets/test/com/siyeh/igfixes/style/cstyle_array_declaration/FieldWithWhitespace.java new file mode 100644 index 000000000000..1f02831d6632 --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igfixes/style/cstyle_array_declaration/FieldWithWhitespace.java @@ -0,0 +1,4 @@ +class FieldWithWhitespace { + + String s<caret> []; +}
\ No newline at end of file diff --git a/plugins/InspectionGadgets/test/com/siyeh/igfixes/style/cstyle_array_declaration/SimpleMethod.after.java b/plugins/InspectionGadgets/test/com/siyeh/igfixes/style/cstyle_array_declaration/SimpleMethod.after.java new file mode 100644 index 000000000000..0b918a955215 --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igfixes/style/cstyle_array_declaration/SimpleMethod.after.java @@ -0,0 +1,6 @@ +public class SimpleMethod { + + public String[] ohGod(String[] a) { + return a; + } +}
\ No newline at end of file diff --git a/plugins/InspectionGadgets/test/com/siyeh/igfixes/style/cstyle_array_declaration/SimpleMethod.java b/plugins/InspectionGadgets/test/com/siyeh/igfixes/style/cstyle_array_declaration/SimpleMethod.java new file mode 100644 index 000000000000..5d0ac265b2fc --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igfixes/style/cstyle_array_declaration/SimpleMethod.java @@ -0,0 +1,6 @@ +public class SimpleMethod { + + public String ohGod<caret>(String[] a)[] { + return a; + } +}
\ No newline at end of file diff --git a/plugins/InspectionGadgets/test/com/siyeh/igfixes/threading/make_field_volatile/Simple.after.java b/plugins/InspectionGadgets/test/com/siyeh/igfixes/threading/make_field_volatile/Simple.after.java new file mode 100644 index 000000000000..f33e30331623 --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igfixes/threading/make_field_volatile/Simple.after.java @@ -0,0 +1,19 @@ +public class Simple +{ + private static volatile Object s_instance; + + public static Object foo() + { + if(s_instance == null) + { + synchronized(Simple.class) + { + if(s_instance == null) + { + s_instance = new Object(); + } + } + } + return s_instance; + } +} diff --git a/plugins/InspectionGadgets/test/com/siyeh/igfixes/threading/make_field_volatile/Simple.java b/plugins/InspectionGadgets/test/com/siyeh/igfixes/threading/make_field_volatile/Simple.java new file mode 100644 index 000000000000..b514dc20378a --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igfixes/threading/make_field_volatile/Simple.java @@ -0,0 +1,19 @@ +public class Simple +{ + private static Object s_instance; + + public static Object foo() + { + if<caret>(s_instance == null) + { + synchronized(Simple.class) + { + if(s_instance == null) + { + s_instance = new Object(); + } + } + } + return s_instance; + } +} diff --git a/plugins/InspectionGadgets/test/com/siyeh/igfixes/threading/non_thread_safe_lazy_initialization/InstanceVariableReferenced.java b/plugins/InspectionGadgets/test/com/siyeh/igfixes/threading/non_thread_safe_lazy_initialization/InstanceVariableReferenced.java new file mode 100644 index 000000000000..f72c45f2f395 --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igfixes/threading/non_thread_safe_lazy_initialization/InstanceVariableReferenced.java @@ -0,0 +1,16 @@ +public class InstanceVariableReferenced { + + private static Object example; + private String s = "yes"; + + public Object getInstance() { + if (example == null) { + example<caret> = getString(s); + } + return example + } + + private static String getString(String s) { + return new String(s); + } +}
\ No newline at end of file diff --git a/plugins/InspectionGadgets/test/com/siyeh/igfixes/threading/non_thread_safe_lazy_initialization/LocalVariableReferenced.java b/plugins/InspectionGadgets/test/com/siyeh/igfixes/threading/non_thread_safe_lazy_initialization/LocalVariableReferenced.java new file mode 100644 index 000000000000..929994a18ffe --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igfixes/threading/non_thread_safe_lazy_initialization/LocalVariableReferenced.java @@ -0,0 +1,11 @@ +public class LocalVariableReferenced { + + private static Object o; + + public static Object getInstance(int i) { + if (o == null) { + o<caret> = "" + i; + } + return o; + } +}
\ No newline at end of file diff --git a/plugins/InspectionGadgets/test/com/siyeh/igfixes/threading/non_thread_safe_lazy_initialization/NestedAssignment.java b/plugins/InspectionGadgets/test/com/siyeh/igfixes/threading/non_thread_safe_lazy_initialization/NestedAssignment.java new file mode 100644 index 000000000000..89f229fbd3f0 --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igfixes/threading/non_thread_safe_lazy_initialization/NestedAssignment.java @@ -0,0 +1,12 @@ +public class NestedAssignment { + + private static Object o; + + public static Object getInstance() { + Object local = null; + if (o == null) { + local = o<caret> = new Object(); + } + return o; + } +}
\ No newline at end of file diff --git a/plugins/InspectionGadgets/test/com/siyeh/igfixes/threading/non_thread_safe_lazy_initialization/Normal.after.java b/plugins/InspectionGadgets/test/com/siyeh/igfixes/threading/non_thread_safe_lazy_initialization/Normal.after.java new file mode 100644 index 000000000000..c4eefd2315d1 --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igfixes/threading/non_thread_safe_lazy_initialization/Normal.after.java @@ -0,0 +1,10 @@ +public class Normal { + + private static class ExampleHolder { + private static final Object example = new Object(); + } + + public static Object getInstance() { + return ExampleHolder.example + } +}
\ No newline at end of file diff --git a/plugins/InspectionGadgets/test/com/siyeh/igfixes/threading/non_thread_safe_lazy_initialization/Normal.java b/plugins/InspectionGadgets/test/com/siyeh/igfixes/threading/non_thread_safe_lazy_initialization/Normal.java new file mode 100644 index 000000000000..44587c1653bc --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igfixes/threading/non_thread_safe_lazy_initialization/Normal.java @@ -0,0 +1,10 @@ +public class Normal { + private static Object example; + + public static Object getInstance() { + if (example == null) { + example<caret> = new Object(); + } + return example + } +}
\ No newline at end of file diff --git a/plugins/InspectionGadgets/test/com/siyeh/igfixes/threading/non_thread_safe_lazy_initialization/StaticVariableReferenced.after.java b/plugins/InspectionGadgets/test/com/siyeh/igfixes/threading/non_thread_safe_lazy_initialization/StaticVariableReferenced.after.java new file mode 100644 index 000000000000..0120971b7081 --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igfixes/threading/non_thread_safe_lazy_initialization/StaticVariableReferenced.after.java @@ -0,0 +1,16 @@ +public class StaticVariableReferenced { + + private static String s = "yes"; + + private static class ExampleHolder { + private static final Object example = getString(s); + } + + public static Object getInstance() { + return ExampleHolder.example + } + + private static String getString(String s) { + return new String(s); + } +}
\ No newline at end of file diff --git a/plugins/InspectionGadgets/test/com/siyeh/igfixes/threading/non_thread_safe_lazy_initialization/StaticVariableReferenced.java b/plugins/InspectionGadgets/test/com/siyeh/igfixes/threading/non_thread_safe_lazy_initialization/StaticVariableReferenced.java new file mode 100644 index 000000000000..a13113785c0d --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igfixes/threading/non_thread_safe_lazy_initialization/StaticVariableReferenced.java @@ -0,0 +1,16 @@ +public class StaticVariableReferenced { + + private static Object example; + private static String s = "yes"; + + public static Object getInstance() { + if (example == null) { + example<caret> = getString(s); + } + return example + } + + private static String getString(String s) { + return new String(s); + } +}
\ No newline at end of file diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/bugs/ResultSetIndexZeroInspection.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/bugs/ResultSetIndexZeroInspection.java deleted file mode 100644 index cbb5e0eaf8a8..000000000000 --- a/plugins/InspectionGadgets/test/com/siyeh/igtest/bugs/ResultSetIndexZeroInspection.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.siyeh.igtest.bugs; - -import java.sql.ResultSet; -import java.sql.SQLException; - -public class ResultSetIndexZeroInspection { - private static final int COLUMN_INDEX = 0; - - public void foo(ResultSet resultSet) throws SQLException { - resultSet.getInt(0); - resultSet.getInt(COLUMN_INDEX); - resultSet.getInt(3); - } -} diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/bugs/result_set_index_zero/ResultSetIndexZero.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/bugs/result_set_index_zero/ResultSetIndexZero.java new file mode 100644 index 000000000000..de087faef79e --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/bugs/result_set_index_zero/ResultSetIndexZero.java @@ -0,0 +1,21 @@ +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; + +public class ResultSetIndexZero { + private static final int COLUMN_INDEX = 0; + + public void foo(ResultSet resultSet) throws SQLException { + resultSet.getInt(<warning descr="Use of index '0' in JDBC ResultSet">0</warning>); + resultSet.getInt(<warning descr="Use of index '0' in JDBC ResultSet">COLUMN_INDEX</warning>); + resultSet.getInt(3); + } + + void foo(PreparedStatement ps) throws SQLException { + ps.setQueryTimeout(0); + ps.setFetchDirection(0); + ps.setFetchSize(0); + ps.setMaxFieldSize(0); + ps.setMaxRows(0); + } +} diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/bugs/string_equality/StringEquality.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/bugs/string_equality/StringEquality.java index d32c969b9261..17c4b5127c3b 100644 --- a/plugins/InspectionGadgets/test/com/siyeh/igtest/bugs/string_equality/StringEquality.java +++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/bugs/string_equality/StringEquality.java @@ -4,7 +4,11 @@ public class StringEquality { void foo(String s, String t) { final boolean a = s == null; - final boolean b = t == s; - final boolean c = t == + final boolean b = t <warning descr="String values are compared using '==', not 'equals()'">==</warning> s; + final boolean c = t ==<EOLError descr="Expression expected"></EOLError><EOLError descr="';' expected"></EOLError> + } + + void notEquals(String s, String t) { + boolean a = s <warning descr="String values are compared using '!=', not 'equals()'">!=</warning> t; } } diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/bugs/string_equality/expected.xml b/plugins/InspectionGadgets/test/com/siyeh/igtest/bugs/string_equality/expected.xml deleted file mode 100644 index 0eb665c7cff4..000000000000 --- a/plugins/InspectionGadgets/test/com/siyeh/igtest/bugs/string_equality/expected.xml +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<problems> - <problem> - <file>StringEquality.java</file> - <line>7</line> - <problem_class severity="WARNING" attribute_key="WARNING_ATTRIBUTES">String comparison using '==', instead of 'equals()'</problem_class> - <description>String values are compared using <code>==</code>, not '.equals()' #loc</description> - </problem> -</problems>
\ No newline at end of file diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/confusing/NestedMethodCallInspection.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/confusing/NestedMethodCallInspection.java deleted file mode 100644 index e700bc5c683f..000000000000 --- a/plugins/InspectionGadgets/test/com/siyeh/igtest/confusing/NestedMethodCallInspection.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.siyeh.igtest.confusing; - -import java.util.ArrayList; - -public class NestedMethodCallInspection extends ArrayList{ - private int baz = bar(foo()); - - public NestedMethodCallInspection(int initialCapacity) { - super(Math.abs(initialCapacity)); - } - - public NestedMethodCallInspection() { - this(Math.abs(3)); - } - - public int foo() - { - return 3; - } - public int bar(int val) - { - return 3+val; - } - - public int baz() - { - bar(Math.abs(3)); - return bar(foo()); - } - - public int barangus() - { - return bar(foo()+3); - } -} diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/initialization/double_brace_initialization/DoubleBraceInitialization.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/initialization/double_brace_initialization/DoubleBraceInitialization.java new file mode 100644 index 000000000000..f216f84e2f67 --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/initialization/double_brace_initialization/DoubleBraceInitialization.java @@ -0,0 +1,32 @@ +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +public class DoubleBraceInitialization { + + void foo() { + final HashMap map = new <warning descr="Double brace initialization">HashMap</warning>() {{ + // comment + put("a", "b"); + put("a", "b"); + put("a", "b"); + put("a", "b"); + }}; + } + + static final List<Integer> list = new <warning descr="Double brace initialization">ArrayList<Integer></warning>() {{ + for (int i = 0; i < 10; i++) { + add(i); + } + }}; + + void m(A a) {} + void n() { + m(new <warning descr="Double brace initialization">A</warning>() {{ setI(1); setJ(2); }}); + } + + class A { + void setI(int i) {} + void setJ(int j) {} + } +}
\ No newline at end of file diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/initialization/non_thread_safe_lazy_initialization/NonThreadSafeLazyInitialization.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/initialization/non_thread_safe_lazy_initialization/NonThreadSafeLazyInitialization.java new file mode 100644 index 000000000000..9b5987966ca6 --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/initialization/non_thread_safe_lazy_initialization/NonThreadSafeLazyInitialization.java @@ -0,0 +1,64 @@ +package com.siyeh.igtest.threading; + +public class NonThreadSafeLazyInitialization { + private static Object foo; + private Object instance; + + public Object getInstance() { + if (instance == null) { + instance = new Object(); + } + return instance; + } + + static + { + if (foo == null) { + foo = new Object(); + } + + } + + { + if (foo == null) { + <warning descr="Lazy initialization of 'static' field 'foo' is not thread-safe">foo</warning> = new Object(); + } + + } + + public void instMethod() { + if (foo == null) { + <warning descr="Lazy initialization of 'static' field 'foo' is not thread-safe">foo</warning> = new Object(); + } + } + + public static void staticMethod() { + if (foo == null) { + <warning descr="Lazy initialization of 'static' field 'foo' is not thread-safe">foo</warning> = new Object(); + } + } + + public void lockedInstMethod() { + synchronized (NonThreadSafeLazyInitialization.class) { + if (foo == null) { + foo = new Object(); + } + } + } + + private static String example = null; + + public Object getInstance2() { + if (foo == null) { + while (true) { + foo = ""; + } + } + return foo; + } + + public Object getInstance3() { + if (foo == null) <warning descr="Lazy initialization of 'static' field 'foo' is not thread-safe">foo</warning> = ""; + return foo; + } +} 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 diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/memory/inner_class_may_be_static/InnerClassMayBeStatic.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/memory/inner_class_may_be_static/InnerClassMayBeStatic.java new file mode 100644 index 000000000000..dc0b97443b4e --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/memory/inner_class_may_be_static/InnerClassMayBeStatic.java @@ -0,0 +1,140 @@ +package com.siyeh.igtest.memory.inner_class_may_be_static; + +import javax.swing.*; + +public class InnerClassMayBeStatic { + class <warning descr="Inner class 'Nested' may be 'static'">Nested</warning> { + public void foo() { + bar("InnerClassMayBeStaticInspection.this"); + } + + private void bar(String string) { + } + } +} + +class IDEADEV_5513 { + + private static class Inner { + + private boolean b = false; + + private class InnerInner { + + public void foo() { + b = true; + } + } + } +} + +class C extends JComponent { + private class I { + public void foo() { + SwingUtilities.invokeLater(new Runnable() { + public void run() { + repaint(); + } + }); + } + } +} +class D { + + void foo() { + new Object() { + class Y {} + }; + } +} +class StaticInnerClass { + + private int foo; + int bar; + + public class Baz extends StaticInnerClass { + Baz() { + foo = -1; + } + } + class <warning descr="Inner class 'C' may be 'static'">C</warning> extends StaticInnerClass {{ + bar = 1; + }} +} +class SomeBeanUnitTest { + + private class <warning descr="Inner class 'BeanCreator' may be 'static'">BeanCreator</warning> { + + public BeanCreator withQuery() { + return null; + } + } +} +class Outer { + class <warning descr="Inner class 'A' may be 'static'">A</warning> { // may be static + B b; + } + class B extends A {} // may not be static + + class <warning descr="Inner class 'C' may be 'static'">C</warning> { // may be static + D b; + class D extends C {} + } + + static class E { + G.F b; + class <warning descr="Inner class 'G' may be 'static'">G</warning> { // may be static + class F extends E {} + } + } + + class <warning descr="Inner class 'H' may be 'static'">H</warning> { // may be static + J.I b; + class J { + class I extends H {} + } + } +} +class Complex { + class C { + void m() { + Complex.super.toString(); + } + } + int i; + static void n() { + } + + private class <warning descr="Inner class 'A' may be 'static'">A</warning> { + private A() { + } + } + + class <warning descr="Inner class 'B' may be 'static'">B</warning> { + } + + class <warning descr="Inner class 'F' may be 'static'">F</warning> extends Complex { + class G { + } + + { + A a = (A) null; + G g = (G) null; + new A() {}; + new B(); + + i = 10; + new E().m(); + Complex.n(); + } + + void m(A a) { + a.toString(); + } + + class E { + private void m() { + } + } + } +} diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/performance/inner_class_may_be_static/InnerClassMayBeStaticInspection.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/performance/inner_class_may_be_static/InnerClassMayBeStaticInspection.java deleted file mode 100644 index 0db367ce4757..000000000000 --- a/plugins/InspectionGadgets/test/com/siyeh/igtest/performance/inner_class_may_be_static/InnerClassMayBeStaticInspection.java +++ /dev/null @@ -1,97 +0,0 @@ -package com.siyeh.igtest.performance.inner_class_may_be_static; - -import javax.swing.*; - -public class InnerClassMayBeStaticInspection { - class Nested { - public void foo() { - bar("InnerClassMayBeStaticInspection.this"); - } - - private void bar(String string) { - } - } -} - -class IDEADEV_5513 { - - private static class Inner { - - private boolean b = false; - - private class InnerInner { - - public void foo() { - b = true; - } - } - } -} - -class C extends JComponent { - private class I { - public void foo() { - SwingUtilities.invokeLater(new Runnable() { - public void run() { - repaint(); - } - }); - } - } -} -class D { - - void foo() { - new Object() { - class Y {} - }; - } -} -class StaticInnerClass { - - private int foo; - int bar; - - public class Baz extends StaticInnerClass { - Baz() { - foo = -1; - } - } - class C extends StaticInnerClass {{ - bar = 1; - }} -} -class SomeBeanUnitTest { - - private class BeanCreator { - - public BeanCreator withQuery() { - return null; - } - } -} -class Outer { - class A { // may not be static - B b; - } - class B extends A {} // may not be static - - class C { // may be static - D b; - class D extends C {} - } - - static class E { - G.F b; - class G { // may be static - class F extends E {} - } - } - - class H { // may be static - J.I b; - class J { - class I extends H {} - } - } -} diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/performance/inner_class_may_be_static/expected.xml b/plugins/InspectionGadgets/test/com/siyeh/igtest/performance/inner_class_may_be_static/expected.xml deleted file mode 100644 index 0eb4ed32494c..000000000000 --- a/plugins/InspectionGadgets/test/com/siyeh/igtest/performance/inner_class_may_be_static/expected.xml +++ /dev/null @@ -1,44 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<problems> - <problem> - <file>InnerClassMayBeStaticInspection.java</file> - <line>6</line> - <problem_class severity="WARNING" attribute_key="WARNING_ATTRIBUTES">Inner class may be 'static'</problem_class> - <description>Inner class <code>Nested</code> may be 'static' #loc</description> - </problem> - - <problem> - <file>InnerClassMayBeStaticInspection.java</file> - <line>60</line> - <problem_class severity="WARNING" attribute_key="WARNING_ATTRIBUTES">Inner class may be 'static'</problem_class> - <description>Inner class <code>C</code> may be 'static' #loc</description> - </problem> - - <problem> - <file>InnerClassMayBeStaticInspection.java</file> - <line>66</line> - <problem_class severity="WARNING" attribute_key="WARNING_ATTRIBUTES">Inner class may be 'static'</problem_class> - <description>Inner class <code>BeanCreator</code> may be 'static' #loc</description> - </problem> - - <problem> - <file>InnerClassMayBeStaticInspection.java</file> - <line>79</line> - <problem_class severity="WARNING" attribute_key="WARNING_ATTRIBUTES">Inner class may be 'static'</problem_class> - <description>Inner class <code>C</code> may be 'static' #loc</description> - </problem> - - <problem> - <file>InnerClassMayBeStaticInspection.java</file> - <line>86</line> - <problem_class severity="WARNING" attribute_key="WARNING_ATTRIBUTES">Inner class may be 'static'</problem_class> - <description>Inner class <code>G</code> may be 'static' #loc</description> - </problem> - - <problem> - <file>InnerClassMayBeStaticInspection.java</file> - <line>91</line> - <problem_class severity="WARNING" attribute_key="WARNING_ATTRIBUTES">Inner class may be 'static'</problem_class> - <description>Inner class <code>H</code> may be 'static' #loc</description> - </problem> -</problems>
\ No newline at end of file diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/style/CStyleArrayDeclarationInspection.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/style/CStyleArrayDeclarationInspection.java deleted file mode 100644 index 00d3e0ec97d4..000000000000 --- a/plugins/InspectionGadgets/test/com/siyeh/igtest/style/CStyleArrayDeclarationInspection.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.siyeh.igtest.style; - -public class CStyleArrayDeclarationInspection -{ - private int[] m_foo; - private int m_bar[]; - - public CStyleArrayDeclarationInspection(int[] bar, int[] foo) - { - m_bar = bar; - m_foo = foo; - for(int i = 0; i < bar.length; i++) - { - m_foo[i] = m_bar[i]; - } - - } - - public void foo() - { - final int foo[] = new int[3]; - final int[] bar = new int[3]; - - for(int i = 0; i < bar.length; i++) - { - foo[i] = bar[i]; - } - } - - public void bar(int foo[], int[] bar) - { - - } -} diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/style/cstyle_array_declaration/CStyleArrayDeclaration.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/style/cstyle_array_declaration/CStyleArrayDeclaration.java new file mode 100644 index 000000000000..8a01835a2106 --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/style/cstyle_array_declaration/CStyleArrayDeclaration.java @@ -0,0 +1,38 @@ +package com.siyeh.igtest.style; + +public class CStyleArrayDeclaration +{ + private int[] m_foo; + private int <warning descr="C-style array declaration of field 'm_bar'">m_bar</warning>[]; + + public CStyleArrayDeclaration(int[] bar, int[] foo) + { + m_bar = bar; + m_foo = foo; + for(int i = 0; i < bar.length; i++) + { + m_foo[i] = m_bar[i]; + } + + } + + public void foo() + { + final int <warning descr="C-style array declaration of local variable 'foo'">foo</warning>[] = new int[3]; + final int[] bar = new int[3]; + + for(int i = 0; i < bar.length; i++) + { + foo[i] = bar[i]; + } + } + + public void bar(int <warning descr="C-style array declaration of parameter 'foo'">foo</warning>[], int[] bar) + { + + } + + String <warning descr="C-style array declaration of the return type of method 'ohGod()'">ohGod</warning>(String[] a)[] { + return a; + } +} diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/style/nested_method_call/NestedMethodCall.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/style/nested_method_call/NestedMethodCall.java new file mode 100644 index 000000000000..2548443e805b --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/style/nested_method_call/NestedMethodCall.java @@ -0,0 +1,43 @@ + +import java.util.ArrayList; + +public class NestedMethodCall extends ArrayList{ + private int baz = bar(foo()); + + public NestedMethodCall(int initialCapacity) { + super(Math.abs(initialCapacity)); + } + + public NestedMethodCall() { + this(Math.abs(3)); + } + + public int foo() + { + return 3; + } + public int bar(int val) + { + return 3+val; + } + + public int baz() + { + bar(Math.abs(3)); + return bar(<warning descr="Nested method call 'foo()'">foo</warning>()); + } + + public int barangus() + { + return bar(<warning descr="Nested method call 'foo()'">foo</warning>()+3); + } + + private int value = 1; + public int getValue() { + return value; + } + + public int apex() { + return bar(getValue()); + } +} diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/threading/NonThreadSafeLazyInitializationInspection.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/threading/NonThreadSafeLazyInitializationInspection.java deleted file mode 100644 index 20d62f94cb4e..000000000000 --- a/plugins/InspectionGadgets/test/com/siyeh/igtest/threading/NonThreadSafeLazyInitializationInspection.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.siyeh.igtest.threading; - -public class NonThreadSafeLazyInitializationInspection { - private static Object foo; - - static - { - if (foo == null) { - foo = new Object(); - } - - } - - { - if (foo == null) { - foo = new Object(); - } - - } - - public void instMethod() { - if (foo == null) { - foo = new Object(); - } - } - - public void lockedInstMethod() { - synchronized (NonThreadSafeLazyInitializationInspection.class) { - if (foo == null) { - foo = new Object(); - } - } - } -} diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/visibility/ambiguous/AmbiguousMethodCall.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/visibility/ambiguous/AmbiguousMethodCall.java index 1d1eb0ad0369..20c181077969 100644 --- a/plugins/InspectionGadgets/test/com/siyeh/igtest/visibility/ambiguous/AmbiguousMethodCall.java +++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/visibility/ambiguous/AmbiguousMethodCall.java @@ -8,7 +8,7 @@ public class AmbiguousMethodCall { class Inner extends Y { { - m(); // ambiguous + <warning descr="Call to method 'm()' from superclass 'Y' looks like call to method from class 'X'">m</warning>(); // ambiguous } } } diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/visibility/ambiguous/expected.xml b/plugins/InspectionGadgets/test/com/siyeh/igtest/visibility/ambiguous/expected.xml deleted file mode 100644 index a0ee7b7d2789..000000000000 --- a/plugins/InspectionGadgets/test/com/siyeh/igtest/visibility/ambiguous/expected.xml +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<problems> - <problem> - <file>AmbiguousMethodCall.java</file> - <line>11</line> - <problem_class severity="WARNING" attribute_key="WARNING_ATTRIBUTES">Inherited method called which hides method in outer class</problem_class> - <description>Method <code>m()</code> from super class 'Y' called, when method from class 'X' might have been expected #loc</description> - </problem> - -</problems>
\ No newline at end of file diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/visibility/ambiguous_field_access/AmbiguousFieldAccess.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/visibility/ambiguous_field_access/AmbiguousFieldAccess.java index 3292bfd60a0b..3090a6415135 100644 --- a/plugins/InspectionGadgets/test/com/siyeh/igtest/visibility/ambiguous_field_access/AmbiguousFieldAccess.java +++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/visibility/ambiguous_field_access/AmbiguousFieldAccess.java @@ -11,11 +11,26 @@ class Bar { void foo(java.util.List<String> name) { for(String name1: name) { doSome(new Foo() {{ - set(name); + set(<warning descr="Access of field 'name' from superclass 'Foo' looks like access of parameter">name</warning>); }}); } } + void foo() { + String name = "name"; + new Foo() {{ + System.out.println(<warning descr="Access of field 'name' from superclass 'Foo' looks like access of local variable">name</warning>); + }}; + } + + void bar() { + new Foo() { + void foo() { + System.out.println(<warning descr="Access of field 'name' from superclass 'Foo' looks access of field from surrounding class">name</warning>); + } + }; + } + private void doSome(Foo foo) { } }
\ No newline at end of file diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/visibility/ambiguous_field_access/expected.xml b/plugins/InspectionGadgets/test/com/siyeh/igtest/visibility/ambiguous_field_access/expected.xml deleted file mode 100644 index 9929fd781f8b..000000000000 --- a/plugins/InspectionGadgets/test/com/siyeh/igtest/visibility/ambiguous_field_access/expected.xml +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<problems> - <problem> - <file>AmbiguousFieldAccess.java</file> - <line>14</line> - <problem_class severity="WARNING" attribute_key="WARNING_ATTRIBUTES">Inherited field accessed while local variable, parameter or field access from surrounding class might be expected</problem_class> - <description>Field <code>name</code> from super class 'Foo' accessed, while parameter access might be expected #loc</description> - </problem> -</problems>
\ No newline at end of file |