java.lang.annotation.Repeatable is deprecated + test in a new group: diagnostic tests with Java 8.
This commit is contained in:
+42
@@ -0,0 +1,42 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2015 JetBrains s.r.o.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.checkers;
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles;
|
||||||
|
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment;
|
||||||
|
import org.jetbrains.kotlin.test.ConfigurationKind;
|
||||||
|
import org.jetbrains.kotlin.test.JetTestUtils;
|
||||||
|
import org.jetbrains.kotlin.test.TestJdkKind;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
|
public abstract class AbstractJetDiagnosticsWithFullJdkTest extends AbstractJetDiagnosticsTest {
|
||||||
|
@Override
|
||||||
|
protected KotlinCoreEnvironment createEnvironment() {
|
||||||
|
File javaFilesDir = createJavaFilesDir();
|
||||||
|
return KotlinCoreEnvironment.createForTests(getTestRootDisposable(),
|
||||||
|
JetTestUtils.compilerConfigurationForTests(
|
||||||
|
ConfigurationKind.ALL,
|
||||||
|
TestJdkKind.FULL_JDK,
|
||||||
|
Arrays.asList(JetTestUtils.getAnnotationsJar()),
|
||||||
|
Arrays.asList(javaFilesDir)
|
||||||
|
),
|
||||||
|
EnvironmentConfigFiles.JVM_CONFIG_FILES);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
+52
@@ -0,0 +1,52 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2015 JetBrains s.r.o.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.checkers;
|
||||||
|
|
||||||
|
import com.intellij.testFramework.TestDataPath;
|
||||||
|
import org.jetbrains.kotlin.test.JUnit3RunnerWithInners;
|
||||||
|
import org.jetbrains.kotlin.test.JetTestUtils;
|
||||||
|
import org.jetbrains.kotlin.test.TestMetadata;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
|
/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.TestsPackage}. DO NOT MODIFY MANUALLY */
|
||||||
|
@SuppressWarnings("all")
|
||||||
|
@TestMetadata("compiler/testData/diagnostics/testsWithJava8")
|
||||||
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
|
public class JetDiagnosticsWithJava8TestGenerated extends AbstractJetDiagnosticsWithFullJdkTest {
|
||||||
|
public void testAllFilesPresentInTestsWithJava8() throws Exception {
|
||||||
|
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/diagnostics/testsWithJava8"), Pattern.compile("^(.+)\\.kt$"), true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("compiler/testData/diagnostics/testsWithJava8/annotations")
|
||||||
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
|
public static class Annotations extends AbstractJetDiagnosticsWithFullJdkTest {
|
||||||
|
public void testAllFilesPresentInAnnotations() throws Exception {
|
||||||
|
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/diagnostics/testsWithJava8/annotations"), Pattern.compile("^(.+)\\.kt$"), true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("javarepeatable.kt")
|
||||||
|
public void testJavarepeatable() throws Exception {
|
||||||
|
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/testsWithJava8/annotations/javarepeatable.kt");
|
||||||
|
doTest(fileName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
import java.lang.annotation.Repeatable
|
||||||
|
|
||||||
|
<!DEPRECATED_JAVA_ANNOTATION!>@java.lang.annotation.Repeatable(Annotations::class)<!> annotation class RepAnn
|
||||||
|
|
||||||
|
<!DEPRECATED_JAVA_ANNOTATION!>Repeatable(OtherAnnotations::class)<!> annotation class OtherAnn
|
||||||
|
|
||||||
|
annotation class Annotations(vararg val value: RepAnn)
|
||||||
|
|
||||||
|
annotation class OtherAnnotations(vararg val value: OtherAnn)
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
package
|
||||||
|
|
||||||
|
kotlin.annotation.annotation() internal final class Annotations : kotlin.Annotation {
|
||||||
|
public constructor Annotations(/*0*/ vararg value: RepAnn /*kotlin.Array<out RepAnn>*/)
|
||||||
|
internal final val value: kotlin.Array<out RepAnn>
|
||||||
|
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||||
|
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||||
|
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||||
|
}
|
||||||
|
|
||||||
|
java.lang.annotation.Repeatable(value = OtherAnnotations::class) kotlin.annotation.annotation() internal final class OtherAnn : kotlin.Annotation {
|
||||||
|
public constructor OtherAnn()
|
||||||
|
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||||
|
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||||
|
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||||
|
}
|
||||||
|
|
||||||
|
kotlin.annotation.annotation() internal final class OtherAnnotations : kotlin.Annotation {
|
||||||
|
public constructor OtherAnnotations(/*0*/ vararg value: OtherAnn /*kotlin.Array<out OtherAnn>*/)
|
||||||
|
internal final val value: kotlin.Array<out OtherAnn>
|
||||||
|
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||||
|
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||||
|
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||||
|
}
|
||||||
|
|
||||||
|
java.lang.annotation.Repeatable(value = Annotations::class) kotlin.annotation.annotation() internal final class RepAnn : kotlin.Annotation {
|
||||||
|
public constructor RepAnn()
|
||||||
|
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||||
|
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||||
|
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||||
|
}
|
||||||
+42
@@ -0,0 +1,42 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2015 JetBrains s.r.o.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.checkers;
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles;
|
||||||
|
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment;
|
||||||
|
import org.jetbrains.kotlin.test.ConfigurationKind;
|
||||||
|
import org.jetbrains.kotlin.test.JetTestUtils;
|
||||||
|
import org.jetbrains.kotlin.test.TestJdkKind;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
|
public abstract class AbstractJetDiagnosticsWithFullJdkTest extends AbstractJetDiagnosticsTest {
|
||||||
|
@Override
|
||||||
|
protected KotlinCoreEnvironment createEnvironment() {
|
||||||
|
File javaFilesDir = createJavaFilesDir();
|
||||||
|
return KotlinCoreEnvironment.createForTests(getTestRootDisposable(),
|
||||||
|
JetTestUtils.compilerConfigurationForTests(
|
||||||
|
ConfigurationKind.ALL,
|
||||||
|
TestJdkKind.FULL_JDK,
|
||||||
|
Arrays.asList(JetTestUtils.getAnnotationsJar()),
|
||||||
|
Arrays.asList(javaFilesDir)
|
||||||
|
),
|
||||||
|
EnvironmentConfigFiles.JVM_CONFIG_FILES);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
+4
-1
@@ -49,6 +49,8 @@ public object JavaAnnotationMapper {
|
|||||||
private val javaTargetFqName = FqName(javaClass<Target>().canonicalName)
|
private val javaTargetFqName = FqName(javaClass<Target>().canonicalName)
|
||||||
private val javaRetentionFqName = FqName(javaClass<Retention>().canonicalName)
|
private val javaRetentionFqName = FqName(javaClass<Retention>().canonicalName)
|
||||||
private val javaDeprecatedFqName = FqName(javaClass<Deprecated>().canonicalName)
|
private val javaDeprecatedFqName = FqName(javaClass<Deprecated>().canonicalName)
|
||||||
|
// Java8-specific thing
|
||||||
|
private val javaRepeatableFqName = FqName("java.lang.annotation.Repeatable")
|
||||||
|
|
||||||
public fun mapJavaAnnotation(annotation: JavaAnnotation, c: LazyJavaResolverContext): AnnotationDescriptor? =
|
public fun mapJavaAnnotation(annotation: JavaAnnotation, c: LazyJavaResolverContext): AnnotationDescriptor? =
|
||||||
when (annotation.classId) {
|
when (annotation.classId) {
|
||||||
@@ -66,7 +68,8 @@ public object JavaAnnotationMapper {
|
|||||||
public val javaToKotlinNameMap: Map<FqName, FqName> =
|
public val javaToKotlinNameMap: Map<FqName, FqName> =
|
||||||
mapOf(javaTargetFqName to KotlinBuiltIns.FQ_NAMES.target,
|
mapOf(javaTargetFqName to KotlinBuiltIns.FQ_NAMES.target,
|
||||||
javaRetentionFqName to KotlinBuiltIns.FQ_NAMES.annotation,
|
javaRetentionFqName to KotlinBuiltIns.FQ_NAMES.annotation,
|
||||||
javaDeprecatedFqName to KotlinBuiltIns.FQ_NAMES.deprecated)
|
javaDeprecatedFqName to KotlinBuiltIns.FQ_NAMES.deprecated,
|
||||||
|
javaRepeatableFqName to KotlinBuiltIns.FQ_NAMES.annotation)
|
||||||
}
|
}
|
||||||
|
|
||||||
abstract class AbstractJavaAnnotationDescriptor(
|
abstract class AbstractJavaAnnotationDescriptor(
|
||||||
|
|||||||
@@ -320,6 +320,9 @@ fun main(args: Array<String>) {
|
|||||||
testClass(javaClass<AbstractBlackBoxCodegenTest>(), "BlackBoxWithJava8CodegenTestGenerated") {
|
testClass(javaClass<AbstractBlackBoxCodegenTest>(), "BlackBoxWithJava8CodegenTestGenerated") {
|
||||||
model("codegen/java8/boxWithJava", testMethod = "doTestWithJava", extension = null, recursive = true, excludeParentDirs = true)
|
model("codegen/java8/boxWithJava", testMethod = "doTestWithJava", extension = null, recursive = true, excludeParentDirs = true)
|
||||||
}
|
}
|
||||||
|
testClass(javaClass<AbstractJetDiagnosticsWithFullJdkTest>(), "JetDiagnosticsWithJava8TestGenerated") {
|
||||||
|
model("diagnostics/testsWithJava8")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user