Support class literals (A::class)

This commit is contained in:
Alexander Udalov
2015-03-05 22:01:50 +03:00
parent 2b089e0f39
commit 6e45c6f17c
22 changed files with 316 additions and 39 deletions
+5
View File
@@ -28,6 +28,11 @@ fun ok() {
a??::b
a<b>?::c
a<b?,c?>?::d
A::class
a<b,c>::class
::class
a b ::class
}
fun err0() {
+45
View File
@@ -464,6 +464,51 @@ JetFile: DoubleColon.kt
PsiElement(COLONCOLON)('::')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('d')
PsiWhiteSpace('\n\n ')
CLASS_LITERAL_EXPRESSION
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('A')
PsiElement(COLONCOLON)('::')
PsiElement(class)('class')
PsiWhiteSpace('\n ')
CLASS_LITERAL_EXPRESSION
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('a')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_PROJECTION
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('b')
PsiElement(COMMA)(',')
TYPE_PROJECTION
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('c')
PsiElement(GT)('>')
PsiElement(COLONCOLON)('::')
PsiElement(class)('class')
PsiWhiteSpace('\n ')
CLASS_LITERAL_EXPRESSION
PsiElement(COLONCOLON)('::')
PsiElement(class)('class')
PsiWhiteSpace('\n ')
BINARY_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('a')
PsiWhiteSpace(' ')
OPERATION_REFERENCE
PsiElement(IDENTIFIER)('b')
PsiWhiteSpace(' ')
CLASS_LITERAL_EXPRESSION
PsiElement(COLONCOLON)('::')
PsiElement(class)('class')
PsiWhiteSpace('\n')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n\n')