Tests fixed

This commit is contained in:
Andrey Breslav
2010-12-22 19:46:09 +03:00
parent cfcb9d7d7d
commit 407a8e1684
8 changed files with 166 additions and 37 deletions
+2 -2
View File
@@ -89,11 +89,11 @@ property
;
getter
: modifiers "get" "(" ")" functionBody
: modifiers "get" "(" ")" (":" type)? functionBody
;
setter
: modifiers "set" "(" modifiers parameter ")" functionBody // TODO: Can the parameter be lazy?
: modifiers "set" "(" modifiers (SimpleName | parameter) ")" functionBody // TODO: Can the parameter be lazy?
;
parameter
@@ -265,32 +265,6 @@ public class JetParsing extends AbstractJetParsing {
return DECOMPOSER;
}
/*
* modifier
* : "virtual"
* : "enum"
* : "open"
* : "attribute"
* : "override"
* : "abstract"
* : "private"
* : "protected"
* : "public"
* : "internal"
* : "lazy"
*/
private boolean parseModifierSoftKeyword() {
if (!at(IDENTIFIER)) return false;
String tokenText = myBuilder.getTokenText();
IElementType tokenType = MODIFIER_KEYWORD_MAP.get(tokenText);
if (tokenType != null) {
myBuilder.remapCurrentToken(tokenType);
advance();
return true;
}
return false;
}
/*
* (modifier | attribute)*
*/
@@ -304,7 +278,7 @@ public class JetParsing extends AbstractJetParsing {
advance(); // MODIFIER
}
else {
if (!parseModifierSoftKeyword()) break;
break;
}
empty = false;
}
@@ -921,12 +895,7 @@ public class JetParsing extends AbstractJetParsing {
parseAttributeList();
PsiBuilder.Marker delegator = mark();
if (at(LPAR)) {
error("Expecting type name");
}
else {
parseTypeRef();
}
parseTypeRef();
if (at(BY_KEYWORD)) {
advance(); // BY_KEYWORD
@@ -980,7 +949,9 @@ public class JetParsing extends AbstractJetParsing {
*/
private void parsePrimaryConstructorParameter() {
PsiBuilder.Marker param = mark();
parseModifierList();
int lastId = findLastBefore(TokenSet.create(IDENTIFIER), TokenSet.create(COMMA, RPAR, COLON), false);
createTruncatedBuilder(lastId).parseModifierList();
if (at(VAR_KEYWORD) || at(VAL_KEYWORD)) {
advance(); // VAR_KEYWORD | VAL_KEYWORD
+5
View File
@@ -0,0 +1,5 @@
namespace foo
class Runnable<a,a>(a : doo = 0) : foo(d=0), ,bar by x, bar {
}
+75
View File
@@ -0,0 +1,75 @@
JetFile: BabySteps_ERR.jet
NAMESPACE
PsiElement(namespace)('namespace')
PsiWhiteSpace(' ')
NAMESPACE_NAME
PsiElement(IDENTIFIER)('foo')
PsiWhiteSpace('\n\n')
CLASS
PsiElement(class)('class')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('Runnable')
TYPE_PARAMETER_LIST
PsiElement(LT)('<')
TYPE_PARAMETER
PsiElement(IDENTIFIER)('a')
PsiElement(COMMA)(',')
TYPE_PARAMETER
PsiElement(IDENTIFIER)('a')
PsiElement(GT)('>')
PRIMARY_CONSTRUCTOR_PARAMETERS_LIST
PsiElement(LPAR)('(')
PRIMARY_CONSTRUCTOR_PARAMETER
PsiElement(IDENTIFIER)('a')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('doo')
PsiWhiteSpace(' ')
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
PsiElement(INTEGER_LITERAL)('0')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
DELEGATION_SPECIFIER_LIST
DELEGATION_SPECIFIER
DELEGATOR_SUPER_CALL
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('foo')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
NAMED_ARGUMENT
PsiElement(IDENTIFIER)('d')
PsiElement(EQ)('=')
PsiElement(INTEGER_LITERAL)('0')
PsiElement(RPAR)(')')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
PsiErrorElement:Expecting a delegation specifier
PsiElement(COMMA)(',')
DELEGATION_SPECIFIER
DELEGATOR_BY
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('bar')
PsiWhiteSpace(' ')
PsiElement(by)('by')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('x')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
DELEGATION_SPECIFIER
DELEGATOR_SUPER_CLASS
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('bar')
PsiWhiteSpace(' ')
CLASS_BODY
PsiElement(LBRACE)('{')
PsiWhiteSpace('\n\n')
PsiElement(RBRACE)('}')
@@ -22,4 +22,8 @@ class foo {
}
this() : - {
}
}
@@ -182,5 +182,22 @@ JetFile: SimpleClassMembers_ERR.jet
PsiElement(LBRACE)('{')
PsiWhiteSpace('\n\n ')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n\n ')
CONSTRUCTOR
PsiElement(this)('this')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
INITIALIZER_LIST
PsiErrorElement:Expecting constructor call (this(...)) or supertype initializer
PsiElement(MINUS)('-')
PsiWhiteSpace(' ')
BLOCK
PsiElement(LBRACE)('{')
PsiWhiteSpace('\n\n ')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n\n')
PsiElement(RBRACE)('}')
+57 -1
View File
@@ -109,7 +109,63 @@ ref
public : t,
private : t,
protected : t,
internal : t
internal : t,
public protected private internal abstract
virtual
enum
open
attribute
override
virtual
abstract
private
protected
public
internal
lazy open : t
)
}
class F(val foo : bar,
abstract : t,
virtual : t,
enum : t,
open : t,
attribute : t,
override : t,
virtual : t,
abstract : t,
private : t,
protected : t,
public : t,
internal : t,
lazy : t,
wraps : t,
import : t,
where : t,
by : t,
get : t,
set : t,
public : t,
private : t,
protected : t,
internal : t,
public protected private internal abstract
virtual
enum
open
attribute
override
virtual
abstract
private
protected
public
internal
lazy open : b
) {
}
@@ -29,6 +29,7 @@ public class JetParsingTest extends ParsingTestCase {
public void testEmptyFile() throws Exception {doTest(true);}
public void testBabySteps() throws Exception {doTest(true);}
public void testBabySteps_ERR() throws Exception {doTest(true);}
public void testImports() throws Exception {doTest(true);}
public void testImports_ERR() throws Exception {doTest(true);}
public void testImportSoftKW() throws Exception {doTest(true);}