Add tests for mutability annotation support in type resolver

This commit is contained in:
Alexey Sedunov
2013-03-29 16:11:07 +04:00
parent fc7bb67aca
commit 6a7cd7c6e3
16 changed files with 200 additions and 2 deletions

View File

@@ -0,0 +1,11 @@
package test;
import org.jetbrains.annotations.*;
public interface LoadIterable<T> {
public @Mutable Iterable<T> getIterable();
public void setIterable(@Mutable Iterable<T> Iterable);
public @ReadOnly Iterable<T> getReadOnlyIterable();
public void setReadOnlyIterable(@ReadOnly Iterable<T> Iterable);
}

View File

@@ -0,0 +1,9 @@
package test
public trait LoadIterable<T> : java.lang.Object {
public fun getIterable(): MutableIterable<T>?
public fun setIterable(p0: MutableIterable<T>?)
public fun getReadOnlyIterable(): Iterable<T>?
public fun setReadOnlyIterable(p0: Iterable<T>?)
}

View File

@@ -0,0 +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
}

View File

@@ -0,0 +1,8 @@
package test;
import org.jetbrains.annotations.*;
public interface LoadIterableWithConflict<T> {
public @ReadOnly @Mutable Iterable<T> getIterable();
public void setIterable(@ReadOnly @Mutable Iterable<T> Iterable);
}

View File

@@ -0,0 +1,6 @@
package test
public trait LoadIterableWithConflict<T> : java.lang.Object {
public fun getIterable(): MutableIterable<T>?
public fun setIterable(p0: MutableIterable<T>?)
}

View File

@@ -0,0 +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
}

View File

@@ -0,0 +1,11 @@
package test;
import org.jetbrains.annotations.*;
public interface LoadIterableWithNullability<T> {
public @NotNull @Mutable Iterable<T> getIterable();
public void setIterable(@Mutable @NotNull Iterable<T> Iterable);
public @NotNull @ReadOnly Iterable<T> getReadOnlyIterable();
public void setReadOnlyIterable(@ReadOnly @NotNull Iterable<T> Iterable);
}

View File

@@ -0,0 +1,9 @@
package test
public trait LoadIterableWithNullability<T> : java.lang.Object {
public fun getIterable(): MutableIterable<T>
public fun setIterable(p0: MutableIterable<T>)
public fun getReadOnlyIterable(): Iterable<T>
public fun setReadOnlyIterable(p0: Iterable<T>)
}

View File

@@ -0,0 +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
}

View File

@@ -0,0 +1,22 @@
package test;
import org.jetbrains.annotations.*;
import java.util.ArrayList;
public interface LoadIterableWithPropagation {
public interface LoadIterable<T> {
public @Mutable Iterable<T> getIterable();
public void setIterable(@Mutable Iterable<T> Iterable);
public @ReadOnly Iterable<T> getReadOnlyIterable();
public void setReadOnlyIterable(@ReadOnly Iterable<T> Iterable);
}
public class LoadIterableImpl<T> implements LoadIterable<T> {
public Iterable<T> getIterable() {return new ArrayList<T>();}
public void setIterable(Iterable<T> Iterable) {}
public Iterable<T> getReadOnlyIterable() {return new ArrayList<T>();}
public void setReadOnlyIterable(Iterable<T> Iterable) {}
}
}

View File

@@ -0,0 +1,21 @@
package test
import java.util.ArrayList
public trait LoadIterableWithPropagation: java.lang.Object {
public trait LoadIterable<T> : java.lang.Object {
public fun getIterable(): MutableIterable<T>?
public fun setIterable(p0: MutableIterable<T>?)
public fun getReadOnlyIterable(): Iterable<T>?
public fun setReadOnlyIterable(p0: Iterable<T>?)
}
public open class LoadIterableImpl<T> : LoadIterable<T> {
public override fun getIterable(): MutableIterable<T>? = ArrayList<T>()
public override fun setIterable(p0: MutableIterable<T>?): Unit {}
public override fun getReadOnlyIterable(): Iterable<T>? = ArrayList<T>()
public override fun setReadOnlyIterable(p0: Iterable<T>?): Unit {}
}
}

View File

@@ -0,0 +1,19 @@
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
}
public open class LoadIterableImpl</*0*/ T> : test.LoadIterableWithPropagation.LoadIterable<T> {
public constructor LoadIterableImpl</*0*/ T>()
public open override /*1*/ fun getIterable() : jet.MutableIterable<T>?
public open override /*1*/ fun getReadOnlyIterable() : jet.Iterable<T>?
public open override /*1*/ fun setIterable(/*0*/ p0 : jet.MutableIterable<T>?) : jet.Unit
public open override /*1*/ fun setReadOnlyIterable(/*0*/ p0 : jet.Iterable<T>?) : jet.Unit
}
}