diff --git a/java/java-tests/testData/compileServer/incremental/annotations/classAsArgument.log b/java/java-tests/testData/compileServer/incremental/annotations/classAsArgument.log new file mode 100644 index 000000000000..a4e99b222775 --- /dev/null +++ b/java/java-tests/testData/compileServer/incremental/annotations/classAsArgument.log @@ -0,0 +1,12 @@ +Cleaning output files: +out/production/classAsArgument/A.class +End of files +Compiling files: +src/A.java +End of files +Cleaning output files: +out/production/classAsArgument/Annotated.class +End of files +Compiling files: +src/Annotated.java +End of files diff --git a/java/java-tests/testData/compileServer/incremental/annotations/classAsArgument/.idea/.name b/java/java-tests/testData/compileServer/incremental/annotations/classAsArgument/.idea/.name new file mode 100644 index 000000000000..1ad8637be091 --- /dev/null +++ b/java/java-tests/testData/compileServer/incremental/annotations/classAsArgument/.idea/.name @@ -0,0 +1 @@ +classAsArgument \ No newline at end of file diff --git a/java/java-tests/testData/compileServer/incremental/annotations/classAsArgument/.idea/ant.xml b/java/java-tests/testData/compileServer/incremental/annotations/classAsArgument/.idea/ant.xml new file mode 100644 index 000000000000..2581ca3fe84c --- /dev/null +++ b/java/java-tests/testData/compileServer/incremental/annotations/classAsArgument/.idea/ant.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/java/java-tests/testData/compileServer/incremental/annotations/classAsArgument/.idea/compiler.xml b/java/java-tests/testData/compileServer/incremental/annotations/classAsArgument/.idea/compiler.xml new file mode 100644 index 000000000000..a1b41c52c724 --- /dev/null +++ b/java/java-tests/testData/compileServer/incremental/annotations/classAsArgument/.idea/compiler.xml @@ -0,0 +1,21 @@ + + + + + + diff --git a/java/java-tests/testData/compileServer/incremental/annotations/classAsArgument/.idea/copyright/profiles_settings.xml b/java/java-tests/testData/compileServer/incremental/annotations/classAsArgument/.idea/copyright/profiles_settings.xml new file mode 100644 index 000000000000..3572571ad83c --- /dev/null +++ b/java/java-tests/testData/compileServer/incremental/annotations/classAsArgument/.idea/copyright/profiles_settings.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/java/java-tests/testData/compileServer/incremental/annotations/classAsArgument/.idea/encodings.xml b/java/java-tests/testData/compileServer/incremental/annotations/classAsArgument/.idea/encodings.xml new file mode 100644 index 000000000000..e206d70d8595 --- /dev/null +++ b/java/java-tests/testData/compileServer/incremental/annotations/classAsArgument/.idea/encodings.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/java/java-tests/testData/compileServer/incremental/annotations/classAsArgument/.idea/misc.xml b/java/java-tests/testData/compileServer/incremental/annotations/classAsArgument/.idea/misc.xml new file mode 100644 index 000000000000..492d8ee45ce4 --- /dev/null +++ b/java/java-tests/testData/compileServer/incremental/annotations/classAsArgument/.idea/misc.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + IDEA jdk + + + + + + + + + diff --git a/java/java-tests/testData/compileServer/incremental/annotations/classAsArgument/.idea/modules.xml b/java/java-tests/testData/compileServer/incremental/annotations/classAsArgument/.idea/modules.xml new file mode 100644 index 000000000000..c4d3af7bae81 --- /dev/null +++ b/java/java-tests/testData/compileServer/incremental/annotations/classAsArgument/.idea/modules.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/java/java-tests/testData/compileServer/incremental/annotations/classAsArgument/.idea/scopes/scope_settings.xml b/java/java-tests/testData/compileServer/incremental/annotations/classAsArgument/.idea/scopes/scope_settings.xml new file mode 100644 index 000000000000..922003b8433b --- /dev/null +++ b/java/java-tests/testData/compileServer/incremental/annotations/classAsArgument/.idea/scopes/scope_settings.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/java/java-tests/testData/compileServer/incremental/annotations/classAsArgument/.idea/uiDesigner.xml b/java/java-tests/testData/compileServer/incremental/annotations/classAsArgument/.idea/uiDesigner.xml new file mode 100644 index 000000000000..3b0002030884 --- /dev/null +++ b/java/java-tests/testData/compileServer/incremental/annotations/classAsArgument/.idea/uiDesigner.xml @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/java/java-tests/testData/compileServer/incremental/annotations/classAsArgument/.idea/vcs.xml b/java/java-tests/testData/compileServer/incremental/annotations/classAsArgument/.idea/vcs.xml new file mode 100644 index 000000000000..def6a6a18457 --- /dev/null +++ b/java/java-tests/testData/compileServer/incremental/annotations/classAsArgument/.idea/vcs.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/java/java-tests/testData/compileServer/incremental/annotations/classAsArgument/.idea/workspace.xml b/java/java-tests/testData/compileServer/incremental/annotations/classAsArgument/.idea/workspace.xml new file mode 100644 index 000000000000..e3892d54faff --- /dev/null +++ b/java/java-tests/testData/compileServer/incremental/annotations/classAsArgument/.idea/workspace.xml @@ -0,0 +1,431 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + localhost + 5050 + + + + + + 1336138927353 + 1336138927353 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/java/java-tests/testData/compileServer/incremental/annotations/classAsArgument/A.java.new b/java/java-tests/testData/compileServer/incremental/annotations/classAsArgument/A.java.new new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/java/java-tests/testData/compileServer/incremental/annotations/classAsArgument/classAsArgument.iml b/java/java-tests/testData/compileServer/incremental/annotations/classAsArgument/classAsArgument.iml new file mode 100644 index 000000000000..60a321a1ac4d --- /dev/null +++ b/java/java-tests/testData/compileServer/incremental/annotations/classAsArgument/classAsArgument.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/java/java-tests/testData/compileServer/incremental/annotations/classAsArgument/src/A.java b/java/java-tests/testData/compileServer/incremental/annotations/classAsArgument/src/A.java new file mode 100644 index 000000000000..655e62ac6607 --- /dev/null +++ b/java/java-tests/testData/compileServer/incremental/annotations/classAsArgument/src/A.java @@ -0,0 +1,9 @@ +/** + * Created with IntelliJ IDEA. + * User: db + * Date: 04.05.12 + * Time: 17:42 + * To change this template use File | Settings | File Templates. + */ +public class A { +} diff --git a/java/java-tests/testData/compileServer/incremental/annotations/classAsArgument/src/Ann.java b/java/java-tests/testData/compileServer/incremental/annotations/classAsArgument/src/Ann.java new file mode 100644 index 000000000000..bec2f9e97ecd --- /dev/null +++ b/java/java-tests/testData/compileServer/incremental/annotations/classAsArgument/src/Ann.java @@ -0,0 +1,13 @@ +/** + * Created with IntelliJ IDEA. + * User: db + * Date: 04.05.12 + * Time: 17:42 + * To change this template use File | Settings | File Templates. + */ +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +@Retention(RetentionPolicy.CLASS) public @interface Ann { + Class[] value(); +} \ No newline at end of file diff --git a/java/java-tests/testData/compileServer/incremental/annotations/classAsArgument/src/Annotated.java b/java/java-tests/testData/compileServer/incremental/annotations/classAsArgument/src/Annotated.java new file mode 100644 index 000000000000..5c49f5d0ba47 --- /dev/null +++ b/java/java-tests/testData/compileServer/incremental/annotations/classAsArgument/src/Annotated.java @@ -0,0 +1,10 @@ +/** + * Created with IntelliJ IDEA. + * User: db + * Date: 04.05.12 + * Time: 17:43 + * To change this template use File | Settings | File Templates. + */ +@Ann({A.class}) +public class Annotated { +} diff --git a/jps/jps-builders/testSrc/org/jetbrains/ether/AnnotationTest.java b/jps/jps-builders/testSrc/org/jetbrains/ether/AnnotationTest.java index 638c570e7b5a..42815470cae9 100644 --- a/jps/jps-builders/testSrc/org/jetbrains/ether/AnnotationTest.java +++ b/jps/jps-builders/testSrc/org/jetbrains/ether/AnnotationTest.java @@ -56,6 +56,10 @@ public class AnnotationTest extends IncrementalTestCase { doTest(); } + public void testClassAsArgument() throws Exception { + doTest(); + } + /* Discussion is needed --- unnecessarily conservative public void testMetaAnnotationChanged() throws Exception { doTest(); diff --git a/jps/model/src/org/jetbrains/ether/dependencyView/ClassfileAnalyzer.java b/jps/model/src/org/jetbrains/ether/dependencyView/ClassfileAnalyzer.java index fb1a9ee7eb5c..f45e8fa2e304 100644 --- a/jps/model/src/org/jetbrains/ether/dependencyView/ClassfileAnalyzer.java +++ b/jps/model/src/org/jetbrains/ether/dependencyView/ClassfileAnalyzer.java @@ -154,6 +154,14 @@ class ClassfileAnalyzer { final String methodDescr = getMethodDescr(value); final int methodName = context.get(name); + if (value instanceof Type) { + final String className = ((Type)value).getClassName(); + + if (className != null) { + usages.addUsage(residence, UsageRepr.createClassUsage(context, context.get(className))); + } + } + usages.addUsage(residence, UsageRepr.createMethodUsage(context, methodName, type.className, methodDescr)); usages.addUsage(residence, UsageRepr.createMetaMethodUsage(context, methodName, type.className, methodDescr));