Report error on non-top-level type aliases (unsupported in 1.1).

Get rid of nested type aliases in project.
This commit is contained in:
Dmitry Petrov
2016-11-18 10:25:16 +03:00
parent 87c9d4e84e
commit 4c47d77a9f
56 changed files with 153 additions and 166 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
// !DIAGNOSTICS: -DEPRECATION
// !DIAGNOSTICS: -DEPRECATION -TOPLEVEL_TYPEALIASES_ONLY
<!UNDERSCORE_IS_RESERVED!>import kotlin.Deprecated as ___<!>
@@ -1,3 +1,4 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -TOPLEVEL_TYPEALIASES_ONLY
// !CHECK_TYPE
open class Outer<X, Y> {
inner class Inner<Z>
@@ -1,5 +1,5 @@
// !CHECK_TYPE
// !DIAGNOSTICS: -UNUSED_VALUE -VARIABLE_WITH_REDUNDANT_INITIALIZER
// !DIAGNOSTICS: -UNUSED_VALUE -VARIABLE_WITH_REDUNDANT_INITIALIZER -TOPLEVEL_TYPEALIASES_ONLY
class A<R1, R2, R3, R4>
@@ -1,5 +1,5 @@
// !CHECK_TYPE
// !DIAGNOSTICS: -UNUSED_VALUE -VARIABLE_WITH_REDUNDANT_INITIALIZER
// !DIAGNOSTICS: -UNUSED_VALUE -VARIABLE_WITH_REDUNDANT_INITIALIZER -TOPLEVEL_TYPEALIASES_ONLY
class A<R1, R2, R3, R4, R5, R6>
@@ -1,3 +1,4 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -TOPLEVEL_TYPEALIASES_ONLY
// !CHECK_TYPE
open class Outer<X, Y> {
inner class Inner<Z>
@@ -1,3 +1,4 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -TOPLEVEL_TYPEALIASES_ONLY
class C(val x: Int)
<!CONFLICTING_OVERLOADS!>typealias CC = C<!>
@@ -1,3 +1,4 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -TOPLEVEL_TYPEALIASES_ONLY
// FILE: file1.kt
class <!PACKAGE_OR_CLASSIFIER_REDECLARATION!>SomeClass<!>
@@ -1,3 +1,4 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -TOPLEVEL_TYPEALIASES_ONLY
// FILE: file1.kt
typealias <!REDECLARATION!>Test<!> = String
@@ -1,3 +1,5 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -TOPLEVEL_TYPEALIASES_ONLY
typealias S = String
class C {
@@ -1,4 +1,4 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -TOPLEVEL_TYPEALIASES_ONLY
class Outer<TO> {
typealias LTO = List<TO>
@@ -1,3 +1,5 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -TOPLEVEL_TYPEALIASES_ONLY
typealias L<T> = List<T>
class Outer {
@@ -1,3 +1,4 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -TOPLEVEL_TYPEALIASES_ONLY
// FILE: file1.kt
package package1
@@ -1,3 +1,5 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -TOPLEVEL_TYPEALIASES_ONLY
interface ICell<T> {
val x: T
}
@@ -1,4 +1,4 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -TOPLEVEL_TYPEALIASES_ONLY
open class Base {
typealias Nested = String
@@ -1,3 +1,5 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -TOPLEVEL_TYPEALIASES_ONLY
class Outer<T> {
class Nested
class GenericNested<TT>
@@ -1,3 +1,5 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -TOPLEVEL_TYPEALIASES_ONLY
class C<T> {
inner class D
@@ -1,3 +1,5 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -TOPLEVEL_TYPEALIASES_ONLY
class Pair<X, Y>(val x: X, val y: Y)
class C<T> {
@@ -1,3 +1,5 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -TOPLEVEL_TYPEALIASES_ONLY
class OuterClass<T1> {
class NestedClass<T2>
typealias NestedType<T> = NestedClass<T>
@@ -1,3 +1,5 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -TOPLEVEL_TYPEALIASES_ONLY
class A {
public inner class B { }
public typealias BAlias = B
@@ -1,4 +1,4 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -TOPLEVEL_TYPEALIASES_ONLY
fun <T> emptyList(): List<T> = null!!
@@ -1,4 +1,4 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -TOPLEVEL_TYPEALIASES_ONLY
class Cell<TC>(val x: TC)
@@ -1,3 +1,5 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -TOPLEVEL_TYPEALIASES_ONLY
fun outer() {
<!WRONG_MODIFIER_TARGET!>companion<!> typealias TestLocal = Any
}
@@ -1,3 +1,5 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -TOPLEVEL_TYPEALIASES_ONLY
fun outer() {
typealias Test1 = <!RECURSIVE_TYPEALIAS_EXPANSION!>Test1<!>
typealias Test2 = <!RECURSIVE_TYPEALIAS_EXPANSION!>List<Test2><!>
+1 -1
View File
@@ -1,4 +1,4 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -TOPLEVEL_TYPEALIASES_ONLY
class Pair<T1, T2>(val x1: T1, val x2: T2)
@@ -1,3 +1,5 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -TOPLEVEL_TYPEALIASES_ONLY
class Pair<T1, T2>(val x1: T1, val x2: T2)
class C<T> {
@@ -1,4 +1,4 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -TOPLEVEL_TYPEALIASES_ONLY
class Pair<T1, T2>(val x1: T1, val x2: T2)
@@ -0,0 +1,19 @@
typealias TopLevel = Any
interface A {
<!TOPLEVEL_TYPEALIASES_ONLY!>typealias Nested = Any<!>
}
class C {
<!TOPLEVEL_TYPEALIASES_ONLY!>typealias Nested = Any<!>
class D {
<!TOPLEVEL_TYPEALIASES_ONLY!>typealias Nested = Any<!>
fun foo() {
<!TOPLEVEL_TYPEALIASES_ONLY!>typealias LocalInMember = Any<!>
}
}
}
fun foo() {
<!TOPLEVEL_TYPEALIASES_ONLY!>typealias Local = Any<!>
}
@@ -0,0 +1,28 @@
package
public fun foo(): kotlin.Unit
public interface A {
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
public typealias Nested = kotlin.Any
}
public final class C {
public constructor C()
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
public final class D {
public constructor D()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final fun foo(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public typealias Nested = kotlin.Any
}
public typealias Nested = kotlin.Any
}
public typealias TopLevel = kotlin.Any
@@ -1,3 +1,5 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -TOPLEVEL_TYPEALIASES_ONLY
typealias L<T> = List<T>
typealias NL<T> = List<T>?
typealias LStar<<!UNUSED_TYPEALIAS_PARAMETER!>T<!>> = List<*>
@@ -1,3 +1,5 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -TOPLEVEL_TYPEALIASES_ONLY
class C {
typealias Self = C
class Nested {
@@ -1,3 +1,5 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -TOPLEVEL_TYPEALIASES_ONLY
open class Base {
open fun foo() {}
}
@@ -1,3 +1,5 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -TOPLEVEL_TYPEALIASES_ONLY
abstract class AbstractClass
typealias Test1 = AbstractClass
val test1 = <!CREATING_AN_INSTANCE_OF_ABSTRACT_CLASS!>Test1()<!>
@@ -1,3 +1,5 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -TOPLEVEL_TYPEALIASES_ONLY
typealias ToTypeParam1<T> = <!TYPEALIAS_SHOULD_EXPAND_TO_CLASS!>T<!>
typealias ToTypeParam2<T> = <!TYPEALIAS_SHOULD_EXPAND_TO_CLASS!>ToTypeParam1<T><!>
typealias ToTypeParam3<T1, <!UNUSED_TYPEALIAS_PARAMETER!>T2<!>> = <!TYPEALIAS_SHOULD_EXPAND_TO_CLASS!>ToTypeParam2<T1><!>