add check for escaped identifiers
This commit is contained in:
@@ -0,0 +1,98 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER
|
||||
// TODO Uncomment all the examples when there will be no problems with light classes
|
||||
//package `foo.bar`
|
||||
|
||||
// TODO: Uncomment after fixing KT-9416
|
||||
//import kotlin.Deprecated as `deprecate\entity`
|
||||
|
||||
//@`deprecate\entity`("") data class Pair(val x: Int, val y: Int)
|
||||
|
||||
// Names should not contains characters: '.', ';', '[', ']', '/', '<', '>', ':', '\\'
|
||||
//class `class.name`
|
||||
class <!INVALID_CHARACTERS!>`class;name`<!>
|
||||
class <!INVALID_CHARACTERS!>`class[name`<!>
|
||||
class <!INVALID_CHARACTERS!>`class]name`<!>
|
||||
//class `class/name`
|
||||
class <!INVALID_CHARACTERS!>`class<name`<!>
|
||||
class <!INVALID_CHARACTERS!>`class>name`<!>
|
||||
class <!INVALID_CHARACTERS!>`class:name`<!>
|
||||
class <!INVALID_CHARACTERS!>`class\name`<!>
|
||||
|
||||
class ` ` {}
|
||||
class ` `
|
||||
|
||||
//val `val.X` = 10
|
||||
val <!INVALID_CHARACTERS!>`val;X`<!> = 10
|
||||
val <!INVALID_CHARACTERS!>`val[X`<!> = 10
|
||||
val <!INVALID_CHARACTERS!>`val]X`<!> = 10
|
||||
//val `val/X` = 10
|
||||
val <!INVALID_CHARACTERS!>`val<X`<!> = 10
|
||||
val <!INVALID_CHARACTERS!>`val>X`<!> = 10
|
||||
val <!INVALID_CHARACTERS!>`val:X`<!> = 10
|
||||
val <!INVALID_CHARACTERS!>`val\X`<!> = 10
|
||||
|
||||
val <!INVALID_CHARACTERS!>`;`<!> = 1
|
||||
val <!INVALID_CHARACTERS!>`[`<!> = 2
|
||||
val <!INVALID_CHARACTERS!>`]`<!> = 3
|
||||
// org.jetbrains.kotlin.resolve.lazy.NoDescriptorForDeclarationException: Descriptor wasn't found for declaration PROPERTY
|
||||
// Names which start with '<' are treated as "special": see Name.java
|
||||
//val `<` = 4
|
||||
|
||||
val <!INVALID_CHARACTERS!>`>`<!> = 5
|
||||
val <!INVALID_CHARACTERS!>`:`<!> = 6
|
||||
val <!INVALID_CHARACTERS!>`\`<!> = 7
|
||||
// org.jetbrains.kotlin.resolve.lazy.NoDescriptorForDeclarationException: Descriptor wasn't found for declaration PROPERTY
|
||||
// Names which start with '<' are treated as "special": see Name.java
|
||||
//val `<>` = 8
|
||||
|
||||
val <!INVALID_CHARACTERS!>`[]`<!> = 9
|
||||
val <!INVALID_CHARACTERS!>`[;]`<!> = 10
|
||||
|
||||
// TODO Uncomment when there will be no problems with light classes (Error: Invalid formal type parameter (must be a valid Java identifier))
|
||||
//class AWithTypeParameter<`T:K`> {}
|
||||
//fun <`T/K`> genericFun(x: `T/K`) {}
|
||||
|
||||
class B(val <!INVALID_CHARACTERS!>`a:b`<!>: Int, val <!INVALID_CHARACTERS!>`c:d`<!>: Int)
|
||||
|
||||
val ff: (<!INVALID_CHARACTERS!>`x:X`<!>: Int) -> Unit = {}
|
||||
val fg: ((<!INVALID_CHARACTERS!>`x:X`<!>: Int) -> Unit) -> Unit = {}
|
||||
val fh: ((Int) -> ((<!INVALID_CHARACTERS!>`x:X`<!>: Int) -> Unit) -> Unit) = {{}}
|
||||
|
||||
fun f(x: Int, g: (Int) -> Unit) = g(x)
|
||||
|
||||
data class Data(val x: Int, val y: Int)
|
||||
|
||||
class A() {
|
||||
init {
|
||||
val <!INVALID_CHARACTERS!>`a:b`<!> = 10
|
||||
}
|
||||
|
||||
fun g(<!INVALID_CHARACTERS!>`x:y`<!>: Int) {
|
||||
val <!INVALID_CHARACTERS!>`s:`<!> = 30
|
||||
}
|
||||
}
|
||||
|
||||
fun <!INVALID_CHARACTERS!>`foo:bar`<!>(<!INVALID_CHARACTERS!>`\arg`<!>: Int): Int {
|
||||
val (<!INVALID_CHARACTERS!>`a:b`<!>, c) = Data(10, 20)
|
||||
val <!INVALID_CHARACTERS!>`a\b`<!> = 10
|
||||
|
||||
fun localFun() {}
|
||||
|
||||
for (<!INVALID_CHARACTERS!>`x/y`<!> in 0..10) {
|
||||
}
|
||||
|
||||
f(10) {
|
||||
<!INVALID_CHARACTERS!>`x:z`<!>: Int -> localFun()
|
||||
}
|
||||
|
||||
f(20, fun(<!INVALID_CHARACTERS!>`x:z`<!>: Int): Unit {})
|
||||
|
||||
try {
|
||||
val <!INVALID_CHARACTERS!>`a:`<!> = 10
|
||||
}
|
||||
catch (<!INVALID_CHARACTERS!>`e:a`<!>: Exception) {
|
||||
val <!INVALID_CHARACTERS!>`b:`<!> = 20
|
||||
}
|
||||
|
||||
return `\arg`
|
||||
}
|
||||
@@ -0,0 +1,114 @@
|
||||
package
|
||||
|
||||
public val `:`: kotlin.Int = 6
|
||||
public val `;`: kotlin.Int = 1
|
||||
public val `>`: kotlin.Int = 5
|
||||
public val `[`: kotlin.Int = 2
|
||||
public val `[;]`: kotlin.Int = 10
|
||||
public val `[]`: kotlin.Int = 9
|
||||
public val `\`: kotlin.Int = 7
|
||||
public val `]`: kotlin.Int = 3
|
||||
public val ff: (kotlin.Int) -> kotlin.Unit
|
||||
public val fg: ((kotlin.Int) -> kotlin.Unit) -> kotlin.Unit
|
||||
public val fh: (kotlin.Int) -> ((kotlin.Int) -> kotlin.Unit) -> kotlin.Unit
|
||||
public val `val:X`: kotlin.Int = 10
|
||||
public val `val;X`: kotlin.Int = 10
|
||||
public val `val<X`: kotlin.Int = 10
|
||||
public val `val>X`: kotlin.Int = 10
|
||||
public val `val[X`: kotlin.Int = 10
|
||||
public val `val\X`: kotlin.Int = 10
|
||||
public val `val]X`: kotlin.Int = 10
|
||||
public fun f(/*0*/ x: kotlin.Int, /*1*/ g: (kotlin.Int) -> kotlin.Unit): kotlin.Unit
|
||||
public fun `foo:bar`(/*0*/ `\arg`: kotlin.Int): kotlin.Int
|
||||
|
||||
public final class ` ` {
|
||||
public constructor ` `()
|
||||
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 ` ` {
|
||||
public constructor ` `()
|
||||
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 A {
|
||||
public constructor A()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public final fun g(/*0*/ `x:y`: kotlin.Int): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public final class B {
|
||||
public constructor B(/*0*/ `a:b`: kotlin.Int, /*1*/ `c:d`: kotlin.Int)
|
||||
public final val `a:b`: kotlin.Int
|
||||
public final val `c:d`: kotlin.Int
|
||||
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
|
||||
}
|
||||
|
||||
@kotlin.data() public final class Data {
|
||||
public constructor Data(/*0*/ x: kotlin.Int, /*1*/ y: kotlin.Int)
|
||||
public final val x: kotlin.Int
|
||||
public final val y: kotlin.Int
|
||||
public final operator /*synthesized*/ fun component1(): kotlin.Int
|
||||
public final operator /*synthesized*/ fun component2(): kotlin.Int
|
||||
public final /*synthesized*/ fun copy(/*0*/ x: kotlin.Int = ..., /*1*/ y: kotlin.Int = ...): Data
|
||||
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 `class:name` {
|
||||
public constructor `class:name`()
|
||||
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 `class;name` {
|
||||
public constructor `class;name`()
|
||||
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 `class<name` {
|
||||
public constructor `class<name`()
|
||||
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 `class>name` {
|
||||
public constructor `class>name`()
|
||||
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 `class[name` {
|
||||
public constructor `class[name`()
|
||||
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 `class\name` {
|
||||
public constructor `class\name`()
|
||||
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 `class]name` {
|
||||
public constructor `class]name`()
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user