KT-2364 Drop traces of constructor-entries in enums
#KT-2364 Fixed
This commit is contained in:
@@ -543,7 +543,7 @@ public class JetParsing extends AbstractJetParsing {
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* enumEntry
|
* enumEntry
|
||||||
* : modifiers SimpleName typeParameters? primaryConstructorParameters? (":" initializer{","})? typeConstraints classBody?
|
* : modifiers SimpleName (":" initializer{","})? classBody?
|
||||||
* ;
|
* ;
|
||||||
*/
|
*/
|
||||||
private void parseEnumEntry() {
|
private void parseEnumEntry() {
|
||||||
@@ -553,20 +553,12 @@ public class JetParsing extends AbstractJetParsing {
|
|||||||
advance(); // IDENTIFIER
|
advance(); // IDENTIFIER
|
||||||
nameAsDeclaration.done(OBJECT_DECLARATION_NAME);
|
nameAsDeclaration.done(OBJECT_DECLARATION_NAME);
|
||||||
|
|
||||||
boolean typeParametersDeclared = parseTypeParameterList(TokenSet.create(COLON, LPAR, SEMICOLON, LBRACE));
|
|
||||||
|
|
||||||
if (at(LPAR)) {
|
|
||||||
parseValueParameterList(false, TokenSet.create(COLON, SEMICOLON, LBRACE));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (at(COLON)) {
|
if (at(COLON)) {
|
||||||
advance(); // COLON
|
advance(); // COLON
|
||||||
|
|
||||||
parseInitializerList();
|
parseInitializerList();
|
||||||
}
|
}
|
||||||
|
|
||||||
parseTypeConstraintsGuarded(typeParametersDeclared);
|
|
||||||
|
|
||||||
if (at(LBRACE)) {
|
if (at(LBRACE)) {
|
||||||
parseClassBody();
|
parseClassBody();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +0,0 @@
|
|||||||
enum class List<out T>(val size : Int) {
|
|
||||||
Nil : List<Nothing>(0) {
|
|
||||||
val a = 1
|
|
||||||
}
|
|
||||||
Cons<out T>(val head : T, val tail : List<T>) : List<T>(tail.size + 1)
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
val foo = List.Nil
|
|
||||||
val foo1 = foo.a
|
|
||||||
@@ -2,13 +2,4 @@ enum class Color(val rgb : Int) {
|
|||||||
RED : Color(0xFF000)
|
RED : Color(0xFF000)
|
||||||
GREEN : Color(0x00FF00)
|
GREEN : Color(0x00FF00)
|
||||||
BLUE : Color(0x0000FF)
|
BLUE : Color(0x0000FF)
|
||||||
}
|
|
||||||
|
|
||||||
enum class List<out T>(val size : Int) {
|
|
||||||
Nil : List<Nothing>(0)
|
|
||||||
|
|
||||||
Cons<T>(val value : T, val tail : List<T>) : List<T>(/*tail.size + 1*/a)
|
|
||||||
|
|
||||||
val isEmpty : Bool
|
|
||||||
get() = size //> 0
|
|
||||||
}
|
}
|
||||||
@@ -32,8 +32,6 @@ JetFile: Enums.jet
|
|||||||
OBJECT_DECLARATION_NAME
|
OBJECT_DECLARATION_NAME
|
||||||
PsiElement(IDENTIFIER)('RED')
|
PsiElement(IDENTIFIER)('RED')
|
||||||
PsiWhiteSpace(' ')
|
PsiWhiteSpace(' ')
|
||||||
TYPE_PARAMETER_LIST
|
|
||||||
<empty list>
|
|
||||||
PsiElement(COLON)(':')
|
PsiElement(COLON)(':')
|
||||||
PsiWhiteSpace(' ')
|
PsiWhiteSpace(' ')
|
||||||
INITIALIZER_LIST
|
INITIALIZER_LIST
|
||||||
@@ -54,8 +52,6 @@ JetFile: Enums.jet
|
|||||||
OBJECT_DECLARATION_NAME
|
OBJECT_DECLARATION_NAME
|
||||||
PsiElement(IDENTIFIER)('GREEN')
|
PsiElement(IDENTIFIER)('GREEN')
|
||||||
PsiWhiteSpace(' ')
|
PsiWhiteSpace(' ')
|
||||||
TYPE_PARAMETER_LIST
|
|
||||||
<empty list>
|
|
||||||
PsiElement(COLON)(':')
|
PsiElement(COLON)(':')
|
||||||
PsiWhiteSpace(' ')
|
PsiWhiteSpace(' ')
|
||||||
INITIALIZER_LIST
|
INITIALIZER_LIST
|
||||||
@@ -76,8 +72,6 @@ JetFile: Enums.jet
|
|||||||
OBJECT_DECLARATION_NAME
|
OBJECT_DECLARATION_NAME
|
||||||
PsiElement(IDENTIFIER)('BLUE')
|
PsiElement(IDENTIFIER)('BLUE')
|
||||||
PsiWhiteSpace(' ')
|
PsiWhiteSpace(' ')
|
||||||
TYPE_PARAMETER_LIST
|
|
||||||
<empty list>
|
|
||||||
PsiElement(COLON)(':')
|
PsiElement(COLON)(':')
|
||||||
PsiWhiteSpace(' ')
|
PsiWhiteSpace(' ')
|
||||||
INITIALIZER_LIST
|
INITIALIZER_LIST
|
||||||
@@ -94,162 +88,4 @@ JetFile: Enums.jet
|
|||||||
PsiElement(INTEGER_LITERAL)('0x0000FF')
|
PsiElement(INTEGER_LITERAL)('0x0000FF')
|
||||||
PsiElement(RPAR)(')')
|
PsiElement(RPAR)(')')
|
||||||
PsiWhiteSpace('\n')
|
PsiWhiteSpace('\n')
|
||||||
PsiElement(RBRACE)('}')
|
|
||||||
PsiWhiteSpace('\n\n')
|
|
||||||
CLASS
|
|
||||||
MODIFIER_LIST
|
|
||||||
PsiElement(enum)('enum')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PsiElement(class)('class')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PsiElement(IDENTIFIER)('List')
|
|
||||||
TYPE_PARAMETER_LIST
|
|
||||||
PsiElement(LT)('<')
|
|
||||||
TYPE_PARAMETER
|
|
||||||
MODIFIER_LIST
|
|
||||||
PsiElement(out)('out')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PsiElement(IDENTIFIER)('T')
|
|
||||||
PsiElement(GT)('>')
|
|
||||||
VALUE_PARAMETER_LIST
|
|
||||||
PsiElement(LPAR)('(')
|
|
||||||
VALUE_PARAMETER
|
|
||||||
PsiElement(val)('val')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PsiElement(IDENTIFIER)('size')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PsiElement(COLON)(':')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
TYPE_REFERENCE
|
|
||||||
USER_TYPE
|
|
||||||
REFERENCE_EXPRESSION
|
|
||||||
PsiElement(IDENTIFIER)('Int')
|
|
||||||
PsiElement(RPAR)(')')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
CLASS_BODY
|
|
||||||
PsiElement(LBRACE)('{')
|
|
||||||
PsiWhiteSpace('\n ')
|
|
||||||
ENUM_ENTRY
|
|
||||||
OBJECT_DECLARATION_NAME
|
|
||||||
PsiElement(IDENTIFIER)('Nil')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
TYPE_PARAMETER_LIST
|
|
||||||
<empty list>
|
|
||||||
PsiElement(COLON)(':')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
INITIALIZER_LIST
|
|
||||||
DELEGATOR_SUPER_CALL
|
|
||||||
CONSTRUCTOR_CALLEE
|
|
||||||
TYPE_REFERENCE
|
|
||||||
USER_TYPE
|
|
||||||
REFERENCE_EXPRESSION
|
|
||||||
PsiElement(IDENTIFIER)('List')
|
|
||||||
TYPE_ARGUMENT_LIST
|
|
||||||
PsiElement(LT)('<')
|
|
||||||
TYPE_PROJECTION
|
|
||||||
TYPE_REFERENCE
|
|
||||||
USER_TYPE
|
|
||||||
REFERENCE_EXPRESSION
|
|
||||||
PsiElement(IDENTIFIER)('Nothing')
|
|
||||||
PsiElement(GT)('>')
|
|
||||||
VALUE_ARGUMENT_LIST
|
|
||||||
PsiElement(LPAR)('(')
|
|
||||||
VALUE_ARGUMENT
|
|
||||||
INTEGER_CONSTANT
|
|
||||||
PsiElement(INTEGER_LITERAL)('0')
|
|
||||||
PsiElement(RPAR)(')')
|
|
||||||
PsiWhiteSpace('\n\n ')
|
|
||||||
ENUM_ENTRY
|
|
||||||
OBJECT_DECLARATION_NAME
|
|
||||||
PsiElement(IDENTIFIER)('Cons')
|
|
||||||
TYPE_PARAMETER_LIST
|
|
||||||
PsiElement(LT)('<')
|
|
||||||
TYPE_PARAMETER
|
|
||||||
PsiElement(IDENTIFIER)('T')
|
|
||||||
PsiElement(GT)('>')
|
|
||||||
VALUE_PARAMETER_LIST
|
|
||||||
PsiElement(LPAR)('(')
|
|
||||||
VALUE_PARAMETER
|
|
||||||
PsiElement(val)('val')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PsiElement(IDENTIFIER)('value')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PsiElement(COLON)(':')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
TYPE_REFERENCE
|
|
||||||
USER_TYPE
|
|
||||||
REFERENCE_EXPRESSION
|
|
||||||
PsiElement(IDENTIFIER)('T')
|
|
||||||
PsiElement(COMMA)(',')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
VALUE_PARAMETER
|
|
||||||
PsiElement(val)('val')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PsiElement(IDENTIFIER)('tail')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PsiElement(COLON)(':')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
TYPE_REFERENCE
|
|
||||||
USER_TYPE
|
|
||||||
REFERENCE_EXPRESSION
|
|
||||||
PsiElement(IDENTIFIER)('List')
|
|
||||||
TYPE_ARGUMENT_LIST
|
|
||||||
PsiElement(LT)('<')
|
|
||||||
TYPE_PROJECTION
|
|
||||||
TYPE_REFERENCE
|
|
||||||
USER_TYPE
|
|
||||||
REFERENCE_EXPRESSION
|
|
||||||
PsiElement(IDENTIFIER)('T')
|
|
||||||
PsiElement(GT)('>')
|
|
||||||
PsiElement(RPAR)(')')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PsiElement(COLON)(':')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
INITIALIZER_LIST
|
|
||||||
DELEGATOR_SUPER_CALL
|
|
||||||
CONSTRUCTOR_CALLEE
|
|
||||||
TYPE_REFERENCE
|
|
||||||
USER_TYPE
|
|
||||||
REFERENCE_EXPRESSION
|
|
||||||
PsiElement(IDENTIFIER)('List')
|
|
||||||
TYPE_ARGUMENT_LIST
|
|
||||||
PsiElement(LT)('<')
|
|
||||||
TYPE_PROJECTION
|
|
||||||
TYPE_REFERENCE
|
|
||||||
USER_TYPE
|
|
||||||
REFERENCE_EXPRESSION
|
|
||||||
PsiElement(IDENTIFIER)('T')
|
|
||||||
PsiElement(GT)('>')
|
|
||||||
VALUE_ARGUMENT_LIST
|
|
||||||
PsiElement(LPAR)('(')
|
|
||||||
PsiComment(BLOCK_COMMENT)('/*tail.size + 1*/')
|
|
||||||
VALUE_ARGUMENT
|
|
||||||
REFERENCE_EXPRESSION
|
|
||||||
PsiElement(IDENTIFIER)('a')
|
|
||||||
PsiElement(RPAR)(')')
|
|
||||||
PsiWhiteSpace('\n\n ')
|
|
||||||
PROPERTY
|
|
||||||
PsiElement(val)('val')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PsiElement(IDENTIFIER)('isEmpty')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PsiElement(COLON)(':')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
TYPE_REFERENCE
|
|
||||||
USER_TYPE
|
|
||||||
REFERENCE_EXPRESSION
|
|
||||||
PsiElement(IDENTIFIER)('Bool')
|
|
||||||
PsiWhiteSpace('\n ')
|
|
||||||
PROPERTY_ACCESSOR
|
|
||||||
PsiElement(get)('get')
|
|
||||||
PsiElement(LPAR)('(')
|
|
||||||
PsiElement(RPAR)(')')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PsiElement(EQ)('=')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
REFERENCE_EXPRESSION
|
|
||||||
PsiElement(IDENTIFIER)('size')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PsiComment(EOL_COMMENT)('//> 0')
|
|
||||||
PsiWhiteSpace('\n')
|
|
||||||
PsiElement(RBRACE)('}')
|
PsiElement(RBRACE)('}')
|
||||||
@@ -139,15 +139,11 @@ JetFile: AnonymousObjects.jet
|
|||||||
ENUM_ENTRY
|
ENUM_ENTRY
|
||||||
OBJECT_DECLARATION_NAME
|
OBJECT_DECLARATION_NAME
|
||||||
PsiElement(IDENTIFIER)('TOO_MANY_CLICKS')
|
PsiElement(IDENTIFIER)('TOO_MANY_CLICKS')
|
||||||
PsiWhiteSpace('\n ')
|
PsiWhiteSpace('\n ')
|
||||||
TYPE_PARAMETER_LIST
|
|
||||||
<empty list>
|
|
||||||
ENUM_ENTRY
|
ENUM_ENTRY
|
||||||
OBJECT_DECLARATION_NAME
|
OBJECT_DECLARATION_NAME
|
||||||
PsiElement(IDENTIFIER)('ONE_MORE_MESSAGE')
|
PsiElement(IDENTIFIER)('ONE_MORE_MESSAGE')
|
||||||
PsiWhiteSpace('\n')
|
PsiWhiteSpace('\n')
|
||||||
TYPE_PARAMETER_LIST
|
|
||||||
<empty list>
|
|
||||||
PsiElement(RBRACE)('}')
|
PsiElement(RBRACE)('}')
|
||||||
PsiWhiteSpace('\n\n')
|
PsiWhiteSpace('\n\n')
|
||||||
PsiComment(EOL_COMMENT)('// Type of this variable is GOD_AnonymousClass')
|
PsiComment(EOL_COMMENT)('// Type of this variable is GOD_AnonymousClass')
|
||||||
|
|||||||
@@ -58,8 +58,6 @@ JetFile: Color.jet
|
|||||||
OBJECT_DECLARATION_NAME
|
OBJECT_DECLARATION_NAME
|
||||||
PsiElement(IDENTIFIER)('RED')
|
PsiElement(IDENTIFIER)('RED')
|
||||||
PsiWhiteSpace(' ')
|
PsiWhiteSpace(' ')
|
||||||
TYPE_PARAMETER_LIST
|
|
||||||
<empty list>
|
|
||||||
PsiElement(COLON)(':')
|
PsiElement(COLON)(':')
|
||||||
PsiWhiteSpace(' ')
|
PsiWhiteSpace(' ')
|
||||||
INITIALIZER_LIST
|
INITIALIZER_LIST
|
||||||
@@ -90,8 +88,6 @@ JetFile: Color.jet
|
|||||||
OBJECT_DECLARATION_NAME
|
OBJECT_DECLARATION_NAME
|
||||||
PsiElement(IDENTIFIER)('GREEN')
|
PsiElement(IDENTIFIER)('GREEN')
|
||||||
PsiWhiteSpace(' ')
|
PsiWhiteSpace(' ')
|
||||||
TYPE_PARAMETER_LIST
|
|
||||||
<empty list>
|
|
||||||
PsiElement(COLON)(':')
|
PsiElement(COLON)(':')
|
||||||
PsiWhiteSpace(' ')
|
PsiWhiteSpace(' ')
|
||||||
INITIALIZER_LIST
|
INITIALIZER_LIST
|
||||||
@@ -122,8 +118,6 @@ JetFile: Color.jet
|
|||||||
OBJECT_DECLARATION_NAME
|
OBJECT_DECLARATION_NAME
|
||||||
PsiElement(IDENTIFIER)('BLUE')
|
PsiElement(IDENTIFIER)('BLUE')
|
||||||
PsiWhiteSpace(' ')
|
PsiWhiteSpace(' ')
|
||||||
TYPE_PARAMETER_LIST
|
|
||||||
<empty list>
|
|
||||||
PsiElement(COLON)(':')
|
PsiElement(COLON)(':')
|
||||||
PsiWhiteSpace(' ')
|
PsiWhiteSpace(' ')
|
||||||
INITIALIZER_LIST
|
INITIALIZER_LIST
|
||||||
|
|||||||
@@ -1,26 +0,0 @@
|
|||||||
enum class List<out T>(theSize : Int) : IList<T> {
|
|
||||||
Nil : List<Nothing>(0)
|
|
||||||
|
|
||||||
Cons<T>(val value : T, val tail : List<T>) : List<T>(1 + tail.size)
|
|
||||||
|
|
||||||
override val size : Int
|
|
||||||
get() = theSize
|
|
||||||
|
|
||||||
|
|
||||||
override val isEmpty : Boolean
|
|
||||||
get() = this == Nil
|
|
||||||
|
|
||||||
|
|
||||||
override fun iterator() = object : IIterator() {
|
|
||||||
private var current = List.this
|
|
||||||
|
|
||||||
override val hasNext
|
|
||||||
get() = current == Nil
|
|
||||||
|
|
||||||
override fun next() {
|
|
||||||
val result = current.value
|
|
||||||
current = current.tail
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,347 +0,0 @@
|
|||||||
JetFile: List.jet
|
|
||||||
NAMESPACE_HEADER
|
|
||||||
<empty list>
|
|
||||||
CLASS
|
|
||||||
MODIFIER_LIST
|
|
||||||
PsiElement(enum)('enum')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PsiElement(class)('class')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PsiElement(IDENTIFIER)('List')
|
|
||||||
TYPE_PARAMETER_LIST
|
|
||||||
PsiElement(LT)('<')
|
|
||||||
TYPE_PARAMETER
|
|
||||||
MODIFIER_LIST
|
|
||||||
PsiElement(out)('out')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PsiElement(IDENTIFIER)('T')
|
|
||||||
PsiElement(GT)('>')
|
|
||||||
VALUE_PARAMETER_LIST
|
|
||||||
PsiElement(LPAR)('(')
|
|
||||||
VALUE_PARAMETER
|
|
||||||
PsiElement(IDENTIFIER)('theSize')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PsiElement(COLON)(':')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
TYPE_REFERENCE
|
|
||||||
USER_TYPE
|
|
||||||
REFERENCE_EXPRESSION
|
|
||||||
PsiElement(IDENTIFIER)('Int')
|
|
||||||
PsiElement(RPAR)(')')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PsiElement(COLON)(':')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
DELEGATION_SPECIFIER_LIST
|
|
||||||
DELEGATOR_SUPER_CLASS
|
|
||||||
TYPE_REFERENCE
|
|
||||||
USER_TYPE
|
|
||||||
REFERENCE_EXPRESSION
|
|
||||||
PsiElement(IDENTIFIER)('IList')
|
|
||||||
TYPE_ARGUMENT_LIST
|
|
||||||
PsiElement(LT)('<')
|
|
||||||
TYPE_PROJECTION
|
|
||||||
TYPE_REFERENCE
|
|
||||||
USER_TYPE
|
|
||||||
REFERENCE_EXPRESSION
|
|
||||||
PsiElement(IDENTIFIER)('T')
|
|
||||||
PsiElement(GT)('>')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
CLASS_BODY
|
|
||||||
PsiElement(LBRACE)('{')
|
|
||||||
PsiWhiteSpace('\n ')
|
|
||||||
ENUM_ENTRY
|
|
||||||
OBJECT_DECLARATION_NAME
|
|
||||||
PsiElement(IDENTIFIER)('Nil')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
TYPE_PARAMETER_LIST
|
|
||||||
<empty list>
|
|
||||||
PsiElement(COLON)(':')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
INITIALIZER_LIST
|
|
||||||
DELEGATOR_SUPER_CALL
|
|
||||||
CONSTRUCTOR_CALLEE
|
|
||||||
TYPE_REFERENCE
|
|
||||||
USER_TYPE
|
|
||||||
REFERENCE_EXPRESSION
|
|
||||||
PsiElement(IDENTIFIER)('List')
|
|
||||||
TYPE_ARGUMENT_LIST
|
|
||||||
PsiElement(LT)('<')
|
|
||||||
TYPE_PROJECTION
|
|
||||||
TYPE_REFERENCE
|
|
||||||
USER_TYPE
|
|
||||||
REFERENCE_EXPRESSION
|
|
||||||
PsiElement(IDENTIFIER)('Nothing')
|
|
||||||
PsiElement(GT)('>')
|
|
||||||
VALUE_ARGUMENT_LIST
|
|
||||||
PsiElement(LPAR)('(')
|
|
||||||
VALUE_ARGUMENT
|
|
||||||
INTEGER_CONSTANT
|
|
||||||
PsiElement(INTEGER_LITERAL)('0')
|
|
||||||
PsiElement(RPAR)(')')
|
|
||||||
PsiWhiteSpace('\n\n ')
|
|
||||||
ENUM_ENTRY
|
|
||||||
OBJECT_DECLARATION_NAME
|
|
||||||
PsiElement(IDENTIFIER)('Cons')
|
|
||||||
TYPE_PARAMETER_LIST
|
|
||||||
PsiElement(LT)('<')
|
|
||||||
TYPE_PARAMETER
|
|
||||||
PsiElement(IDENTIFIER)('T')
|
|
||||||
PsiElement(GT)('>')
|
|
||||||
VALUE_PARAMETER_LIST
|
|
||||||
PsiElement(LPAR)('(')
|
|
||||||
VALUE_PARAMETER
|
|
||||||
PsiElement(val)('val')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PsiElement(IDENTIFIER)('value')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PsiElement(COLON)(':')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
TYPE_REFERENCE
|
|
||||||
USER_TYPE
|
|
||||||
REFERENCE_EXPRESSION
|
|
||||||
PsiElement(IDENTIFIER)('T')
|
|
||||||
PsiElement(COMMA)(',')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
VALUE_PARAMETER
|
|
||||||
PsiElement(val)('val')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PsiElement(IDENTIFIER)('tail')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PsiElement(COLON)(':')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
TYPE_REFERENCE
|
|
||||||
USER_TYPE
|
|
||||||
REFERENCE_EXPRESSION
|
|
||||||
PsiElement(IDENTIFIER)('List')
|
|
||||||
TYPE_ARGUMENT_LIST
|
|
||||||
PsiElement(LT)('<')
|
|
||||||
TYPE_PROJECTION
|
|
||||||
TYPE_REFERENCE
|
|
||||||
USER_TYPE
|
|
||||||
REFERENCE_EXPRESSION
|
|
||||||
PsiElement(IDENTIFIER)('T')
|
|
||||||
PsiElement(GT)('>')
|
|
||||||
PsiElement(RPAR)(')')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PsiElement(COLON)(':')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
INITIALIZER_LIST
|
|
||||||
DELEGATOR_SUPER_CALL
|
|
||||||
CONSTRUCTOR_CALLEE
|
|
||||||
TYPE_REFERENCE
|
|
||||||
USER_TYPE
|
|
||||||
REFERENCE_EXPRESSION
|
|
||||||
PsiElement(IDENTIFIER)('List')
|
|
||||||
TYPE_ARGUMENT_LIST
|
|
||||||
PsiElement(LT)('<')
|
|
||||||
TYPE_PROJECTION
|
|
||||||
TYPE_REFERENCE
|
|
||||||
USER_TYPE
|
|
||||||
REFERENCE_EXPRESSION
|
|
||||||
PsiElement(IDENTIFIER)('T')
|
|
||||||
PsiElement(GT)('>')
|
|
||||||
VALUE_ARGUMENT_LIST
|
|
||||||
PsiElement(LPAR)('(')
|
|
||||||
VALUE_ARGUMENT
|
|
||||||
BINARY_EXPRESSION
|
|
||||||
INTEGER_CONSTANT
|
|
||||||
PsiElement(INTEGER_LITERAL)('1')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
OPERATION_REFERENCE
|
|
||||||
PsiElement(PLUS)('+')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
DOT_QUALIFIED_EXPRESSION
|
|
||||||
REFERENCE_EXPRESSION
|
|
||||||
PsiElement(IDENTIFIER)('tail')
|
|
||||||
PsiElement(DOT)('.')
|
|
||||||
REFERENCE_EXPRESSION
|
|
||||||
PsiElement(IDENTIFIER)('size')
|
|
||||||
PsiElement(RPAR)(')')
|
|
||||||
PsiWhiteSpace('\n\n ')
|
|
||||||
PROPERTY
|
|
||||||
MODIFIER_LIST
|
|
||||||
PsiElement(override)('override')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PsiElement(val)('val')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PsiElement(IDENTIFIER)('size')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PsiElement(COLON)(':')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
TYPE_REFERENCE
|
|
||||||
USER_TYPE
|
|
||||||
REFERENCE_EXPRESSION
|
|
||||||
PsiElement(IDENTIFIER)('Int')
|
|
||||||
PsiWhiteSpace('\n ')
|
|
||||||
PROPERTY_ACCESSOR
|
|
||||||
PsiElement(get)('get')
|
|
||||||
PsiElement(LPAR)('(')
|
|
||||||
PsiElement(RPAR)(')')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PsiElement(EQ)('=')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
REFERENCE_EXPRESSION
|
|
||||||
PsiElement(IDENTIFIER)('theSize')
|
|
||||||
PsiWhiteSpace('\n\n\n ')
|
|
||||||
PROPERTY
|
|
||||||
MODIFIER_LIST
|
|
||||||
PsiElement(override)('override')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PsiElement(val)('val')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PsiElement(IDENTIFIER)('isEmpty')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PsiElement(COLON)(':')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
TYPE_REFERENCE
|
|
||||||
USER_TYPE
|
|
||||||
REFERENCE_EXPRESSION
|
|
||||||
PsiElement(IDENTIFIER)('Boolean')
|
|
||||||
PsiWhiteSpace('\n ')
|
|
||||||
PROPERTY_ACCESSOR
|
|
||||||
PsiElement(get)('get')
|
|
||||||
PsiElement(LPAR)('(')
|
|
||||||
PsiElement(RPAR)(')')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PsiElement(EQ)('=')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
BINARY_EXPRESSION
|
|
||||||
THIS_EXPRESSION
|
|
||||||
REFERENCE_EXPRESSION
|
|
||||||
PsiElement(this)('this')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
OPERATION_REFERENCE
|
|
||||||
PsiElement(EQEQ)('==')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
REFERENCE_EXPRESSION
|
|
||||||
PsiElement(IDENTIFIER)('Nil')
|
|
||||||
PsiWhiteSpace('\n\n\n ')
|
|
||||||
FUN
|
|
||||||
MODIFIER_LIST
|
|
||||||
PsiElement(override)('override')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PsiElement(fun)('fun')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PsiElement(IDENTIFIER)('iterator')
|
|
||||||
VALUE_PARAMETER_LIST
|
|
||||||
PsiElement(LPAR)('(')
|
|
||||||
PsiElement(RPAR)(')')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PsiElement(EQ)('=')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
OBJECT_LITERAL
|
|
||||||
OBJECT_DECLARATION
|
|
||||||
PsiElement(object)('object')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PsiElement(COLON)(':')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
DELEGATION_SPECIFIER_LIST
|
|
||||||
DELEGATOR_SUPER_CALL
|
|
||||||
CONSTRUCTOR_CALLEE
|
|
||||||
TYPE_REFERENCE
|
|
||||||
USER_TYPE
|
|
||||||
REFERENCE_EXPRESSION
|
|
||||||
PsiElement(IDENTIFIER)('IIterator')
|
|
||||||
VALUE_ARGUMENT_LIST
|
|
||||||
PsiElement(LPAR)('(')
|
|
||||||
PsiElement(RPAR)(')')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
CLASS_BODY
|
|
||||||
PsiElement(LBRACE)('{')
|
|
||||||
PsiWhiteSpace('\n ')
|
|
||||||
PROPERTY
|
|
||||||
MODIFIER_LIST
|
|
||||||
PsiElement(private)('private')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PsiElement(var)('var')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PsiElement(IDENTIFIER)('current')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PsiElement(EQ)('=')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
DOT_QUALIFIED_EXPRESSION
|
|
||||||
REFERENCE_EXPRESSION
|
|
||||||
PsiElement(IDENTIFIER)('List')
|
|
||||||
PsiElement(DOT)('.')
|
|
||||||
THIS_EXPRESSION
|
|
||||||
REFERENCE_EXPRESSION
|
|
||||||
PsiElement(this)('this')
|
|
||||||
PsiWhiteSpace('\n\n ')
|
|
||||||
PROPERTY
|
|
||||||
MODIFIER_LIST
|
|
||||||
PsiElement(override)('override')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PsiElement(val)('val')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PsiElement(IDENTIFIER)('hasNext')
|
|
||||||
PsiWhiteSpace('\n ')
|
|
||||||
PROPERTY_ACCESSOR
|
|
||||||
PsiElement(get)('get')
|
|
||||||
PsiElement(LPAR)('(')
|
|
||||||
PsiElement(RPAR)(')')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PsiElement(EQ)('=')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
BINARY_EXPRESSION
|
|
||||||
REFERENCE_EXPRESSION
|
|
||||||
PsiElement(IDENTIFIER)('current')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
OPERATION_REFERENCE
|
|
||||||
PsiElement(EQEQ)('==')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
REFERENCE_EXPRESSION
|
|
||||||
PsiElement(IDENTIFIER)('Nil')
|
|
||||||
PsiWhiteSpace('\n\n ')
|
|
||||||
FUN
|
|
||||||
MODIFIER_LIST
|
|
||||||
PsiElement(override)('override')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PsiElement(fun)('fun')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PsiElement(IDENTIFIER)('next')
|
|
||||||
VALUE_PARAMETER_LIST
|
|
||||||
PsiElement(LPAR)('(')
|
|
||||||
PsiElement(RPAR)(')')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
BLOCK
|
|
||||||
PsiElement(LBRACE)('{')
|
|
||||||
PsiWhiteSpace('\n ')
|
|
||||||
PROPERTY
|
|
||||||
PsiElement(val)('val')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PsiElement(IDENTIFIER)('result')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PsiElement(EQ)('=')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
DOT_QUALIFIED_EXPRESSION
|
|
||||||
REFERENCE_EXPRESSION
|
|
||||||
PsiElement(IDENTIFIER)('current')
|
|
||||||
PsiElement(DOT)('.')
|
|
||||||
REFERENCE_EXPRESSION
|
|
||||||
PsiElement(IDENTIFIER)('value')
|
|
||||||
PsiWhiteSpace('\n ')
|
|
||||||
BINARY_EXPRESSION
|
|
||||||
REFERENCE_EXPRESSION
|
|
||||||
PsiElement(IDENTIFIER)('current')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
OPERATION_REFERENCE
|
|
||||||
PsiElement(EQ)('=')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
DOT_QUALIFIED_EXPRESSION
|
|
||||||
REFERENCE_EXPRESSION
|
|
||||||
PsiElement(IDENTIFIER)('current')
|
|
||||||
PsiElement(DOT)('.')
|
|
||||||
REFERENCE_EXPRESSION
|
|
||||||
PsiElement(IDENTIFIER)('tail')
|
|
||||||
PsiWhiteSpace('\n ')
|
|
||||||
RETURN
|
|
||||||
PsiElement(return)('return')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
REFERENCE_EXPRESSION
|
|
||||||
PsiElement(IDENTIFIER)('result')
|
|
||||||
PsiWhiteSpace('\n ')
|
|
||||||
PsiElement(RBRACE)('}')
|
|
||||||
PsiWhiteSpace('\n ')
|
|
||||||
PsiElement(RBRACE)('}')
|
|
||||||
PsiWhiteSpace('\n')
|
|
||||||
PsiElement(RBRACE)('}')
|
|
||||||
@@ -219,23 +219,17 @@ JetFile: Comparison.jet
|
|||||||
ENUM_ENTRY
|
ENUM_ENTRY
|
||||||
OBJECT_DECLARATION_NAME
|
OBJECT_DECLARATION_NAME
|
||||||
PsiElement(IDENTIFIER)('LS')
|
PsiElement(IDENTIFIER)('LS')
|
||||||
TYPE_PARAMETER_LIST
|
|
||||||
<empty list>
|
|
||||||
PsiElement(SEMICOLON)(';')
|
PsiElement(SEMICOLON)(';')
|
||||||
PsiWhiteSpace(' ')
|
PsiWhiteSpace(' ')
|
||||||
ENUM_ENTRY
|
ENUM_ENTRY
|
||||||
OBJECT_DECLARATION_NAME
|
OBJECT_DECLARATION_NAME
|
||||||
PsiElement(IDENTIFIER)('EQ')
|
PsiElement(IDENTIFIER)('EQ')
|
||||||
TYPE_PARAMETER_LIST
|
|
||||||
<empty list>
|
|
||||||
PsiElement(SEMICOLON)(';')
|
PsiElement(SEMICOLON)(';')
|
||||||
PsiWhiteSpace(' ')
|
PsiWhiteSpace(' ')
|
||||||
ENUM_ENTRY
|
ENUM_ENTRY
|
||||||
OBJECT_DECLARATION_NAME
|
OBJECT_DECLARATION_NAME
|
||||||
PsiElement(IDENTIFIER)('GR')
|
PsiElement(IDENTIFIER)('GR')
|
||||||
PsiWhiteSpace('\n')
|
PsiWhiteSpace('\n')
|
||||||
TYPE_PARAMETER_LIST
|
|
||||||
<empty list>
|
|
||||||
PsiElement(RBRACE)('}')
|
PsiElement(RBRACE)('}')
|
||||||
PsiWhiteSpace('\n\n')
|
PsiWhiteSpace('\n\n')
|
||||||
TYPEDEF
|
TYPEDEF
|
||||||
|
|||||||
@@ -15,12 +15,15 @@
|
|||||||
*/
|
*/
|
||||||
package org.jetbrains.jet.checkers;
|
package org.jetbrains.jet.checkers;
|
||||||
|
|
||||||
|
import junit.framework.Assert;
|
||||||
import junit.framework.Test;
|
import junit.framework.Test;
|
||||||
import junit.framework.TestSuite;
|
import junit.framework.TestSuite;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
import org.jetbrains.jet.JetTestUtils;
|
import org.jetbrains.jet.JetTestUtils;
|
||||||
import org.jetbrains.jet.test.TestMetadata;
|
import org.jetbrains.jet.test.TestMetadata;
|
||||||
|
|
||||||
import java.io.File;
|
import org.jetbrains.jet.checkers.AbstractDiagnosticsTestWithEagerResolve;
|
||||||
|
|
||||||
/** This class is generated by {@link org.jetbrains.jet.checkers.AbstractDiagnosticsTestWithEagerResolve}. DO NOT MODIFY MANUALLY */
|
/** This class is generated by {@link org.jetbrains.jet.checkers.AbstractDiagnosticsTestWithEagerResolve}. DO NOT MODIFY MANUALLY */
|
||||||
public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEagerResolve {
|
public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEagerResolve {
|
||||||
@@ -205,11 +208,6 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage
|
|||||||
doTest("compiler/testData/diagnostics/tests/Dollar.kt");
|
doTest("compiler/testData/diagnostics/tests/Dollar.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
@TestMetadata("Enums.kt")
|
|
||||||
public void testEnums() throws Exception {
|
|
||||||
doTest("compiler/testData/diagnostics/tests/Enums.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("ForRangeConventions.kt")
|
@TestMetadata("ForRangeConventions.kt")
|
||||||
public void testForRangeConventions() throws Exception {
|
public void testForRangeConventions() throws Exception {
|
||||||
doTest("compiler/testData/diagnostics/tests/ForRangeConventions.kt");
|
doTest("compiler/testData/diagnostics/tests/ForRangeConventions.kt");
|
||||||
|
|||||||
@@ -9,5 +9,5 @@ enumClassBody
|
|||||||
;
|
;
|
||||||
|
|
||||||
enumEntry
|
enumEntry
|
||||||
: modifiers SimpleName typeParameters? valueParameters? (":" initializer{","})? typeConstraints classBody?
|
: modifiers SimpleName (":" initializer{","})? classBody?
|
||||||
;
|
;
|
||||||
|
|||||||
@@ -1,10 +0,0 @@
|
|||||||
enum class List<out T>(val size : Int) {
|
|
||||||
Nil : List<Nothing>(0) {
|
|
||||||
val a = 1
|
|
||||||
}
|
|
||||||
Cons<out T>(val head : T, val tail : List<T>) : List<T>(tail.size + 1)
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
val foo = List.Nil
|
|
||||||
val foo1 = foo.a
|
|
||||||
@@ -98,11 +98,6 @@ public class JetPsiCheckerTestGenerated extends AbstractJetPsiCheckerTest {
|
|||||||
doTest("idea/testData/checker/CyclicHierarchy.jet");
|
doTest("idea/testData/checker/CyclicHierarchy.jet");
|
||||||
}
|
}
|
||||||
|
|
||||||
@TestMetadata("Enums.jet")
|
|
||||||
public void testEnums() throws Exception {
|
|
||||||
doTest("idea/testData/checker/Enums.jet");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("ExtensionFunctions.jet")
|
@TestMetadata("ExtensionFunctions.jet")
|
||||||
public void testExtensionFunctions() throws Exception {
|
public void testExtensionFunctions() throws Exception {
|
||||||
doTest("idea/testData/checker/ExtensionFunctions.jet");
|
doTest("idea/testData/checker/ExtensionFunctions.jet");
|
||||||
|
|||||||
@@ -140,9 +140,7 @@ public class JetStubsTest extends LightCodeInsightFixtureTestCase {
|
|||||||
" CLASS:PsiJetClassStubImpl[name=Test fqn=Test superNames=[]]\n" +
|
" CLASS:PsiJetClassStubImpl[name=Test fqn=Test superNames=[]]\n" +
|
||||||
" TYPE_PARAMETER_LIST:PsiJetTypeParameterListStubImpl\n" +
|
" TYPE_PARAMETER_LIST:PsiJetTypeParameterListStubImpl\n" +
|
||||||
" ENUM_ENTRY:PsiJetClassStubImpl[enumEntry name=First fqn=Test.First superNames=[]]\n" +
|
" ENUM_ENTRY:PsiJetClassStubImpl[enumEntry name=First fqn=Test.First superNames=[]]\n" +
|
||||||
" TYPE_PARAMETER_LIST:PsiJetTypeParameterListStubImpl\n" +
|
" ENUM_ENTRY:PsiJetClassStubImpl[enumEntry name=Second fqn=Test.Second superNames=[]]\n"
|
||||||
" ENUM_ENTRY:PsiJetClassStubImpl[enumEntry name=Second fqn=Test.Second superNames=[]]\n" +
|
|
||||||
" TYPE_PARAMETER_LIST:PsiJetTypeParameterListStubImpl\n"
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user