Support parameter annotations. Fix class path and test data

This commit is contained in:
Andrey Breslav
2013-10-30 15:44:57 +04:00
parent c034d5e675
commit 083644ea43
11 changed files with 43 additions and 34 deletions
@@ -1,9 +1,13 @@
package test
public trait LoadIterable<T> : java.lang.Object {
public fun getIterable(): MutableIterable<T>?
public fun setIterable(p0: MutableIterable<T>?)
import org.jetbrains.annotations.*
public trait LoadIterable<T> : java.lang.Object {
Mutable
public fun getIterable(): MutableIterable<T>?
public fun setIterable([Mutable] p0: MutableIterable<T>?)
ReadOnly
public fun getReadOnlyIterable(): Iterable<T>?
public fun setReadOnlyIterable(p0: Iterable<T>?)
public fun setReadOnlyIterable([ReadOnly] p0: Iterable<T>?)
}
@@ -1,8 +1,8 @@
package test
public trait LoadIterable</*0*/ T> : java.lang.Object {
public abstract fun getIterable(): jet.MutableIterable<T>?
public abstract fun getReadOnlyIterable(): jet.Iterable<T>?
public abstract fun setIterable(/*0*/ p0: jet.MutableIterable<T>?): jet.Unit
public abstract fun setReadOnlyIterable(/*0*/ p0: jet.Iterable<T>?): jet.Unit
org.jetbrains.annotations.Mutable() public abstract fun getIterable(): jet.MutableIterable<T>?
org.jetbrains.annotations.ReadOnly() public abstract fun getReadOnlyIterable(): jet.Iterable<T>?
public abstract fun setIterable(/*0*/ org.jetbrains.annotations.Mutable() p0: jet.MutableIterable<T>?): jet.Unit
public abstract fun setReadOnlyIterable(/*0*/ org.jetbrains.annotations.ReadOnly() p0: jet.Iterable<T>?): jet.Unit
}
@@ -1,6 +1,9 @@
package test
import org.jetbrains.annotations.*
public trait LoadIterableWithConflict<T> : java.lang.Object {
[ReadOnly] [Mutable]
public fun getIterable(): MutableIterable<T>?
public fun setIterable(p0: MutableIterable<T>?)
public fun setIterable([ReadOnly] [Mutable] p0: MutableIterable<T>?)
}
@@ -1,6 +1,6 @@
package test
public trait LoadIterableWithConflict</*0*/ T> : java.lang.Object {
public abstract fun getIterable(): jet.MutableIterable<T>?
public abstract fun setIterable(/*0*/ p0: jet.MutableIterable<T>?): jet.Unit
org.jetbrains.annotations.ReadOnly() org.jetbrains.annotations.Mutable() public abstract fun getIterable(): jet.MutableIterable<T>?
public abstract fun setIterable(/*0*/ org.jetbrains.annotations.ReadOnly() org.jetbrains.annotations.Mutable() p0: jet.MutableIterable<T>?): jet.Unit
}
@@ -1,9 +1,13 @@
package test
public trait LoadIterableWithNullability<T> : java.lang.Object {
public fun getIterable(): MutableIterable<T>
public fun setIterable(p0: MutableIterable<T>)
import org.jetbrains.annotations.*
public trait LoadIterableWithNullability<T> : java.lang.Object {
Mutable
public fun getIterable(): MutableIterable<T>
public fun setIterable([Mutable] p0: MutableIterable<T>)
ReadOnly
public fun getReadOnlyIterable(): Iterable<T>
public fun setReadOnlyIterable(p0: Iterable<T>)
public fun setReadOnlyIterable([ReadOnly] p0: Iterable<T>)
}
@@ -1,8 +1,8 @@
package test
public trait LoadIterableWithNullability</*0*/ T> : java.lang.Object {
public abstract fun getIterable(): jet.MutableIterable<T>
public abstract fun getReadOnlyIterable(): jet.Iterable<T>
public abstract fun setIterable(/*0*/ p0: jet.MutableIterable<T>): jet.Unit
public abstract fun setReadOnlyIterable(/*0*/ p0: jet.Iterable<T>): jet.Unit
org.jetbrains.annotations.Mutable() public abstract fun getIterable(): jet.MutableIterable<T>
org.jetbrains.annotations.ReadOnly() public abstract fun getReadOnlyIterable(): jet.Iterable<T>
public abstract fun setIterable(/*0*/ org.jetbrains.annotations.Mutable() p0: jet.MutableIterable<T>): jet.Unit
public abstract fun setReadOnlyIterable(/*0*/ org.jetbrains.annotations.ReadOnly() p0: jet.Iterable<T>): jet.Unit
}
@@ -1,14 +1,17 @@
package test
import java.util.ArrayList
import org.jetbrains.annotations.*
public trait LoadIterableWithPropagation: java.lang.Object {
public trait LoadIterable<T> : java.lang.Object {
Mutable
public fun getIterable(): MutableIterable<T>?
public fun setIterable(p0: MutableIterable<T>?)
public fun setIterable([Mutable] p0: MutableIterable<T>?)
ReadOnly
public fun getReadOnlyIterable(): Iterable<T>?
public fun setReadOnlyIterable(p0: Iterable<T>?)
public fun setReadOnlyIterable([ReadOnly] p0: Iterable<T>?)
}
public open class LoadIterableImpl<T> : LoadIterable<T> {
@@ -3,10 +3,10 @@ package test
public trait LoadIterableWithPropagation : java.lang.Object {
public trait LoadIterable</*0*/ T> : java.lang.Object {
public abstract fun getIterable(): jet.MutableIterable<T>?
public abstract fun getReadOnlyIterable(): jet.Iterable<T>?
public abstract fun setIterable(/*0*/ p0: jet.MutableIterable<T>?): jet.Unit
public abstract fun setReadOnlyIterable(/*0*/ p0: jet.Iterable<T>?): jet.Unit
org.jetbrains.annotations.Mutable() public abstract fun getIterable(): jet.MutableIterable<T>?
org.jetbrains.annotations.ReadOnly() public abstract fun getReadOnlyIterable(): jet.Iterable<T>?
public abstract fun setIterable(/*0*/ org.jetbrains.annotations.Mutable() p0: jet.MutableIterable<T>?): jet.Unit
public abstract fun setReadOnlyIterable(/*0*/ org.jetbrains.annotations.ReadOnly() p0: jet.Iterable<T>?): jet.Unit
}
public open class LoadIterableImpl</*0*/ T> : test.LoadIterableWithPropagation.LoadIterable<T> {
@@ -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;
@@ -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
);
@@ -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.<AnnotationDescriptor>emptyList(), // TODO
annotationResolver.resolveAnnotations(parameter),
getParameterName(i, parameter), // TODO: must be very slow, make it lazy?
outType,
false,