Compiler warning on identical enum constant / is type entries #KT-4829 Fixed
This commit is contained in:
@@ -3,7 +3,7 @@ public fun foo(a: Any, <!UNUSED_PARAMETER!>b<!>: <!WRONG_NUMBER_OF_TYPE_ARGUMENT
|
||||
is Map<!WRONG_NUMBER_OF_TYPE_ARGUMENTS!><Int><!> -> {}
|
||||
is <!NO_TYPE_ARGUMENTS_ON_RHS!>Map<!> -> {}
|
||||
is Map<out Any?, Any?> -> {}
|
||||
is Map<*, *> -> {}
|
||||
is <!DUPLICATE_LABEL_IN_WHEN!>Map<*, *><!> -> {}
|
||||
is Map<<!SYNTAX!><!>> -> {}
|
||||
is List<<!WRONG_NUMBER_OF_TYPE_ARGUMENTS!>Map<!>> -> {}
|
||||
is <!NO_TYPE_ARGUMENTS_ON_RHS!>List<!> -> {}
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
package test
|
||||
|
||||
const val four = 4
|
||||
|
||||
fun first(arg: Int) = when (arg) {
|
||||
1 -> 2
|
||||
2 -> 3
|
||||
<!DUPLICATE_LABEL_IN_WHEN!>1<!> -> 4
|
||||
4 -> 5
|
||||
<!DUPLICATE_LABEL_IN_WHEN!>1<!> -> 6
|
||||
<!DUPLICATE_LABEL_IN_WHEN!>2<!> -> 7
|
||||
// Error should be here: see KT-11971
|
||||
four -> 8
|
||||
else -> 0
|
||||
}
|
||||
|
||||
fun second(arg: String): Int {
|
||||
when (arg) {
|
||||
"ABC" -> return 0
|
||||
"DEF" -> return 1
|
||||
<!DUPLICATE_LABEL_IN_WHEN!>"ABC"<!> -> return -1
|
||||
<!DUPLICATE_LABEL_IN_WHEN!>"DEF"<!> -> return -2
|
||||
}
|
||||
return 42
|
||||
}
|
||||
|
||||
fun third(arg: Any?): Int {
|
||||
when (arg) {
|
||||
null -> return -1
|
||||
is String -> return 0
|
||||
is Double -> return 1
|
||||
is <!DUPLICATE_LABEL_IN_WHEN!>Double<!> -> return 2
|
||||
<!DUPLICATE_LABEL_IN_WHEN!>null<!> -> return 3
|
||||
else -> return 5
|
||||
}
|
||||
}
|
||||
|
||||
enum class Color { RED, GREEN, BLUE }
|
||||
|
||||
fun fourth(arg: Color) = when (arg) {
|
||||
Color.RED -> "RED"
|
||||
Color.GREEN -> "GREEN"
|
||||
<!DUPLICATE_LABEL_IN_WHEN!>Color.RED<!> -> "BLUE"
|
||||
Color.BLUE -> "BLUE"
|
||||
}
|
||||
|
||||
fun fifth(arg: Any?) = when (arg) {
|
||||
is Any -> "Any"
|
||||
<!ELSE_MISPLACED_IN_WHEN!>else<!> -> ""
|
||||
<!UNREACHABLE_CODE!>else -> null<!>
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package
|
||||
|
||||
package test {
|
||||
public const val four: kotlin.Int = 4
|
||||
public fun fifth(/*0*/ arg: kotlin.Any?): kotlin.String?
|
||||
public fun first(/*0*/ arg: kotlin.Int): kotlin.Int
|
||||
public fun fourth(/*0*/ arg: test.Color): kotlin.String
|
||||
public fun second(/*0*/ arg: kotlin.String): kotlin.Int
|
||||
public fun third(/*0*/ arg: kotlin.Any?): kotlin.Int
|
||||
|
||||
public final enum class Color : kotlin.Enum<test.Color> {
|
||||
enum entry RED
|
||||
|
||||
enum entry GREEN
|
||||
|
||||
enum entry BLUE
|
||||
|
||||
private constructor Color()
|
||||
public final override /*1*/ /*fake_override*/ val name: kotlin.String
|
||||
public final override /*1*/ /*fake_override*/ val ordinal: kotlin.Int
|
||||
protected final override /*1*/ /*fake_override*/ fun clone(): kotlin.Any
|
||||
public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: test.Color): kotlin.Int
|
||||
public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
// Static members
|
||||
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): test.Color
|
||||
public final /*synthesized*/ fun values(): kotlin.Array<test.Color>
|
||||
}
|
||||
}
|
||||
+2
-2
@@ -15,9 +15,9 @@ fun test(d: Any, dl: Collection<dynamic>) {
|
||||
|
||||
when (d) {
|
||||
is <!DYNAMIC_NOT_ALLOWED!>dynamic<!> -> {}
|
||||
is <!DYNAMIC_NOT_ALLOWED!>dynamic?<!> -> {}
|
||||
is <!DYNAMIC_NOT_ALLOWED, DUPLICATE_LABEL_IN_WHEN!>dynamic?<!> -> {}
|
||||
!is <!DYNAMIC_NOT_ALLOWED!>dynamic<!> -> {}
|
||||
!is <!DYNAMIC_NOT_ALLOWED!>dynamic?<!> -> {}
|
||||
!is <!DYNAMIC_NOT_ALLOWED, DUPLICATE_LABEL_IN_WHEN!>dynamic?<!> -> {}
|
||||
}
|
||||
|
||||
dl as List<dynamic>
|
||||
|
||||
Reference in New Issue
Block a user