Fixing function types

This commit is contained in:
Andrey Breslav
2010-12-29 15:42:57 +03:00
parent 49d4812a20
commit 2305f3c445
28 changed files with 1674 additions and 1215 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
[inline] fun with<T>(receiver : T, body : T.{() : Unit}) = receiver.body() [inline] fun with<T>(receiver : T, body : {T.() : Unit}) = receiver.body()
fun example() { fun example() {
+1 -1
View File
@@ -67,7 +67,7 @@ initializer
; ;
block block
: "{" (expression SEMI)* "}" : "{" expressions "}"
; ;
decomposer // TODO: consider other names decomposer // TODO: consider other names
+18 -28
View File
@@ -3,9 +3,6 @@ expression
: literalConstant : literalConstant
: functionLiteral : functionLiteral
: tupleLiteral : tupleLiteral
: listLiteral
: mapLiteral
: range
: "null" : "null"
: "this" ("<" type ">")? : "this" ("<" type ">")?
: expressionWithPrecedences : expressionWithPrecedences
@@ -70,6 +67,7 @@ typingOperation
: "as" : "as"
: "is" : "is"
: "isnot" : "isnot"
: ":"
; ;
binOpExpression binOpExpression
@@ -77,19 +75,23 @@ binOpExpression
; ;
binaryOperation // Decreasing precedence binaryOperation // Decreasing precedence
// . : "." : "?." : "#"
// unary // unary
: "*" : "/" : "%" : "*" : "/" : "%"
: "+" : "-" : "+" : "-"
// No << >> >>> // No << >> >>>
// named functions in infix form : ".."
: "<" : ">" : ">=" : "<=" : "in" // is isnot as // TODO: Check the precedence for in carefully : SimpleName
: "?:"
: "in" : "is" : "!in" : "!is" : "as"
: "<" : ">" : ">=" : "<="
: "!=" : "==" : "===" : "!==" : "!=" : "==" : "===" : "!=="
// No | & ^ ~ // No | & ^ ~
: "&&" : "&&"
: "||" : "||"
: "?:" : "->"
// assignments : ":"
: assignmentOperator
; ;
assignmentOperator assignmentOperator
@@ -152,32 +154,20 @@ tupleLiteral // Ambiguity when after a SimpleName (infix call). In this case (e)
; ;
functionLiteral // one can use "it" as a parameter name functionLiteral // one can use "it" as a parameter name
: "{" SimpleName "=>" expression "}" : "{" expressions "}"
: "{" "(" SimpleName{","} ")" "=>" expression "}" : "{" (type ".")? SimpleName "=>" expressions "}"
: "{" "(" parameter{","} ")" (":" type)? "=>" expression "}" : "{" (type ".")? "(" SimpleName{","} ")" "=>" expressions "}"
: "{" (type ".")? "(" parameter{","} ")" (":" type)? "=>" expressions "}"
;
expressions
: expression{SEMI} SEMI?
; ;
constructorInvocation constructorInvocation
: userType valueArguments? : userType valueArguments?
; ;
listLiteral
: "[" expression{","}? "]"
;
mapLiteral
: "[" mapLiteralEntry{","} "]"
: "[" ":" "]"
;
mapLiteralEntry
: expression ":" expression
;
range
: "[" expression ".." expression "]"
;
memberAccess memberAccess
: functionCall : functionCall
: fieldOrPropertyAccess : fieldOrPropertyAccess
+3 -3
View File
@@ -10,11 +10,11 @@ Foo<Bar<X>, T, Object> // user type
*/ */
type type
: attributes (userType | functionType | tupleType) : attributes (functionType | userType | tupleType)
; ;
userType userType
: /*(SimpleName ".")* */ simpleUserType{"."} : simpleUserType{"."}
; ;
simpleUserType simpleUserType
@@ -26,7 +26,7 @@ optionalProjection
; ;
functionType functionType
: (type ".")? "{" functionTypeContents "}" : "{" (type ".")? functionTypeContents "}"
; ;
functionTypeContents functionTypeContents
@@ -87,6 +87,7 @@ public interface JetNodeTypes {
JetNodeType LOOP_PARAMETER = new JetNodeType("LOOP_PARAMETER"); JetNodeType LOOP_PARAMETER = new JetNodeType("LOOP_PARAMETER");
JetNodeType LOOP_RANGE = new JetNodeType("LOOP_RANGE"); JetNodeType LOOP_RANGE = new JetNodeType("LOOP_RANGE");
JetNodeType BODY = new JetNodeType("BODY"); JetNodeType BODY = new JetNodeType("BODY");
JetNodeType RECEIVER_TYPE = new JetNodeType("RECEIVER_TYPE");
IElementType NAMESPACE_NAME = new JetNodeType("NAMESPACE_NAME"); IElementType NAMESPACE_NAME = new JetNodeType("NAMESPACE_NAME");
} }
@@ -170,6 +170,13 @@ import static org.jetbrains.jet.lexer.JetTokens.*;
int openBrackets = 0; int openBrackets = 0;
IElementType previousToken = null; IElementType previousToken = null;
while (!eof()) { while (!eof()) {
if (atSet(lookFor)
&& openAngleBrackets == 0
&& openBrackets == 0
&& openBraces == 0
&& openParentheses == 0) {
lastOccurrence = myBuilder.getCurrentOffset();
}
if (atSet(stopAt)) { if (atSet(stopAt)) {
if (openAngleBrackets == 0 if (openAngleBrackets == 0
&& openBrackets == 0 && openBrackets == 0
@@ -202,13 +209,6 @@ import static org.jetbrains.jet.lexer.JetTokens.*;
else if (at(RBRACKET)) { else if (at(RBRACKET)) {
openBrackets--; openBrackets--;
} }
else if (atSet(lookFor)
&& openAngleBrackets == 0
&& openBrackets == 0
&& openBraces == 0
&& openParentheses == 0) {
lastOccurrence = myBuilder.getCurrentOffset();
}
previousToken = tt(); previousToken = tt();
advance(); // skip token advance(); // skip token
} }
@@ -24,9 +24,6 @@ public class JetExpressionParsing extends AbstractJetParsing {
* : literalConstant * : literalConstant
* : functionLiteral * : functionLiteral
* : tupleLiteral * : tupleLiteral
* : listLiteral
* : mapLiteral
* : range
* : "null" * : "null"
* : "this" ("<" type ">")? * : "this" ("<" type ">")?
* : expressionWithPrecedences * : expressionWithPrecedences
@@ -46,9 +43,6 @@ public class JetExpressionParsing extends AbstractJetParsing {
if (at(LPAR)) { if (at(LPAR)) {
parseParenthesizedExpressionOrTuple(); parseParenthesizedExpressionOrTuple();
} }
else if (at(LBRACKET)) {
parseMapListOrRange();
}
else if (at(THIS_KEYWORD)) { else if (at(THIS_KEYWORD)) {
parseThisExpression(); parseThisExpression();
} }
@@ -88,22 +82,6 @@ public class JetExpressionParsing extends AbstractJetParsing {
else if (at(DO_KEYWORD)) { else if (at(DO_KEYWORD)) {
parseDoWhile(); parseDoWhile();
} }
else if (atSet(TokenSet.create(
CLASS_KEYWORD,
EXTENSION_KEYWORD,
FUN_KEYWORD,
VAL_KEYWORD,
VAR_KEYWORD,
TYPE_KEYWORD))) {
// TODO
}
else if (at(IDENTIFIER)) {
advance(); // TODO
}
else if (at(LBRACE)) {
// TODO
myJetParsing.parseBlock();
}
else if (at(INTEGER_LITERAL)) { else if (at(INTEGER_LITERAL)) {
parseOneTokenExpression(INTEGER_CONSTANT); parseOneTokenExpression(INTEGER_CONSTANT);
} }
@@ -128,6 +106,24 @@ public class JetExpressionParsing extends AbstractJetParsing {
else if (at(NULL_KEYWORD)) { else if (at(NULL_KEYWORD)) {
parseOneTokenExpression(NULL); parseOneTokenExpression(NULL);
} }
else if (atSet(TokenSet.create(
CLASS_KEYWORD,
EXTENSION_KEYWORD,
FUN_KEYWORD,
VAL_KEYWORD,
VAR_KEYWORD,
TYPE_KEYWORD))) {
// modifiers
// attributes
// TODO
}
else if (at(IDENTIFIER)) {
advance(); // TODO
}
else if (at(LBRACE)) {
// TODO
myJetParsing.parseBlock();
}
else { else {
errorAndAdvance("Expecting an expression"); errorAndAdvance("Expecting an expression");
} }
@@ -390,90 +386,6 @@ public class JetExpressionParsing extends AbstractJetParsing {
typeof.done(TYPEOF); typeof.done(TYPEOF);
} }
/*
* listLiteral
* : "[" expression{","}? "]"
* ;
*
* mapLiteral
* : "[" mapEntryLiteral{","} "]"
* : "[" ":" "]"
* ;
*
* mapEntryLiteral
* : expression ":" expression
* ;
*
* range
* : "[" expression ".." expression "]"
* ;
*/
private void parseMapListOrRange() {
assert at(LBRACKET);
PsiBuilder.Marker literal = mark();
advance(); // LBRACKET
// If this is an empty map "[:]"
if (at(COLON)) {
advance(); // COLON
expect(RBRACKET, "Expecting ']' to close an empty map literal '[:]'");
literal.done(MAP_LITERAL);
return;
}
// If this is an empty list "[]"
if (at(RBRACKET)) {
advance(); // RBRACKET
literal.done(LIST_LITERAL);
return;
}
PsiBuilder.Marker item = mark();
parseExpression();
// If it is a map "[e:e, e:e]"
if (at(COLON)) {
advance(); // COLON
parseExpression();
item.done(MAP_LITERAL_ENTRY);
while (at(COMMA)) {
advance(); // COMMA
if (at(COMMA)) error("Expecting a map entry");
parseMapLiteralEntry();
}
expect(RBRACKET, "Expecting ']' to close a map literal");
literal.done(MAP_LITERAL);
return;
}
// If it is a range "[a..b]"
if (at(RANGE)) {
item.drop();
advance(); // RANGE
parseExpression();
expect(RBRACKET, "Expecting ']' to close the range");
literal.done(RANGE_LITERAL);
return;
}
// Else: it must be a list literal "[a, b, c]"
item.drop();
while (at(COMMA)) {
advance(); // COMMA
if (at(COMMA)) error("Expecting a list entry");
parseExpression();
}
expect(RBRACKET, "Expecting a ']' to close a list");
literal.done(LIST_LITERAL);
}
/* /*
* mapLiteralEntry * mapLiteralEntry
* : expression ":" expression * : expression ":" expression
@@ -8,9 +8,7 @@ import com.intellij.psi.tree.IElementType;
import com.intellij.psi.tree.TokenSet; import com.intellij.psi.tree.TokenSet;
import org.jetbrains.jet.JetNodeType; import org.jetbrains.jet.JetNodeType;
import org.jetbrains.jet.lexer.JetKeywordToken; import org.jetbrains.jet.lexer.JetKeywordToken;
import org.jetbrains.jet.lexer.JetToken;
import java.util.Collection;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
@@ -1128,7 +1126,7 @@ public class JetParsing extends AbstractJetParsing {
/* /*
* type * type
* : attributes (userType | functionType | tupleType) * : attributes (functionType | userType | tupleType)
* ; * ;
*/ */
public void parseTypeRef() { public void parseTypeRef() {
@@ -1136,25 +1134,19 @@ public class JetParsing extends AbstractJetParsing {
parseAttributeList(); parseAttributeList();
TokenSet simpleTypeFirst = TokenSet.create(IDENTIFIER, LBRACE, LPAR); if (at(IDENTIFIER)) {
while (true) { parseUserType();
if (at(IDENTIFIER)) { }
parseSimpleUserType(); else if (at(LBRACE)) {
} parseFunctionType();
else if (at(LBRACE)) { }
parseSimpleFunctionType(); else if (at(LPAR)) {
} else if (at(LPAR)) { parseTupleType();
parseTupleType(); }
} else { else {
errorWithRecovery("Type expected", errorWithRecovery("Type expected",
TokenSet.orSet(TOPLEVEL_OBJECT_FIRST, TokenSet.orSet(TOPLEVEL_OBJECT_FIRST,
TokenSet.create(EQ, COMMA, GT, RBRACKET, DOT, RPAR, RBRACE, LBRACE, SEMICOLON))); TokenSet.create(EQ, COMMA, GT, RBRACKET, DOT, RPAR, RBRACE, LBRACE, SEMICOLON)));
break;
}
if (!at(DOT)) break;
if (!simpleTypeFirst.contains(lookahead(1))) break;
advance(); // DOT
} }
type.done(TYPE_REFERENCE); type.done(TYPE_REFERENCE);
} }
@@ -1165,15 +1157,11 @@ public class JetParsing extends AbstractJetParsing {
* ; * ;
*/ */
private void parseUserType() { private void parseUserType() {
PsiBuilder.Marker userType = mark();
while (true) { while (true) {
parseSimpleUserType(); parseSimpleUserType();
if (!at(DOT)) break; if (!at(DOT)) break;
advance(); // DOT advance(); // DOT
} }
userType.done(TYPE_REFERENCE);
} }
/* /*
@@ -1256,16 +1244,25 @@ public class JetParsing extends AbstractJetParsing {
} }
/* /*
* simpleFunctionType * functionType
* : "{" functionTypeContents "}" * : "{" (type ".")? functionTypeContents "}"
* ; * ;
*/ */
private void parseSimpleFunctionType() { private void parseFunctionType() {
assert at(LBRACE); assert at(LBRACE);
PsiBuilder.Marker functionType = mark(); PsiBuilder.Marker functionType = mark();
advance(); // LBRACE advance(); // LBRACE
int lastLPar = findLastBefore(TokenSet.create(LPAR), TokenSet.create(RBRACE, COLON), false);
if (lastLPar >= 0 && lastLPar > myBuilder.getCurrentOffset()) {
PsiBuilder.Marker receiverType = mark();
createTruncatedBuilder(lastLPar - 1).parseTypeRef();
receiverType.done(RECEIVER_TYPE);
advance(); // DOT
}
parseFunctionTypeContents(); parseFunctionTypeContents();
expect(RBRACE, "Expecting '}"); expect(RBRACE, "Expecting '}");
+25 -22
View File
@@ -85,7 +85,6 @@ RAW_STRING_LITERAL = {THREE_QUO} {QUO_STRING_CHAR}* {THREE_QUO}?
<YYINITIAL> "return" { return JetTokens.RETURN_KEYWORD ;} <YYINITIAL> "return" { return JetTokens.RETURN_KEYWORD ;}
<YYINITIAL> "typeof" { return JetTokens.TYPEOF_KEYWORD ;} <YYINITIAL> "typeof" { return JetTokens.TYPEOF_KEYWORD ;}
<YYINITIAL> "object" { return JetTokens.OBJECT_KEYWORD ;} <YYINITIAL> "object" { return JetTokens.OBJECT_KEYWORD ;}
<YYINITIAL> "isnot" { return JetTokens.ISNOT_KEYWORD ;}
<YYINITIAL> "while" { return JetTokens.WHILE_KEYWORD ;} <YYINITIAL> "while" { return JetTokens.WHILE_KEYWORD ;}
<YYINITIAL> "break" { return JetTokens.BREAK_KEYWORD ;} <YYINITIAL> "break" { return JetTokens.BREAK_KEYWORD ;}
<YYINITIAL> "class" { return JetTokens.CLASS_KEYWORD ;} <YYINITIAL> "class" { return JetTokens.CLASS_KEYWORD ;}
@@ -113,26 +112,14 @@ RAW_STRING_LITERAL = {THREE_QUO} {QUO_STRING_CHAR}* {THREE_QUO}?
<YYINITIAL> {IDENTIFIER} { return JetTokens.IDENTIFIER; } <YYINITIAL> {IDENTIFIER} { return JetTokens.IDENTIFIER; }
<YYINITIAL> "[" { return JetTokens.LBRACKET ; } <YYINITIAL> "===" { return JetTokens.EQEQEQ ; }
<YYINITIAL> "]" { return JetTokens.RBRACKET ; } <YYINITIAL> "!==" { return JetTokens.EXCLEQEQEQ; }
<YYINITIAL> "{" { return JetTokens.LBRACE ; } <YYINITIAL> "!in" { return JetTokens.NOT_IN; }
<YYINITIAL> "}" { return JetTokens.RBRACE ; } <YYINITIAL> "!is" { return JetTokens.NOT_IS; }
<YYINITIAL> "(" { return JetTokens.LPAR ; }
<YYINITIAL> ")" { return JetTokens.RPAR ; }
<YYINITIAL> "." { return JetTokens.DOT ; }
<YYINITIAL> "++" { return JetTokens.PLUSPLUS ; } <YYINITIAL> "++" { return JetTokens.PLUSPLUS ; }
<YYINITIAL> "--" { return JetTokens.MINUSMINUS; } <YYINITIAL> "--" { return JetTokens.MINUSMINUS; }
<YYINITIAL> "*" { return JetTokens.MUL ; }
<YYINITIAL> "+" { return JetTokens.PLUS ; }
<YYINITIAL> "-" { return JetTokens.MINUS ; }
<YYINITIAL> "!" { return JetTokens.EXCL ; }
<YYINITIAL> "/" { return JetTokens.DIV ; }
<YYINITIAL> "%" { return JetTokens.PERC ; }
<YYINITIAL> "<" { return JetTokens.LT ; }
<YYINITIAL> ">" { return JetTokens.GT ; }
<YYINITIAL> "<=" { return JetTokens.LTEQ ; } <YYINITIAL> "<=" { return JetTokens.LTEQ ; }
<YYINITIAL> ">=" { return JetTokens.GTEQ ; } <YYINITIAL> ">=" { return JetTokens.GTEQ ; }
<YYINITIAL> "===" { return JetTokens.EQEQEQ ; }
<YYINITIAL> "==" { return JetTokens.EQEQ ; } <YYINITIAL> "==" { return JetTokens.EQEQ ; }
<YYINITIAL> "!=" { return JetTokens.EXCLEQ ; } <YYINITIAL> "!=" { return JetTokens.EXCLEQ ; }
<YYINITIAL> "&&" { return JetTokens.ANDAND ; } <YYINITIAL> "&&" { return JetTokens.ANDAND ; }
@@ -141,16 +128,32 @@ RAW_STRING_LITERAL = {THREE_QUO} {QUO_STRING_CHAR}* {THREE_QUO}?
<YYINITIAL> "?:" { return JetTokens.ELVIS ; } <YYINITIAL> "?:" { return JetTokens.ELVIS ; }
<YYINITIAL> ".*" { return JetTokens.MAP ; } <YYINITIAL> ".*" { return JetTokens.MAP ; }
<YYINITIAL> ".?" { return JetTokens.FILTER ; } <YYINITIAL> ".?" { return JetTokens.FILTER ; }
<YYINITIAL> "?" { return JetTokens.QUEST ; }
<YYINITIAL> ":" { return JetTokens.COLON ; }
<YYINITIAL> ";" { return JetTokens.SEMICOLON ; }
<YYINITIAL> ".." { return JetTokens.RANGE ; }
<YYINITIAL> "=" { return JetTokens.EQ ; }
<YYINITIAL> "*=" { return JetTokens.MULTEQ ; } <YYINITIAL> "*=" { return JetTokens.MULTEQ ; }
<YYINITIAL> "/=" { return JetTokens.DIVEQ ; } <YYINITIAL> "/=" { return JetTokens.DIVEQ ; }
<YYINITIAL> "%=" { return JetTokens.PERCEQ ; } <YYINITIAL> "%=" { return JetTokens.PERCEQ ; }
<YYINITIAL> "+=" { return JetTokens.PLUSEQ ; } <YYINITIAL> "+=" { return JetTokens.PLUSEQ ; }
<YYINITIAL> "-=" { return JetTokens.MINUSEQ ; } <YYINITIAL> "-=" { return JetTokens.MINUSEQ ; }
<YYINITIAL> "->" { return JetTokens.ARROW ; }
<YYINITIAL> "[" { return JetTokens.LBRACKET ; }
<YYINITIAL> "]" { return JetTokens.RBRACKET ; }
<YYINITIAL> "{" { return JetTokens.LBRACE ; }
<YYINITIAL> "}" { return JetTokens.RBRACE ; }
<YYINITIAL> "(" { return JetTokens.LPAR ; }
<YYINITIAL> ")" { return JetTokens.RPAR ; }
<YYINITIAL> "." { return JetTokens.DOT ; }
<YYINITIAL> "*" { return JetTokens.MUL ; }
<YYINITIAL> "+" { return JetTokens.PLUS ; }
<YYINITIAL> "-" { return JetTokens.MINUS ; }
<YYINITIAL> "!" { return JetTokens.EXCL ; }
<YYINITIAL> "/" { return JetTokens.DIV ; }
<YYINITIAL> "%" { return JetTokens.PERC ; }
<YYINITIAL> "<" { return JetTokens.LT ; }
<YYINITIAL> ">" { return JetTokens.GT ; }
<YYINITIAL> "?" { return JetTokens.QUEST ; }
<YYINITIAL> ":" { return JetTokens.COLON ; }
<YYINITIAL> ";" { return JetTokens.SEMICOLON ; }
<YYINITIAL> ".." { return JetTokens.RANGE ; }
<YYINITIAL> "=" { return JetTokens.EQ ; }
<YYINITIAL> "," { return JetTokens.COMMA ; } <YYINITIAL> "," { return JetTokens.COMMA ; }
<YYINITIAL> . { return TokenType.BAD_CHARACTER; } <YYINITIAL> . { return TokenType.BAD_CHARACTER; }
@@ -40,7 +40,6 @@ public interface JetTokens {
JetKeywordToken TRUE_KEYWORD = JetKeywordToken.keyword("true"); JetKeywordToken TRUE_KEYWORD = JetKeywordToken.keyword("true");
JetKeywordToken FALSE_KEYWORD = JetKeywordToken.keyword("false"); JetKeywordToken FALSE_KEYWORD = JetKeywordToken.keyword("false");
JetKeywordToken IS_KEYWORD = JetKeywordToken.keyword("is"); JetKeywordToken IS_KEYWORD = JetKeywordToken.keyword("is");
JetKeywordToken ISNOT_KEYWORD = JetKeywordToken.keyword("isnot");
JetKeywordToken IN_KEYWORD = JetKeywordToken.keyword("in"); JetKeywordToken IN_KEYWORD = JetKeywordToken.keyword("in");
JetKeywordToken THROW_KEYWORD = JetKeywordToken.keyword("throw"); JetKeywordToken THROW_KEYWORD = JetKeywordToken.keyword("throw");
JetKeywordToken RETURN_KEYWORD = JetKeywordToken.keyword("return"); JetKeywordToken RETURN_KEYWORD = JetKeywordToken.keyword("return");
@@ -77,6 +76,8 @@ public interface JetTokens {
JetToken LTEQ = new JetToken("LTEQ"); JetToken LTEQ = new JetToken("LTEQ");
JetToken GTEQ = new JetToken("GTEQ"); JetToken GTEQ = new JetToken("GTEQ");
JetToken EQEQEQ = new JetToken("EQEQEQ"); JetToken EQEQEQ = new JetToken("EQEQEQ");
JetToken ARROW = new JetToken("ARROW");
JetToken EXCLEQEQEQ = new JetToken("EXCLEQEQEQ");
JetToken EQEQ = new JetToken("EQEQ"); JetToken EQEQ = new JetToken("EQEQ");
JetToken EXCLEQ = new JetToken("EXCLEQ"); JetToken EXCLEQ = new JetToken("EXCLEQ");
JetToken ANDAND = new JetToken("ANDAND"); JetToken ANDAND = new JetToken("ANDAND");
@@ -95,10 +96,12 @@ public interface JetTokens {
JetToken PERCEQ = new JetToken("PERCEQ"); JetToken PERCEQ = new JetToken("PERCEQ");
JetToken PLUSEQ = new JetToken("PLUSEQ"); JetToken PLUSEQ = new JetToken("PLUSEQ");
JetToken MINUSEQ = new JetToken("MINUSEQ"); JetToken MINUSEQ = new JetToken("MINUSEQ");
JetToken NOT_IN = new JetToken("NOT_IN");
JetToken NOT_IS = new JetToken("NOT_IS");
JetToken COMMA = new JetToken("COMMA"); JetToken COMMA = new JetToken("COMMA");
JetToken EOL_OR_SEMICOLON = new JetToken("EOL_OR_SEMICOLON"); JetToken EOL_OR_SEMICOLON = new JetToken("EOL_OR_SEMICOLON");
JetKeywordToken WRAPS_KEYWORD = JetKeywordToken.softKeyword("wraps"); JetKeywordToken WRAPS_KEYWORD = JetKeywordToken.softKeyword("wraps");
JetKeywordToken IMPORT_KEYWORD = JetKeywordToken.softKeyword("import"); JetKeywordToken IMPORT_KEYWORD = JetKeywordToken.softKeyword("import");
JetKeywordToken WHERE_KEYWORD = JetKeywordToken.softKeyword("where"); JetKeywordToken WHERE_KEYWORD = JetKeywordToken.softKeyword("where");
@@ -119,11 +122,12 @@ public interface JetTokens {
JetKeywordToken OUT_KEYWORD = JetKeywordToken.softKeyword("out"); JetKeywordToken OUT_KEYWORD = JetKeywordToken.softKeyword("out");
JetKeywordToken REF_KEYWORD = JetKeywordToken.softKeyword("ref"); JetKeywordToken REF_KEYWORD = JetKeywordToken.softKeyword("ref");
JetKeywordToken CATCH_KEYWORD = JetKeywordToken.softKeyword("catch"); JetKeywordToken CATCH_KEYWORD = JetKeywordToken.softKeyword("catch");
JetKeywordToken FINALLY_KEYWORD = JetKeywordToken.softKeyword("finally"); JetKeywordToken FINALLY_KEYWORD = JetKeywordToken.softKeyword("finally");
TokenSet KEYWORDS = TokenSet.create(NAMESPACE_KEYWORD, AS_KEYWORD, TYPE_KEYWORD, CLASS_KEYWORD, TokenSet KEYWORDS = TokenSet.create(NAMESPACE_KEYWORD, AS_KEYWORD, TYPE_KEYWORD, CLASS_KEYWORD,
THIS_KEYWORD, VAL_KEYWORD, VAR_KEYWORD, FUN_KEYWORD, DECOMPOSER_KEYWORD, EXTENSION_KEYWORD, FOR_KEYWORD, THIS_KEYWORD, VAL_KEYWORD, VAR_KEYWORD, FUN_KEYWORD, DECOMPOSER_KEYWORD, EXTENSION_KEYWORD, FOR_KEYWORD,
NULL_KEYWORD, TYPEOF_KEYWORD, NEW_KEYWORD, TRUE_KEYWORD, FALSE_KEYWORD, IS_KEYWORD, ISNOT_KEYWORD, NULL_KEYWORD, TYPEOF_KEYWORD, NEW_KEYWORD, TRUE_KEYWORD, FALSE_KEYWORD, IS_KEYWORD,
IN_KEYWORD, THROW_KEYWORD, RETURN_KEYWORD, BREAK_KEYWORD, CONTINUE_KEYWORD, OBJECT_KEYWORD, IF_KEYWORD, IN_KEYWORD, THROW_KEYWORD, RETURN_KEYWORD, BREAK_KEYWORD, CONTINUE_KEYWORD, OBJECT_KEYWORD, IF_KEYWORD,
ELSE_KEYWORD, WHILE_KEYWORD, DO_KEYWORD, MATCH_KEYWORD, REF_KEYWORD, OUT_KEYWORD, TRY_KEYWORD ELSE_KEYWORD, WHILE_KEYWORD, DO_KEYWORD, MATCH_KEYWORD, REF_KEYWORD, OUT_KEYWORD, TRY_KEYWORD
); );
@@ -140,7 +144,6 @@ public interface JetTokens {
); );
TokenSet WHITE_SPACE_OR_COMMENT_BIT_SET = TokenSet.create(WHITE_SPACE, BLOCK_COMMENT, EOL_COMMENT, DOC_COMMENT); TokenSet WHITE_SPACE_OR_COMMENT_BIT_SET = TokenSet.create(WHITE_SPACE, BLOCK_COMMENT, EOL_COMMENT, DOC_COMMENT);
TokenSet WHITESPACES = TokenSet.create(TokenType.WHITE_SPACE); TokenSet WHITESPACES = TokenSet.create(TokenType.WHITE_SPACE);
TokenSet COMMENTS = TokenSet.create(EOL_COMMENT, BLOCK_COMMENT, DOC_COMMENT); TokenSet COMMENTS = TokenSet.create(EOL_COMMENT, BLOCK_COMMENT, DOC_COMMENT);
TokenSet STRINGS = TokenSet.create(CHARACTER_LITERAL, STRING_LITERAL, RAW_STRING_LITERAL); TokenSet STRINGS = TokenSet.create(CHARACTER_LITERAL, STRING_LITERAL, RAW_STRING_LITERAL);
File diff suppressed because it is too large Load Diff
+68 -76
View File
@@ -40,20 +40,19 @@ JetFile: Attributes.jet
ATTRIBUTE_ANNOTATION ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
ATTRIBUTE ATTRIBUTE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('foo')
PsiElement(IDENTIFIER)('foo') TYPE_ARGUMENT_LIST
TYPE_ARGUMENT_LIST PsiElement(LT)('<')
PsiElement(LT)('<') TYPE_REFERENCE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('A')
PsiElement(IDENTIFIER)('A') PsiElement(COMMA)(',')
PsiElement(COMMA)(',') PsiWhiteSpace(' ')
PsiWhiteSpace(' ') TYPE_REFERENCE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('B')
PsiElement(IDENTIFIER)('B') PsiElement(GT)('>')
PsiElement(GT)('>')
VALUE_ARGUMENT_LIST VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
VALUE_ARGUMENT VALUE_ARGUMENT
@@ -65,54 +64,51 @@ JetFile: Attributes.jet
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiElement(COMMA)(',') PsiElement(COMMA)(',')
ATTRIBUTE ATTRIBUTE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('ina')
PsiElement(IDENTIFIER)('ina')
PsiElement(COMMA)(',') PsiElement(COMMA)(',')
ATTRIBUTE ATTRIBUTE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('foo')
PsiElement(IDENTIFIER)('foo') PsiElement(DOT)('.')
PsiElement(DOT)('.') USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('bar')
PsiElement(IDENTIFIER)('bar') PsiElement(DOT)('.')
PsiElement(DOT)('.') USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('goo')
PsiElement(IDENTIFIER)('goo') PsiElement(DOT)('.')
PsiElement(DOT)('.') USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('doo')
PsiElement(IDENTIFIER)('doo') TYPE_ARGUMENT_LIST
TYPE_ARGUMENT_LIST PsiElement(LT)('<')
PsiElement(LT)('<') TYPE_REFERENCE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('f')
PsiElement(IDENTIFIER)('f') PsiElement(GT)('>')
PsiElement(GT)('>') PsiElement(DOT)('.')
PsiElement(DOT)('.') USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('foo')
PsiElement(IDENTIFIER)('foo') TYPE_ARGUMENT_LIST
TYPE_ARGUMENT_LIST PsiElement(LT)('<')
PsiElement(LT)('<') TYPE_REFERENCE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('bar')
PsiElement(IDENTIFIER)('bar') PsiElement(COMMA)(',')
PsiElement(COMMA)(',') PsiWhiteSpace(' ')
PsiWhiteSpace(' ') TYPE_REFERENCE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('goo')
PsiElement(IDENTIFIER)('goo') PsiElement(GT)('>')
PsiElement(GT)('>') PsiElement(DOT)('.')
PsiElement(DOT)('.') USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('foo')
PsiElement(IDENTIFIER)('foo')
PsiElement(RBRACKET)(']') PsiElement(RBRACKET)(']')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
ATTRIBUTE_ANNOTATION ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
ATTRIBUTE ATTRIBUTE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('df')
PsiElement(IDENTIFIER)('df')
PsiElement(RBRACKET)(']') PsiElement(RBRACKET)(']')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
PsiElement(in)('in') PsiElement(in)('in')
@@ -120,9 +116,8 @@ JetFile: Attributes.jet
ATTRIBUTE_ANNOTATION ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
ATTRIBUTE ATTRIBUTE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('sdfsdf')
PsiElement(IDENTIFIER)('sdfsdf')
PsiElement(RBRACKET)(']') PsiElement(RBRACKET)(']')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
PsiElement(out)('out') PsiElement(out)('out')
@@ -155,30 +150,27 @@ JetFile: Attributes.jet
ATTRIBUTE_ANNOTATION ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
ATTRIBUTE ATTRIBUTE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('sdfsd')
PsiElement(IDENTIFIER)('sdfsd')
PsiElement(COMMA)(',') PsiElement(COMMA)(',')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
ATTRIBUTE ATTRIBUTE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('sdfsd')
PsiElement(IDENTIFIER)('sdfsd')
PsiElement(COMMA)(',') PsiElement(COMMA)(',')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
ATTRIBUTE ATTRIBUTE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('a')
PsiElement(IDENTIFIER)('a') PsiElement(DOT)('.')
PsiElement(DOT)('.') USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('b')
PsiElement(IDENTIFIER)('b') PsiElement(DOT)('.')
PsiElement(DOT)('.') USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('f')
PsiElement(IDENTIFIER)('f') PsiElement(DOT)('.')
PsiElement(DOT)('.') USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('c')
PsiElement(IDENTIFIER)('c')
PsiElement(RBRACKET)(']') PsiElement(RBRACKET)(']')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
PsiElement(private)('private') PsiElement(private)('private')
+72 -82
View File
@@ -45,20 +45,19 @@ JetFile: Attributes_ERR.jet
ATTRIBUTE_ANNOTATION ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
ATTRIBUTE ATTRIBUTE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('foo')
PsiElement(IDENTIFIER)('foo') TYPE_ARGUMENT_LIST
TYPE_ARGUMENT_LIST PsiElement(LT)('<')
PsiElement(LT)('<') TYPE_REFERENCE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('A')
PsiElement(IDENTIFIER)('A') PsiElement(COMMA)(',')
PsiElement(COMMA)(',') PsiWhiteSpace(' ')
PsiWhiteSpace(' ') TYPE_REFERENCE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('B')
PsiElement(IDENTIFIER)('B') PsiElement(GT)('>')
PsiElement(GT)('>')
VALUE_ARGUMENT_LIST VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
VALUE_ARGUMENT VALUE_ARGUMENT
@@ -71,54 +70,51 @@ JetFile: Attributes_ERR.jet
PsiElement(COMMA)(',') PsiElement(COMMA)(',')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
ATTRIBUTE ATTRIBUTE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('ina')
PsiElement(IDENTIFIER)('ina')
PsiElement(COMMA)(',') PsiElement(COMMA)(',')
ATTRIBUTE ATTRIBUTE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('foo')
PsiElement(IDENTIFIER)('foo') PsiElement(DOT)('.')
PsiElement(DOT)('.') USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('bar')
PsiElement(IDENTIFIER)('bar') PsiElement(DOT)('.')
PsiElement(DOT)('.') USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('goo')
PsiElement(IDENTIFIER)('goo') PsiElement(DOT)('.')
PsiElement(DOT)('.') USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('doo')
PsiElement(IDENTIFIER)('doo') TYPE_ARGUMENT_LIST
TYPE_ARGUMENT_LIST PsiElement(LT)('<')
PsiElement(LT)('<') TYPE_REFERENCE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('f')
PsiElement(IDENTIFIER)('f') PsiElement(GT)('>')
PsiElement(GT)('>') PsiElement(DOT)('.')
PsiElement(DOT)('.') USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('foo')
PsiElement(IDENTIFIER)('foo') TYPE_ARGUMENT_LIST
TYPE_ARGUMENT_LIST PsiElement(LT)('<')
PsiElement(LT)('<') TYPE_REFERENCE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('bar')
PsiElement(IDENTIFIER)('bar') PsiElement(COMMA)(',')
PsiElement(COMMA)(',') PsiWhiteSpace(' ')
PsiWhiteSpace(' ') TYPE_REFERENCE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('goo')
PsiElement(IDENTIFIER)('goo') PsiElement(GT)('>')
PsiElement(GT)('>') PsiElement(DOT)('.')
PsiElement(DOT)('.') USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('foo')
PsiElement(IDENTIFIER)('foo')
PsiElement(RBRACKET)(']') PsiElement(RBRACKET)(']')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
ATTRIBUTE_ANNOTATION ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
ATTRIBUTE ATTRIBUTE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('df')
PsiElement(IDENTIFIER)('df')
PsiElement(RBRACKET)(']') PsiElement(RBRACKET)(']')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
PsiElement(in)('in') PsiElement(in)('in')
@@ -126,9 +122,8 @@ JetFile: Attributes_ERR.jet
ATTRIBUTE_ANNOTATION ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
ATTRIBUTE ATTRIBUTE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('sdfsdf')
PsiElement(IDENTIFIER)('sdfsdf')
PsiElement(COMMA)(',') PsiElement(COMMA)(',')
PsiErrorElement:Expecting a comma-separated list of attributes PsiErrorElement:Expecting a comma-separated list of attributes
<empty list> <empty list>
@@ -137,14 +132,12 @@ JetFile: Attributes_ERR.jet
ATTRIBUTE_ANNOTATION ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
ATTRIBUTE ATTRIBUTE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('s')
PsiElement(IDENTIFIER)('s')
PsiElement(COMMA)(',') PsiElement(COMMA)(',')
ATTRIBUTE ATTRIBUTE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('fd')
PsiElement(IDENTIFIER)('fd')
PsiErrorElement:Expecting ']' to close an attribute annotation PsiErrorElement:Expecting ']' to close an attribute annotation
<empty list> <empty list>
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
@@ -185,30 +178,27 @@ JetFile: Attributes_ERR.jet
ATTRIBUTE_ANNOTATION ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
ATTRIBUTE ATTRIBUTE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('sdfsd')
PsiElement(IDENTIFIER)('sdfsd')
PsiElement(COMMA)(',') PsiElement(COMMA)(',')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
ATTRIBUTE ATTRIBUTE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('sdfsd')
PsiElement(IDENTIFIER)('sdfsd')
PsiElement(COMMA)(',') PsiElement(COMMA)(',')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
ATTRIBUTE ATTRIBUTE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('a')
PsiElement(IDENTIFIER)('a') PsiElement(DOT)('.')
PsiElement(DOT)('.') USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('b')
PsiElement(IDENTIFIER)('b') PsiElement(DOT)('.')
PsiElement(DOT)('.') USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('f')
PsiElement(IDENTIFIER)('f') PsiElement(DOT)('.')
PsiElement(DOT)('.') USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('c')
PsiElement(IDENTIFIER)('c')
PsiElement(RBRACKET)(']') PsiElement(RBRACKET)(']')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
PsiElement(private)('private') PsiElement(private)('private')
+2 -4
View File
@@ -67,10 +67,8 @@ fun a(
for (val x in foo) a for (val x in foo) a
for (x in foo) a for (x in foo) a
for (val x in [1..10]) a for (val x : Int in foo) a
for (x in [1..10]) a for (x : Int in foo) {}
for (val x : Int in [1..10]) a
for (x : Int in [1..10]) {}
while (true) {} while (true) {}
+2 -64
View File
@@ -448,54 +448,6 @@ JetFile: ControlStructures.jet
BODY BODY
PsiElement(IDENTIFIER)('a') PsiElement(IDENTIFIER)('a')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
FOR
PsiElement(for)('for')
PsiWhiteSpace(' ')
PsiElement(LPAR)('(')
LOOP_PARAMETER
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('x')
PsiWhiteSpace(' ')
PsiElement(in)('in')
PsiWhiteSpace(' ')
LOOP_RANGE
RANGE_LITERAL
PsiElement(LBRACKET)('[')
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('1')
PsiElement(RANGE)('..')
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('10')
PsiElement(RBRACKET)(']')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
BODY
PsiElement(IDENTIFIER)('a')
PsiWhiteSpace('\n ')
FOR
PsiElement(for)('for')
PsiWhiteSpace(' ')
PsiElement(LPAR)('(')
LOOP_PARAMETER
PsiElement(IDENTIFIER)('x')
PsiWhiteSpace(' ')
PsiElement(in)('in')
PsiWhiteSpace(' ')
LOOP_RANGE
RANGE_LITERAL
PsiElement(LBRACKET)('[')
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('1')
PsiElement(RANGE)('..')
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('10')
PsiElement(RBRACKET)(']')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
BODY
PsiElement(IDENTIFIER)('a')
PsiWhiteSpace('\n ')
FOR FOR
PsiElement(for)('for') PsiElement(for)('for')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
@@ -514,14 +466,7 @@ JetFile: ControlStructures.jet
PsiElement(in)('in') PsiElement(in)('in')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
LOOP_RANGE LOOP_RANGE
RANGE_LITERAL PsiElement(IDENTIFIER)('foo')
PsiElement(LBRACKET)('[')
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('1')
PsiElement(RANGE)('..')
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('10')
PsiElement(RBRACKET)(']')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
BODY BODY
@@ -543,14 +488,7 @@ JetFile: ControlStructures.jet
PsiElement(in)('in') PsiElement(in)('in')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
LOOP_RANGE LOOP_RANGE
RANGE_LITERAL PsiElement(IDENTIFIER)('foo')
PsiElement(LBRACKET)('[')
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('1')
PsiElement(RANGE)('..')
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('10')
PsiElement(RBRACKET)(']')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
BODY BODY
+1 -1
View File
@@ -1,6 +1,6 @@
decomposer (a, a) decomposer (a, a)
decomposer () decomposer ()
decomposer foo<T>.{() : ()}.bar(a, a) decomposer {foo<T>.() : ()}.bar(a, a)
decomposer a.foobar() decomposer a.foobar()
[a] decomposer foobar([a] s) [a] decomposer foobar([a] s)
decomposer foobar() decomposer foobar()
+17 -18
View File
@@ -22,17 +22,19 @@ JetFile: Decomposers.jet
PsiElement(decomposer)('decomposer') PsiElement(decomposer)('decomposer')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
TYPE_REFERENCE TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('foo')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('T')
PsiElement(GT)('>')
PsiElement(DOT)('.')
FUNCTION_TYPE FUNCTION_TYPE
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
RECEIVER_TYPE
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('foo')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('T')
PsiElement(GT)('>')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST VALUE_PARAMETER_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
@@ -44,9 +46,8 @@ JetFile: Decomposers.jet
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiElement(RBRACE)('}') PsiElement(RBRACE)('}')
PsiElement(DOT)('.') PsiElement(DOT)('.')
USER_TYPE PsiElement(IDENTIFIER)('bar')
PsiElement(IDENTIFIER)('bar')
DECOMPOSER_PROPERTY_LIST DECOMPOSER_PROPERTY_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiElement(IDENTIFIER)('a') PsiElement(IDENTIFIER)('a')
@@ -73,9 +74,8 @@ JetFile: Decomposers.jet
ATTRIBUTE_ANNOTATION ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
ATTRIBUTE ATTRIBUTE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('a')
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']') PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(decomposer)('decomposer') PsiElement(decomposer)('decomposer')
@@ -86,9 +86,8 @@ JetFile: Decomposers.jet
ATTRIBUTE_ANNOTATION ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
ATTRIBUTE ATTRIBUTE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('a')
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']') PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('s') PsiElement(IDENTIFIER)('s')
+3 -3
View File
@@ -1,5 +1,5 @@
decomposer (a a) decomposer (a a)
decomposer foo<T>.{() : ()}.bar(, a) decomposer {foo<T>.() : ()}.bar(, a)
decomposer a.foobar) decomposer a.foobar)
[a] decomposer foobar([a] s, ) [a] decomposer foobar([a] s, )
decomposer foobar([a]) decomposer foobar([a])
@@ -7,7 +7,7 @@ decomposer foobar([a])
decomposer (a, a). decomposer (a, a).
decomposer (). decomposer ().
decomposer foo<T>.{() : ()}.bar(a, a). decomposer {foo<T>.() : ()}.bar(a, a).
decomposer foo.bar.-() decomposer foo.bar.-()
+36 -36
View File
@@ -16,17 +16,19 @@ JetFile: Decomposers_ERR.jet
PsiElement(decomposer)('decomposer') PsiElement(decomposer)('decomposer')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
TYPE_REFERENCE TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('foo')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('T')
PsiElement(GT)('>')
PsiElement(DOT)('.')
FUNCTION_TYPE FUNCTION_TYPE
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
RECEIVER_TYPE
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('foo')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('T')
PsiElement(GT)('>')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST VALUE_PARAMETER_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
@@ -38,9 +40,8 @@ JetFile: Decomposers_ERR.jet
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiElement(RBRACE)('}') PsiElement(RBRACE)('}')
PsiElement(DOT)('.') PsiElement(DOT)('.')
USER_TYPE PsiElement(IDENTIFIER)('bar')
PsiElement(IDENTIFIER)('bar')
DECOMPOSER_PROPERTY_LIST DECOMPOSER_PROPERTY_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiErrorElement:Expecting a property name PsiErrorElement:Expecting a property name
@@ -69,9 +70,8 @@ JetFile: Decomposers_ERR.jet
ATTRIBUTE_ANNOTATION ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
ATTRIBUTE ATTRIBUTE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('a')
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']') PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(decomposer)('decomposer') PsiElement(decomposer)('decomposer')
@@ -82,9 +82,8 @@ JetFile: Decomposers_ERR.jet
ATTRIBUTE_ANNOTATION ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
ATTRIBUTE ATTRIBUTE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('a')
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']') PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('s') PsiElement(IDENTIFIER)('s')
@@ -103,9 +102,8 @@ JetFile: Decomposers_ERR.jet
ATTRIBUTE_ANNOTATION ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
ATTRIBUTE ATTRIBUTE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('a')
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']') PsiElement(RBRACKET)(']')
PsiErrorElement:Expecting a property name PsiErrorElement:Expecting a property name
<empty list> <empty list>
@@ -141,17 +139,19 @@ JetFile: Decomposers_ERR.jet
PsiElement(decomposer)('decomposer') PsiElement(decomposer)('decomposer')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
TYPE_REFERENCE TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('foo')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('T')
PsiElement(GT)('>')
PsiElement(DOT)('.')
FUNCTION_TYPE FUNCTION_TYPE
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
RECEIVER_TYPE
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('foo')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('T')
PsiElement(GT)('>')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST VALUE_PARAMETER_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
@@ -163,9 +163,8 @@ JetFile: Decomposers_ERR.jet
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiElement(RBRACE)('}') PsiElement(RBRACE)('}')
PsiElement(DOT)('.') PsiElement(DOT)('.')
USER_TYPE PsiElement(IDENTIFIER)('bar')
PsiElement(IDENTIFIER)('bar')
DECOMPOSER_PROPERTY_LIST DECOMPOSER_PROPERTY_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiElement(IDENTIFIER)('a') PsiElement(IDENTIFIER)('a')
@@ -185,9 +184,10 @@ JetFile: Decomposers_ERR.jet
PsiElement(DOT)('.') PsiElement(DOT)('.')
USER_TYPE USER_TYPE
PsiElement(IDENTIFIER)('bar') PsiElement(IDENTIFIER)('bar')
PsiElement(DOT)('.') PsiElement(DOT)('.')
PsiErrorElement:Expecting decomposer name USER_TYPE
PsiElement(MINUS)('-') PsiErrorElement:Type name expected
PsiElement(MINUS)('-')
DECOMPOSER_PROPERTY_LIST DECOMPOSER_PROPERTY_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
+18
View File
@@ -0,0 +1,18 @@
JetFile: FileStart_ERR.jet
NAMESPACE
PsiErrorElement:Expecting namespace or top level declaration
PsiElement(DIV)('/')
NAMESPACE
PsiElement(namespace)('namespace')
PsiWhiteSpace(' ')
NAMESPACE_NAME
PsiElement(IDENTIFIER)('foo')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('bar')
PsiErrorElement:A namespace block in '{...}' expected
<empty list>
PsiWhiteSpace('\n')
IMPORT_DIRECTIVE
PsiElement(import)('import')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('foo')
+17 -8
View File
@@ -15,11 +15,20 @@ type f = {(foo, a : {(a) : b}) : {() : ()}}
type f = {(lazy foo, out a : {(ref a) : b}) : {() : ()}} type f = {(lazy foo, out a : {(ref a) : b}) : {() : ()}}
type f = T.{() : ()} type f = {T.() : ()}
type f = T.T.{() : ()} type f = {T.T.() : ()}
type f = T<A, B>.T<x>.{() : ()} type f = {T<A, B>.T<x>.() : ()}
type f = (S).{() : ()}.{() : ()} type f = {{(S).() : ()}.() : ()}
type f = T.{() : ()}.{() : ()} type f = {{T.() : ()}.() : ()}
type f = T.T.{() : ()}.{() : ()} type f = {{T.T.() : ()}.() : ()}
type f = T<A, B>.T<x>.{() : ()}.{() : ()} type f = {{T<A, B>.T<x>.() : ()}.() : ()}
type f = (S).{() : ()}.{() : ()} type f = {{(S).() : ()}.() : ()}
type f = [a] {T.() : ()}
type f = [a] {T.T.() : ()}
type f = [a] {T<A, B>.T<x>.() : ()}
type f = [a] {[a] {(S).() : ()}.() : ()}
type f = [a] {[a] {T.() : ()}.() : ()}
type f = [a] {[a] {T.T.() : ()}.() : ()}
type f = [a] {[a] {T<A, B>.T<x>.() : ()}.() : ()}
type f = [a] {[a] {(S).() : ()}.() : ()}
+693 -214
View File
@@ -18,9 +18,8 @@ JetFile: FunctionTypes.jet
ATTRIBUTE_ANNOTATION ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
ATTRIBUTE ATTRIBUTE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('a')
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']') PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
TYPE_REFERENCE TYPE_REFERENCE
@@ -83,9 +82,8 @@ JetFile: FunctionTypes.jet
ATTRIBUTE_ANNOTATION ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
ATTRIBUTE ATTRIBUTE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('x')
PsiElement(IDENTIFIER)('x')
PsiElement(RBRACKET)(']') PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
USER_TYPE USER_TYPE
@@ -139,9 +137,8 @@ JetFile: FunctionTypes.jet
ATTRIBUTE_ANNOTATION ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
ATTRIBUTE ATTRIBUTE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('a')
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']') PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
USER_TYPE USER_TYPE
@@ -256,9 +253,8 @@ JetFile: FunctionTypes.jet
ATTRIBUTE_ANNOTATION ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
ATTRIBUTE ATTRIBUTE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('a')
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']') PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
USER_TYPE USER_TYPE
@@ -511,11 +507,13 @@ JetFile: FunctionTypes.jet
PsiElement(EQ)('=') PsiElement(EQ)('=')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
TYPE_REFERENCE TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('T')
PsiElement(DOT)('.')
FUNCTION_TYPE FUNCTION_TYPE
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
RECEIVER_TYPE
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('T')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST VALUE_PARAMETER_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
@@ -538,14 +536,16 @@ JetFile: FunctionTypes.jet
PsiElement(EQ)('=') PsiElement(EQ)('=')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
TYPE_REFERENCE TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('T')
PsiElement(DOT)('.')
USER_TYPE
PsiElement(IDENTIFIER)('T')
PsiElement(DOT)('.')
FUNCTION_TYPE FUNCTION_TYPE
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
RECEIVER_TYPE
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('T')
PsiElement(DOT)('.')
USER_TYPE
PsiElement(IDENTIFIER)('T')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST VALUE_PARAMETER_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
@@ -568,31 +568,33 @@ JetFile: FunctionTypes.jet
PsiElement(EQ)('=') PsiElement(EQ)('=')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
TYPE_REFERENCE TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('T')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('A')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('B')
PsiElement(GT)('>')
PsiElement(DOT)('.')
USER_TYPE
PsiElement(IDENTIFIER)('T')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('x')
PsiElement(GT)('>')
PsiElement(DOT)('.')
FUNCTION_TYPE FUNCTION_TYPE
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
RECEIVER_TYPE
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('T')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('A')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('B')
PsiElement(GT)('>')
PsiElement(DOT)('.')
USER_TYPE
PsiElement(IDENTIFIER)('T')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('x')
PsiElement(GT)('>')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST VALUE_PARAMETER_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
@@ -615,175 +617,276 @@ JetFile: FunctionTypes.jet
PsiElement(EQ)('=') PsiElement(EQ)('=')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
TYPE_REFERENCE TYPE_REFERENCE
TUPLE_TYPE FUNCTION_TYPE
PsiElement(LPAR)('(') PsiElement(LBRACE)('{')
RECEIVER_TYPE
TYPE_REFERENCE
FUNCTION_TYPE
PsiElement(LBRACE)('{')
RECEIVER_TYPE
TYPE_REFERENCE
TUPLE_TYPE
PsiElement(LPAR)('(')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('S')
PsiElement(RPAR)(')')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
TUPLE_TYPE
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiElement(RBRACE)('}')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE TYPE_REFERENCE
TUPLE_TYPE
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n')
TYPEDEF
PsiElement(type)('type')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('f')
PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
<empty list>
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
TYPE_REFERENCE
FUNCTION_TYPE
PsiElement(LBRACE)('{')
RECEIVER_TYPE
TYPE_REFERENCE
FUNCTION_TYPE
PsiElement(LBRACE)('{')
RECEIVER_TYPE
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('T')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
TUPLE_TYPE
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiElement(RBRACE)('}')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
TUPLE_TYPE
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n')
TYPEDEF
PsiElement(type)('type')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('f')
PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
<empty list>
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
TYPE_REFERENCE
FUNCTION_TYPE
PsiElement(LBRACE)('{')
RECEIVER_TYPE
TYPE_REFERENCE
FUNCTION_TYPE
PsiElement(LBRACE)('{')
RECEIVER_TYPE
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('T')
PsiElement(DOT)('.')
USER_TYPE
PsiElement(IDENTIFIER)('T')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
TUPLE_TYPE
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiElement(RBRACE)('}')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
TUPLE_TYPE
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n')
TYPEDEF
PsiElement(type)('type')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('f')
PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
<empty list>
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
TYPE_REFERENCE
FUNCTION_TYPE
PsiElement(LBRACE)('{')
RECEIVER_TYPE
TYPE_REFERENCE
FUNCTION_TYPE
PsiElement(LBRACE)('{')
RECEIVER_TYPE
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('T')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('A')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('B')
PsiElement(GT)('>')
PsiElement(DOT)('.')
USER_TYPE
PsiElement(IDENTIFIER)('T')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('x')
PsiElement(GT)('>')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
TUPLE_TYPE
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiElement(RBRACE)('}')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
TUPLE_TYPE
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n')
TYPEDEF
PsiElement(type)('type')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('f')
PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
<empty list>
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
TYPE_REFERENCE
FUNCTION_TYPE
PsiElement(LBRACE)('{')
RECEIVER_TYPE
TYPE_REFERENCE
FUNCTION_TYPE
PsiElement(LBRACE)('{')
RECEIVER_TYPE
TYPE_REFERENCE
TUPLE_TYPE
PsiElement(LPAR)('(')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('S')
PsiElement(RPAR)(')')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
TUPLE_TYPE
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiElement(RBRACE)('}')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
TUPLE_TYPE
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n\n')
TYPEDEF
PsiElement(type)('type')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('f')
PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
<empty list>
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
TYPE_REFERENCE
ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[')
ATTRIBUTE
USER_TYPE USER_TYPE
PsiElement(IDENTIFIER)('S') PsiElement(IDENTIFIER)('a')
PsiElement(RPAR)(')') PsiElement(RBRACKET)(']')
PsiElement(DOT)('.') PsiWhiteSpace(' ')
FUNCTION_TYPE FUNCTION_TYPE
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
VALUE_PARAMETER_LIST RECEIVER_TYPE
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
TUPLE_TYPE
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiElement(RBRACE)('}')
PsiElement(DOT)('.')
FUNCTION_TYPE
PsiElement(LBRACE)('{')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
TUPLE_TYPE
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n')
TYPEDEF
PsiElement(type)('type')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('f')
PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
<empty list>
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('T')
PsiElement(DOT)('.')
FUNCTION_TYPE
PsiElement(LBRACE)('{')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
TUPLE_TYPE
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiElement(RBRACE)('}')
PsiElement(DOT)('.')
FUNCTION_TYPE
PsiElement(LBRACE)('{')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
TUPLE_TYPE
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n')
TYPEDEF
PsiElement(type)('type')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('f')
PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
<empty list>
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('T')
PsiElement(DOT)('.')
USER_TYPE
PsiElement(IDENTIFIER)('T')
PsiElement(DOT)('.')
FUNCTION_TYPE
PsiElement(LBRACE)('{')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
TUPLE_TYPE
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiElement(RBRACE)('}')
PsiElement(DOT)('.')
FUNCTION_TYPE
PsiElement(LBRACE)('{')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
TUPLE_TYPE
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n')
TYPEDEF
PsiElement(type)('type')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('f')
PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
<empty list>
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('T')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_REFERENCE TYPE_REFERENCE
USER_TYPE USER_TYPE
PsiElement(IDENTIFIER)('A') PsiElement(IDENTIFIER)('T')
PsiElement(COMMA)(',') PsiElement(DOT)('.')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('B')
PsiElement(GT)('>')
PsiElement(DOT)('.')
USER_TYPE
PsiElement(IDENTIFIER)('T')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('x')
PsiElement(GT)('>')
PsiElement(DOT)('.')
FUNCTION_TYPE
PsiElement(LBRACE)('{')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
TUPLE_TYPE
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiElement(RBRACE)('}')
PsiElement(DOT)('.')
FUNCTION_TYPE
PsiElement(LBRACE)('{')
VALUE_PARAMETER_LIST VALUE_PARAMETER_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
@@ -806,15 +909,23 @@ JetFile: FunctionTypes.jet
PsiElement(EQ)('=') PsiElement(EQ)('=')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
TYPE_REFERENCE TYPE_REFERENCE
TUPLE_TYPE ATTRIBUTE_ANNOTATION
PsiElement(LPAR)('(') PsiElement(LBRACKET)('[')
TYPE_REFERENCE ATTRIBUTE
USER_TYPE USER_TYPE
PsiElement(IDENTIFIER)('S') PsiElement(IDENTIFIER)('a')
PsiElement(RPAR)(')') PsiElement(RBRACKET)(']')
PsiElement(DOT)('.') PsiWhiteSpace(' ')
FUNCTION_TYPE FUNCTION_TYPE
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
RECEIVER_TYPE
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('T')
PsiElement(DOT)('.')
USER_TYPE
PsiElement(IDENTIFIER)('T')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST VALUE_PARAMETER_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
@@ -826,9 +937,377 @@ JetFile: FunctionTypes.jet
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiElement(RBRACE)('}') PsiElement(RBRACE)('}')
PsiElement(DOT)('.') PsiWhiteSpace('\n')
TYPEDEF
PsiElement(type)('type')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('f')
PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
<empty list>
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
TYPE_REFERENCE
ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[')
ATTRIBUTE
USER_TYPE
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ')
FUNCTION_TYPE FUNCTION_TYPE
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
RECEIVER_TYPE
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('T')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('A')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('B')
PsiElement(GT)('>')
PsiElement(DOT)('.')
USER_TYPE
PsiElement(IDENTIFIER)('T')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('x')
PsiElement(GT)('>')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
TUPLE_TYPE
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n')
TYPEDEF
PsiElement(type)('type')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('f')
PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
<empty list>
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
TYPE_REFERENCE
ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[')
ATTRIBUTE
USER_TYPE
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ')
FUNCTION_TYPE
PsiElement(LBRACE)('{')
RECEIVER_TYPE
TYPE_REFERENCE
ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[')
ATTRIBUTE
USER_TYPE
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ')
FUNCTION_TYPE
PsiElement(LBRACE)('{')
RECEIVER_TYPE
TYPE_REFERENCE
TUPLE_TYPE
PsiElement(LPAR)('(')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('S')
PsiElement(RPAR)(')')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
TUPLE_TYPE
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiElement(RBRACE)('}')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
TUPLE_TYPE
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n')
TYPEDEF
PsiElement(type)('type')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('f')
PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
<empty list>
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
TYPE_REFERENCE
ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[')
ATTRIBUTE
USER_TYPE
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ')
FUNCTION_TYPE
PsiElement(LBRACE)('{')
RECEIVER_TYPE
TYPE_REFERENCE
ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[')
ATTRIBUTE
USER_TYPE
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ')
FUNCTION_TYPE
PsiElement(LBRACE)('{')
RECEIVER_TYPE
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('T')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
TUPLE_TYPE
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiElement(RBRACE)('}')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
TUPLE_TYPE
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n')
TYPEDEF
PsiElement(type)('type')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('f')
PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
<empty list>
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
TYPE_REFERENCE
ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[')
ATTRIBUTE
USER_TYPE
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ')
FUNCTION_TYPE
PsiElement(LBRACE)('{')
RECEIVER_TYPE
TYPE_REFERENCE
ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[')
ATTRIBUTE
USER_TYPE
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ')
FUNCTION_TYPE
PsiElement(LBRACE)('{')
RECEIVER_TYPE
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('T')
PsiElement(DOT)('.')
USER_TYPE
PsiElement(IDENTIFIER)('T')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
TUPLE_TYPE
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiElement(RBRACE)('}')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
TUPLE_TYPE
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n')
TYPEDEF
PsiElement(type)('type')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('f')
PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
<empty list>
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
TYPE_REFERENCE
ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[')
ATTRIBUTE
USER_TYPE
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ')
FUNCTION_TYPE
PsiElement(LBRACE)('{')
RECEIVER_TYPE
TYPE_REFERENCE
ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[')
ATTRIBUTE
USER_TYPE
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ')
FUNCTION_TYPE
PsiElement(LBRACE)('{')
RECEIVER_TYPE
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('T')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('A')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('B')
PsiElement(GT)('>')
PsiElement(DOT)('.')
USER_TYPE
PsiElement(IDENTIFIER)('T')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('x')
PsiElement(GT)('>')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
TUPLE_TYPE
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiElement(RBRACE)('}')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
TUPLE_TYPE
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n')
TYPEDEF
PsiElement(type)('type')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('f')
PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
<empty list>
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
TYPE_REFERENCE
ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[')
ATTRIBUTE
USER_TYPE
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ')
FUNCTION_TYPE
PsiElement(LBRACE)('{')
RECEIVER_TYPE
TYPE_REFERENCE
ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[')
ATTRIBUTE
USER_TYPE
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ')
FUNCTION_TYPE
PsiElement(LBRACE)('{')
RECEIVER_TYPE
TYPE_REFERENCE
TUPLE_TYPE
PsiElement(LPAR)('(')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('S')
PsiElement(RPAR)(')')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
TUPLE_TYPE
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiElement(RBRACE)('}')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST VALUE_PARAMETER_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
+2 -3
View File
@@ -18,9 +18,8 @@ JetFile: FunctionTypes_ERR.jet
ATTRIBUTE_ANNOTATION ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
ATTRIBUTE ATTRIBUTE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('a')
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']') PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
TYPE_REFERENCE TYPE_REFERENCE
+6 -3
View File
@@ -1,20 +1,23 @@
fun foo() fun foo()
fun [a] foo() fun [a] foo()
fun [a] T.foo() fun [a] T.foo()
fun [a] T<T>.{(A<B>) : ()}.foo() fun {[a] T<T>.(A<B>) : ()}.foo()
fun [a] T.foo(a : foo) : bar fun [a] T.foo(a : foo) : bar
fun [a()] T.foo<T : {(a) : b}>(a : foo) : bar fun [a()] T.foo<T : {(a) : b}>(a : foo) : bar
fun foo(); fun foo();
fun [a] foo(); fun [a] foo();
fun [a] T.foo(); fun [a] T.foo();
fun [a] T<T>.{(A<B>) : ()}.foo(); fun {[a] T<T>.(A<B>) : ()}.foo();
fun [a] T.foo(a : foo) : bar; fun [a] T.foo(a : foo) : bar;
fun [a()] T.foo<T : {(a) : b}>(a : foo) : bar; fun [a()] T.foo<T : {(a) : b}>(a : foo) : bar;
fun foo() {} fun foo() {}
fun [a] foo() {} fun [a] foo() {}
fun [a] T.foo() {} fun [a] T.foo() {}
fun [a] T<T>.{(A<B>) : ()}.foo() {} fun {[a] T<T>.(A<B>) : ()}.foo() {}
fun [a] T.foo(a : foo) : bar {} fun [a] T.foo(a : foo) : bar {}
fun [a()] T.foo<T : {(a) : b}>(a : foo) : bar {} fun [a()] T.foo<T : {(a) : b}>(a : foo) : bar {}
fun [a] {[a] T<T>.(A<B>) : ()}.foo() {}
fun [a()] T.foo<T : [a] {(a) : b}>(a : foo) : bar {}
+212 -87
View File
@@ -16,9 +16,8 @@ JetFile: Functions.jet
ATTRIBUTE_ANNOTATION ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
ATTRIBUTE ATTRIBUTE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('a')
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']') PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('foo') PsiElement(IDENTIFIER)('foo')
@@ -35,9 +34,8 @@ JetFile: Functions.jet
ATTRIBUTE_ANNOTATION ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
ATTRIBUTE ATTRIBUTE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('a')
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']') PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
USER_TYPE USER_TYPE
@@ -54,25 +52,26 @@ JetFile: Functions.jet
PsiElement(fun)('fun') PsiElement(fun)('fun')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
TYPE_REFERENCE TYPE_REFERENCE
ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[')
ATTRIBUTE
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ')
USER_TYPE
PsiElement(IDENTIFIER)('T')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('T')
PsiElement(GT)('>')
PsiElement(DOT)('.')
FUNCTION_TYPE FUNCTION_TYPE
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
RECEIVER_TYPE
TYPE_REFERENCE
ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[')
ATTRIBUTE
USER_TYPE
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ')
USER_TYPE
PsiElement(IDENTIFIER)('T')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('T')
PsiElement(GT)('>')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST VALUE_PARAMETER_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
TYPE_REFERENCE TYPE_REFERENCE
@@ -108,9 +107,8 @@ JetFile: Functions.jet
ATTRIBUTE_ANNOTATION ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
ATTRIBUTE ATTRIBUTE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('a')
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']') PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
USER_TYPE USER_TYPE
@@ -144,9 +142,8 @@ JetFile: Functions.jet
ATTRIBUTE_ANNOTATION ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
ATTRIBUTE ATTRIBUTE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('a')
PsiElement(IDENTIFIER)('a')
VALUE_ARGUMENT_LIST VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
@@ -215,9 +212,8 @@ JetFile: Functions.jet
ATTRIBUTE_ANNOTATION ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
ATTRIBUTE ATTRIBUTE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('a')
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']') PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('foo') PsiElement(IDENTIFIER)('foo')
@@ -235,9 +231,8 @@ JetFile: Functions.jet
ATTRIBUTE_ANNOTATION ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
ATTRIBUTE ATTRIBUTE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('a')
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']') PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
USER_TYPE USER_TYPE
@@ -255,25 +250,26 @@ JetFile: Functions.jet
PsiElement(fun)('fun') PsiElement(fun)('fun')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
TYPE_REFERENCE TYPE_REFERENCE
ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[')
ATTRIBUTE
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ')
USER_TYPE
PsiElement(IDENTIFIER)('T')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('T')
PsiElement(GT)('>')
PsiElement(DOT)('.')
FUNCTION_TYPE FUNCTION_TYPE
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
RECEIVER_TYPE
TYPE_REFERENCE
ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[')
ATTRIBUTE
USER_TYPE
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ')
USER_TYPE
PsiElement(IDENTIFIER)('T')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('T')
PsiElement(GT)('>')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST VALUE_PARAMETER_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
TYPE_REFERENCE TYPE_REFERENCE
@@ -310,9 +306,8 @@ JetFile: Functions.jet
ATTRIBUTE_ANNOTATION ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
ATTRIBUTE ATTRIBUTE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('a')
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']') PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
USER_TYPE USER_TYPE
@@ -347,9 +342,8 @@ JetFile: Functions.jet
ATTRIBUTE_ANNOTATION ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
ATTRIBUTE ATTRIBUTE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('a')
PsiElement(IDENTIFIER)('a')
VALUE_ARGUMENT_LIST VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
@@ -422,9 +416,8 @@ JetFile: Functions.jet
ATTRIBUTE_ANNOTATION ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
ATTRIBUTE ATTRIBUTE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('a')
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']') PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('foo') PsiElement(IDENTIFIER)('foo')
@@ -445,9 +438,8 @@ JetFile: Functions.jet
ATTRIBUTE_ANNOTATION ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
ATTRIBUTE ATTRIBUTE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('a')
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']') PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
USER_TYPE USER_TYPE
@@ -468,25 +460,26 @@ JetFile: Functions.jet
PsiElement(fun)('fun') PsiElement(fun)('fun')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
TYPE_REFERENCE TYPE_REFERENCE
ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[')
ATTRIBUTE
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ')
USER_TYPE
PsiElement(IDENTIFIER)('T')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('T')
PsiElement(GT)('>')
PsiElement(DOT)('.')
FUNCTION_TYPE FUNCTION_TYPE
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
RECEIVER_TYPE
TYPE_REFERENCE
ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[')
ATTRIBUTE
USER_TYPE
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ')
USER_TYPE
PsiElement(IDENTIFIER)('T')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('T')
PsiElement(GT)('>')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST VALUE_PARAMETER_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
TYPE_REFERENCE TYPE_REFERENCE
@@ -526,9 +519,8 @@ JetFile: Functions.jet
ATTRIBUTE_ANNOTATION ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
ATTRIBUTE ATTRIBUTE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('a')
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']') PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
USER_TYPE USER_TYPE
@@ -566,9 +558,8 @@ JetFile: Functions.jet
ATTRIBUTE_ANNOTATION ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
ATTRIBUTE ATTRIBUTE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('a')
PsiElement(IDENTIFIER)('a')
VALUE_ARGUMENT_LIST VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
@@ -620,6 +611,140 @@ JetFile: Functions.jet
USER_TYPE USER_TYPE
PsiElement(IDENTIFIER)('bar') PsiElement(IDENTIFIER)('bar')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
BLOCK
PsiElement(LBRACE)('{')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n\n')
FUN
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
TYPE_REFERENCE
ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[')
ATTRIBUTE
USER_TYPE
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ')
FUNCTION_TYPE
PsiElement(LBRACE)('{')
RECEIVER_TYPE
TYPE_REFERENCE
ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[')
ATTRIBUTE
USER_TYPE
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ')
USER_TYPE
PsiElement(IDENTIFIER)('T')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('T')
PsiElement(GT)('>')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('A')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('B')
PsiElement(GT)('>')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
TUPLE_TYPE
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiElement(RBRACE)('}')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('foo')
TYPE_PARAMETER_LIST
<empty list>
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
BLOCK
PsiElement(LBRACE)('{')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n')
FUN
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
TYPE_REFERENCE
ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[')
ATTRIBUTE
USER_TYPE
PsiElement(IDENTIFIER)('a')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ')
USER_TYPE
PsiElement(IDENTIFIER)('T')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('foo')
TYPE_PARAMETER_LIST
PsiElement(LT)('<')
TYPE_PARAMETER
PsiElement(IDENTIFIER)('T')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[')
ATTRIBUTE
USER_TYPE
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ')
FUNCTION_TYPE
PsiElement(LBRACE)('{')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('a')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('b')
PsiElement(RBRACE)('}')
PsiElement(GT)('>')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
VALUE_PARAMETER
PsiElement(IDENTIFIER)('a')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('foo')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('bar')
PsiWhiteSpace(' ')
BLOCK BLOCK
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
PsiElement(RBRACE)('}') PsiElement(RBRACE)('}')
+1 -1
View File
@@ -10,4 +10,4 @@ fun [a()] T.foo<T, T>(, a : foo, , a: b) : bar
fun foo() : = a; fun foo() : = a;
fun [a] T<T>.{(A<B>) : ()}.-() fun {[a] T<T>.(A<B>) : ()}.-()
+32 -38
View File
@@ -17,9 +17,8 @@ JetFile: Functions_ERR.jet
ATTRIBUTE_ANNOTATION ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
ATTRIBUTE ATTRIBUTE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('a')
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']') PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('f') PsiElement(IDENTIFIER)('f')
@@ -43,9 +42,8 @@ JetFile: Functions_ERR.jet
ATTRIBUTE_ANNOTATION ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
ATTRIBUTE ATTRIBUTE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('a')
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']') PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
USER_TYPE USER_TYPE
@@ -79,9 +77,8 @@ JetFile: Functions_ERR.jet
ATTRIBUTE_ANNOTATION ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
ATTRIBUTE ATTRIBUTE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('a')
PsiElement(IDENTIFIER)('a')
VALUE_ARGUMENT_LIST VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
@@ -141,9 +138,8 @@ JetFile: Functions_ERR.jet
ATTRIBUTE_ANNOTATION ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
ATTRIBUTE ATTRIBUTE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('a')
PsiElement(IDENTIFIER)('a')
VALUE_ARGUMENT_LIST VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
@@ -183,9 +179,8 @@ JetFile: Functions_ERR.jet
ATTRIBUTE_ANNOTATION ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
ATTRIBUTE ATTRIBUTE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('a')
PsiElement(IDENTIFIER)('a')
VALUE_ARGUMENT_LIST VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
@@ -232,9 +227,8 @@ JetFile: Functions_ERR.jet
ATTRIBUTE_ANNOTATION ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
ATTRIBUTE ATTRIBUTE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('a')
PsiElement(IDENTIFIER)('a')
VALUE_ARGUMENT_LIST VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
@@ -284,9 +278,8 @@ JetFile: Functions_ERR.jet
ATTRIBUTE_ANNOTATION ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
ATTRIBUTE ATTRIBUTE
TYPE_REFERENCE USER_TYPE
USER_TYPE PsiElement(IDENTIFIER)('a')
PsiElement(IDENTIFIER)('a')
VALUE_ARGUMENT_LIST VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
@@ -362,25 +355,26 @@ JetFile: Functions_ERR.jet
PsiElement(fun)('fun') PsiElement(fun)('fun')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
TYPE_REFERENCE TYPE_REFERENCE
ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[')
ATTRIBUTE
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ')
USER_TYPE
PsiElement(IDENTIFIER)('T')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('T')
PsiElement(GT)('>')
PsiElement(DOT)('.')
FUNCTION_TYPE FUNCTION_TYPE
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
RECEIVER_TYPE
TYPE_REFERENCE
ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[')
ATTRIBUTE
USER_TYPE
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ')
USER_TYPE
PsiElement(IDENTIFIER)('T')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('T')
PsiElement(GT)('>')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST VALUE_PARAMETER_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
TYPE_REFERENCE TYPE_REFERENCE
@@ -27,38 +27,39 @@ public class JetParsingTest extends ParsingTestCase {
return new File(PathManager.getResourceRoot(JetParsingTest.class, "/")).getParentFile().getParentFile().getParent(); return new File(PathManager.getResourceRoot(JetParsingTest.class, "/")).getParentFile().getParentFile().getParent();
} }
public void testEmptyFile() throws Exception {doTest(true);} public void testAttributes() throws Exception {doTest(true);}
public void testAttributes_ERR() throws Exception {doTest(true);}
public void testBabySteps() throws Exception {doTest(true);} public void testBabySteps() throws Exception {doTest(true);}
public void testBabySteps_ERR() throws Exception {doTest(true);} public void testBabySteps_ERR() throws Exception {doTest(true);}
public void testConstructors() throws Exception {doTest(true);}
public void testControlStructures() throws Exception {doTest(true);}
public void testDecomposers() throws Exception {doTest(true);}
public void testDecomposers_ERR() throws Exception {doTest(true);}
public void testEmptyFile() throws Exception {doTest(true);}
public void testEnums() throws Exception {doTest(true);}
public void testExtensions() throws Exception {doTest(true);}
public void testExtensions_ERR() throws Exception {doTest(true);}
public void testFileStart_ERR() throws Exception {doTest(true);}
public void testFunctions() throws Exception {doTest(true);}
public void testFunctions_ERR() throws Exception {doTest(true);}
public void testFunctionTypes() throws Exception {doTest(true);}
public void testFunctionTypes_ERR() throws Exception {doTest(true);}
public void testImports() throws Exception {doTest(true);} public void testImports() throws Exception {doTest(true);}
public void testImports_ERR() throws Exception {doTest(true);} public void testImports_ERR() throws Exception {doTest(true);}
public void testImportSoftKW() throws Exception {doTest(true);} public void testImportSoftKW() throws Exception {doTest(true);}
public void testNamespaceBlock_ERR() throws Exception {doTest(true);} public void testNamespaceBlock_ERR() throws Exception {doTest(true);}
public void testNamespaceBlock() throws Exception {doTest(true);} public void testNamespaceBlock() throws Exception {doTest(true);}
public void testSimpleModifiers() throws Exception {doTest(true);}
public void testAttributes() throws Exception {doTest(true);}
public void testAttributes_ERR() throws Exception {doTest(true);}
public void testTypeDef() throws Exception {doTest(true);}
public void testTypeDef_ERR() throws Exception {doTest(true);}
public void testTypeAnnotations() throws Exception {doTest(true);}
public void testTupleTypes() throws Exception {doTest(true);}
public void testTupleTypes_ERR() throws Exception {doTest(true);}
public void testFunctionTypes() throws Exception {doTest(true);}
public void testFunctionTypes_ERR() throws Exception {doTest(true);}
public void testDecomposers() throws Exception {doTest(true);}
public void testDecomposers_ERR() throws Exception {doTest(true);}
public void testProperties() throws Exception {doTest(true);} public void testProperties() throws Exception {doTest(true);}
public void testProperties_ERR() throws Exception {doTest(true);} public void testProperties_ERR() throws Exception {doTest(true);}
public void testFunctions() throws Exception {doTest(true);}
public void testFunctions_ERR() throws Exception {doTest(true);}
public void testExtensions() throws Exception {doTest(true);}
public void testExtensions_ERR() throws Exception {doTest(true);}
public void testSoftKeywords() throws Exception {doTest(true);}
public void testSimpleClassMembers() throws Exception {doTest(true);} public void testSimpleClassMembers() throws Exception {doTest(true);}
public void testSimpleClassMembers_ERR() throws Exception {doTest(true);} public void testSimpleClassMembers_ERR() throws Exception {doTest(true);}
public void testConstructors() throws Exception {doTest(true);}
public void testTypeConstraints() throws Exception {doTest(true);}
public void testEnums() throws Exception {doTest(true);}
public void testSimpleExpressions() throws Exception {doTest(true);} public void testSimpleExpressions() throws Exception {doTest(true);}
public void testControlStructures() throws Exception {doTest(true);} public void testSimpleModifiers() throws Exception {doTest(true);}
public void testSoftKeywords() throws Exception {doTest(true);}
public void testTupleTypes() throws Exception {doTest(true);}
public void testTupleTypes_ERR() throws Exception {doTest(true);}
public void testTypeAnnotations() throws Exception {doTest(true);}
public void testTypeConstraints() throws Exception {doTest(true);}
public void testTypeDef() throws Exception {doTest(true);}
public void testTypeDef_ERR() throws Exception {doTest(true);}
} }