mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-05-09 00:21:47 +00:00
Add tests for mutability annotation support in type resolver
This commit is contained in:
@@ -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);
|
||||
}
|
||||
@@ -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>?)
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
package test
|
||||
|
||||
public trait LoadIterableWithConflict<T> : java.lang.Object {
|
||||
public fun getIterable(): MutableIterable<T>?
|
||||
public fun setIterable(p0: MutableIterable<T>?)
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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>)
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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) {}
|
||||
}
|
||||
}
|
||||
@@ -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 {}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user