From 314b1e371ba081403ef7d2cae9eb2d17316ec378 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Fri, 17 Jan 2014 13:13:50 +0400 Subject: [PATCH] Test for the case when annotation arguments contain null in Java This is an error in Java, but it may be present in the source by mistake --- .../loadJava/sourceJava/NullInAnnotation.java | 11 +++++++++++ .../loadJava/sourceJava/NullInAnnotation.txt | 13 +++++++++++++ .../jet/jvm/compiler/LoadJavaTestGenerated.java | 5 +++++ 3 files changed, 29 insertions(+) create mode 100644 compiler/testData/loadJava/sourceJava/NullInAnnotation.java create mode 100644 compiler/testData/loadJava/sourceJava/NullInAnnotation.txt diff --git a/compiler/testData/loadJava/sourceJava/NullInAnnotation.java b/compiler/testData/loadJava/sourceJava/NullInAnnotation.java new file mode 100644 index 00000000000..8f6a08bb995 --- /dev/null +++ b/compiler/testData/loadJava/sourceJava/NullInAnnotation.java @@ -0,0 +1,11 @@ +package test; + +public interface NullInAnnotation { + @interface Ann { + String a(); + String[] b(); + } + + @Ann(a = null, b = {null}) + void foo(); +} \ No newline at end of file diff --git a/compiler/testData/loadJava/sourceJava/NullInAnnotation.txt b/compiler/testData/loadJava/sourceJava/NullInAnnotation.txt new file mode 100644 index 00000000000..451691a6ad0 --- /dev/null +++ b/compiler/testData/loadJava/sourceJava/NullInAnnotation.txt @@ -0,0 +1,13 @@ +package test + +public /*synthesized*/ fun NullInAnnotation(/*0*/ function: () -> jet.Unit): test.NullInAnnotation + +public trait NullInAnnotation : java.lang.Object { + test.NullInAnnotation.Ann(a = null: jet.Nothing?, b = {null}: jet.Array) public abstract fun foo(): jet.Unit + + public final annotation class Ann : jet.Annotation { + public constructor Ann(/*0*/ a: jet.String, /*1*/ vararg b: jet.String /*jet.Array*/) + public abstract fun a(): jet.String + public abstract fun b(): jet.Array + } +} diff --git a/compiler/tests/org/jetbrains/jet/jvm/compiler/LoadJavaTestGenerated.java b/compiler/tests/org/jetbrains/jet/jvm/compiler/LoadJavaTestGenerated.java index 3d03e6a7fc7..d948204cb51 100644 --- a/compiler/tests/org/jetbrains/jet/jvm/compiler/LoadJavaTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/jvm/compiler/LoadJavaTestGenerated.java @@ -3109,6 +3109,11 @@ public class LoadJavaTestGenerated extends AbstractLoadJavaTest { doTestSourceJava("compiler/testData/loadJava/sourceJava/ErrorTypes.java"); } + @TestMetadata("NullInAnnotation.java") + public void testNullInAnnotation() throws Exception { + doTestSourceJava("compiler/testData/loadJava/sourceJava/NullInAnnotation.java"); + } + @TestMetadata("ReturnInnerSubclassOfSupersInner.java") public void testReturnInnerSubclassOfSupersInner() throws Exception { doTestSourceJava("compiler/testData/loadJava/sourceJava/ReturnInnerSubclassOfSupersInner.java");