diff --git a/compiler/testData/loadJava/compiledJavaCompareWithKotlin/mutability/LoadIterable.kt b/compiler/testData/loadJava/compiledJavaCompareWithKotlin/mutability/LoadIterable.kt index 88d32c0a381..d91b74d30d3 100644 --- a/compiler/testData/loadJava/compiledJavaCompareWithKotlin/mutability/LoadIterable.kt +++ b/compiler/testData/loadJava/compiledJavaCompareWithKotlin/mutability/LoadIterable.kt @@ -1,9 +1,13 @@ package test -public trait LoadIterable : java.lang.Object { - public fun getIterable(): MutableIterable? - public fun setIterable(p0: MutableIterable?) +import org.jetbrains.annotations.* +public trait LoadIterable : java.lang.Object { + Mutable + public fun getIterable(): MutableIterable? + public fun setIterable([Mutable] p0: MutableIterable?) + + ReadOnly public fun getReadOnlyIterable(): Iterable? - public fun setReadOnlyIterable(p0: Iterable?) + public fun setReadOnlyIterable([ReadOnly] p0: Iterable?) } diff --git a/compiler/testData/loadJava/compiledJavaCompareWithKotlin/mutability/LoadIterable.txt b/compiler/testData/loadJava/compiledJavaCompareWithKotlin/mutability/LoadIterable.txt index 682538136eb..3c2780a0948 100644 --- a/compiler/testData/loadJava/compiledJavaCompareWithKotlin/mutability/LoadIterable.txt +++ b/compiler/testData/loadJava/compiledJavaCompareWithKotlin/mutability/LoadIterable.txt @@ -1,8 +1,8 @@ package test public trait LoadIterable : java.lang.Object { - public abstract fun getIterable(): jet.MutableIterable? - public abstract fun getReadOnlyIterable(): jet.Iterable? - public abstract fun setIterable(/*0*/ p0: jet.MutableIterable?): jet.Unit - public abstract fun setReadOnlyIterable(/*0*/ p0: jet.Iterable?): jet.Unit + org.jetbrains.annotations.Mutable() public abstract fun getIterable(): jet.MutableIterable? + org.jetbrains.annotations.ReadOnly() public abstract fun getReadOnlyIterable(): jet.Iterable? + public abstract fun setIterable(/*0*/ org.jetbrains.annotations.Mutable() p0: jet.MutableIterable?): jet.Unit + public abstract fun setReadOnlyIterable(/*0*/ org.jetbrains.annotations.ReadOnly() p0: jet.Iterable?): jet.Unit } diff --git a/compiler/testData/loadJava/compiledJavaCompareWithKotlin/mutability/LoadIterableWithConflict.kt b/compiler/testData/loadJava/compiledJavaCompareWithKotlin/mutability/LoadIterableWithConflict.kt index 4c8ef4e6521..a29754daca8 100644 --- a/compiler/testData/loadJava/compiledJavaCompareWithKotlin/mutability/LoadIterableWithConflict.kt +++ b/compiler/testData/loadJava/compiledJavaCompareWithKotlin/mutability/LoadIterableWithConflict.kt @@ -1,6 +1,9 @@ package test +import org.jetbrains.annotations.* + public trait LoadIterableWithConflict : java.lang.Object { + [ReadOnly] [Mutable] public fun getIterable(): MutableIterable? - public fun setIterable(p0: MutableIterable?) + public fun setIterable([ReadOnly] [Mutable] p0: MutableIterable?) } diff --git a/compiler/testData/loadJava/compiledJavaCompareWithKotlin/mutability/LoadIterableWithConflict.txt b/compiler/testData/loadJava/compiledJavaCompareWithKotlin/mutability/LoadIterableWithConflict.txt index 30aafb28ab7..be5cfed70da 100644 --- a/compiler/testData/loadJava/compiledJavaCompareWithKotlin/mutability/LoadIterableWithConflict.txt +++ b/compiler/testData/loadJava/compiledJavaCompareWithKotlin/mutability/LoadIterableWithConflict.txt @@ -1,6 +1,6 @@ package test public trait LoadIterableWithConflict : java.lang.Object { - public abstract fun getIterable(): jet.MutableIterable? - public abstract fun setIterable(/*0*/ p0: jet.MutableIterable?): jet.Unit + org.jetbrains.annotations.ReadOnly() org.jetbrains.annotations.Mutable() public abstract fun getIterable(): jet.MutableIterable? + public abstract fun setIterable(/*0*/ org.jetbrains.annotations.ReadOnly() org.jetbrains.annotations.Mutable() p0: jet.MutableIterable?): jet.Unit } diff --git a/compiler/testData/loadJava/compiledJavaCompareWithKotlin/mutability/LoadIterableWithNullability.kt b/compiler/testData/loadJava/compiledJavaCompareWithKotlin/mutability/LoadIterableWithNullability.kt index 4a3753195a7..a953b293032 100644 --- a/compiler/testData/loadJava/compiledJavaCompareWithKotlin/mutability/LoadIterableWithNullability.kt +++ b/compiler/testData/loadJava/compiledJavaCompareWithKotlin/mutability/LoadIterableWithNullability.kt @@ -1,9 +1,13 @@ package test -public trait LoadIterableWithNullability : java.lang.Object { - public fun getIterable(): MutableIterable - public fun setIterable(p0: MutableIterable) +import org.jetbrains.annotations.* +public trait LoadIterableWithNullability : java.lang.Object { + Mutable + public fun getIterable(): MutableIterable + public fun setIterable([Mutable] p0: MutableIterable) + + ReadOnly public fun getReadOnlyIterable(): Iterable - public fun setReadOnlyIterable(p0: Iterable) + public fun setReadOnlyIterable([ReadOnly] p0: Iterable) } diff --git a/compiler/testData/loadJava/compiledJavaCompareWithKotlin/mutability/LoadIterableWithNullability.txt b/compiler/testData/loadJava/compiledJavaCompareWithKotlin/mutability/LoadIterableWithNullability.txt index 39cf9a0b94f..a5d7dec8a19 100644 --- a/compiler/testData/loadJava/compiledJavaCompareWithKotlin/mutability/LoadIterableWithNullability.txt +++ b/compiler/testData/loadJava/compiledJavaCompareWithKotlin/mutability/LoadIterableWithNullability.txt @@ -1,8 +1,8 @@ package test public trait LoadIterableWithNullability : java.lang.Object { - public abstract fun getIterable(): jet.MutableIterable - public abstract fun getReadOnlyIterable(): jet.Iterable - public abstract fun setIterable(/*0*/ p0: jet.MutableIterable): jet.Unit - public abstract fun setReadOnlyIterable(/*0*/ p0: jet.Iterable): jet.Unit + org.jetbrains.annotations.Mutable() public abstract fun getIterable(): jet.MutableIterable + org.jetbrains.annotations.ReadOnly() public abstract fun getReadOnlyIterable(): jet.Iterable + public abstract fun setIterable(/*0*/ org.jetbrains.annotations.Mutable() p0: jet.MutableIterable): jet.Unit + public abstract fun setReadOnlyIterable(/*0*/ org.jetbrains.annotations.ReadOnly() p0: jet.Iterable): jet.Unit } diff --git a/compiler/testData/loadJava/compiledJavaCompareWithKotlin/mutability/LoadIterableWithPropagation.kt b/compiler/testData/loadJava/compiledJavaCompareWithKotlin/mutability/LoadIterableWithPropagation.kt index 8f90e700924..b9d4da2ba73 100644 --- a/compiler/testData/loadJava/compiledJavaCompareWithKotlin/mutability/LoadIterableWithPropagation.kt +++ b/compiler/testData/loadJava/compiledJavaCompareWithKotlin/mutability/LoadIterableWithPropagation.kt @@ -1,14 +1,17 @@ package test import java.util.ArrayList +import org.jetbrains.annotations.* public trait LoadIterableWithPropagation: java.lang.Object { public trait LoadIterable : java.lang.Object { + Mutable public fun getIterable(): MutableIterable? - public fun setIterable(p0: MutableIterable?) + public fun setIterable([Mutable] p0: MutableIterable?) + ReadOnly public fun getReadOnlyIterable(): Iterable? - public fun setReadOnlyIterable(p0: Iterable?) + public fun setReadOnlyIterable([ReadOnly] p0: Iterable?) } public open class LoadIterableImpl : LoadIterable { diff --git a/compiler/testData/loadJava/compiledJavaCompareWithKotlin/mutability/LoadIterableWithPropagation.txt b/compiler/testData/loadJava/compiledJavaCompareWithKotlin/mutability/LoadIterableWithPropagation.txt index ec577680d19..d835f62fc3f 100644 --- a/compiler/testData/loadJava/compiledJavaCompareWithKotlin/mutability/LoadIterableWithPropagation.txt +++ b/compiler/testData/loadJava/compiledJavaCompareWithKotlin/mutability/LoadIterableWithPropagation.txt @@ -3,10 +3,10 @@ package test public trait LoadIterableWithPropagation : java.lang.Object { public trait LoadIterable : java.lang.Object { - public abstract fun getIterable(): jet.MutableIterable? - public abstract fun getReadOnlyIterable(): jet.Iterable? - public abstract fun setIterable(/*0*/ p0: jet.MutableIterable?): jet.Unit - public abstract fun setReadOnlyIterable(/*0*/ p0: jet.Iterable?): jet.Unit + org.jetbrains.annotations.Mutable() public abstract fun getIterable(): jet.MutableIterable? + org.jetbrains.annotations.ReadOnly() public abstract fun getReadOnlyIterable(): jet.Iterable? + public abstract fun setIterable(/*0*/ org.jetbrains.annotations.Mutable() p0: jet.MutableIterable?): jet.Unit + public abstract fun setReadOnlyIterable(/*0*/ org.jetbrains.annotations.ReadOnly() p0: jet.Iterable?): jet.Unit } public open class LoadIterableImpl : test.LoadIterableWithPropagation.LoadIterable { diff --git a/compiler/tests/org/jetbrains/jet/JetTestUtils.java b/compiler/tests/org/jetbrains/jet/JetTestUtils.java index 8c660e2577d..53ea7177326 100644 --- a/compiler/tests/org/jetbrains/jet/JetTestUtils.java +++ b/compiler/tests/org/jetbrains/jet/JetTestUtils.java @@ -243,7 +243,7 @@ public class JetTestUtils { @NotNull TestJdkKind jdkKind ) { return JetCoreEnvironment.createForTests(disposable, compilerConfigurationForTests( - configurationKind, jdkKind, getAnnotationsJar(), getAnnotationsExtJar())); + configurationKind, jdkKind, getAnnotationsJar())); } public static File findMockJdkRtJar() { @@ -254,10 +254,6 @@ public class JetTestUtils { return new File(JetTestCaseBuilder.getHomeDirectory(), "compiler/testData/mockJDK/jre/lib/annotations.jar"); } - public static File getAnnotationsExtJar() { - return new File(JetTestCaseBuilder.getHomeDirectory(), "dist/kotlinc/lib/kotlin-annotations-ext.jar"); - } - public static void mkdirs(File file) throws IOException { if (file.isDirectory()) { return; diff --git a/compiler/tests/org/jetbrains/jet/jvm/compiler/LoadDescriptorUtil.java b/compiler/tests/org/jetbrains/jet/jvm/compiler/LoadDescriptorUtil.java index c4fcb844bbf..93386f41cfd 100644 --- a/compiler/tests/org/jetbrains/jet/jvm/compiler/LoadDescriptorUtil.java +++ b/compiler/tests/org/jetbrains/jet/jvm/compiler/LoadDescriptorUtil.java @@ -91,7 +91,8 @@ public final class LoadDescriptorUtil { @NotNull ConfigurationKind configurationKind ) { CompilerConfiguration configuration = JetTestUtils.compilerConfigurationForTests( - configurationKind, TestJdkKind.MOCK_JDK, JetTestUtils.getAnnotationsJar(), + configurationKind, TestJdkKind.MOCK_JDK, + JetTestUtils.getAnnotationsJar(), javaRoot, new File("compiler/tests") // for @ExpectLoadError annotation ); diff --git a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaValueParameterResolver.java b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaValueParameterResolver.java index 6b3e8f43761..7c18c1da622 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaValueParameterResolver.java +++ b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaValueParameterResolver.java @@ -19,7 +19,6 @@ package org.jetbrains.jet.lang.resolve.java.resolver; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor; import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor; -import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor; import org.jetbrains.jet.lang.descriptors.impl.ValueParameterDescriptorImpl; import org.jetbrains.jet.lang.resolve.java.structure.JavaArrayType; import org.jetbrains.jet.lang.resolve.java.structure.JavaMethod; @@ -32,7 +31,6 @@ import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns; import javax.inject.Inject; import java.util.ArrayList; -import java.util.Collections; import java.util.List; public final class JavaValueParameterResolver { @@ -85,7 +83,7 @@ public final class JavaValueParameterResolver { return new ValueParameterDescriptorImpl( containingDeclaration, i, - Collections.emptyList(), // TODO + annotationResolver.resolveAnnotations(parameter), getParameterName(i, parameter), // TODO: must be very slow, make it lazy? outType, false,