A bug in properties fixed, a test added

This commit is contained in:
Andrey Breslav
2010-12-30 16:48:46 +03:00
parent 08e1276e41
commit df5bba0a00
3 changed files with 21 additions and 1 deletions
@@ -701,6 +701,8 @@ public class JetParsing extends AbstractJetParsing {
* ;
*/
public JetNodeType parseProperty() {
// TODO: var foo : Int { get; private set }
assert at(VAL_KEYWORD) || at(VAR_KEYWORD);
advance(); // VAL_KEYWORD or VAR_KEYWORD
@@ -718,7 +720,8 @@ public class JetParsing extends AbstractJetParsing {
}, new TokenStreamPredicate() {
@Override
public boolean matching(boolean topLevel) {
if (lookahead(1) == IDENTIFIER) {
if (topLevel && (at(EQ) || at(COLON))) return true;
if (topLevel && lookahead(1) == IDENTIFIER) {
IElementType lookahead2 = lookahead(2);
return lookahead2 != LT && lookahead2 != DOT;
}
+2
View File
@@ -1,3 +1,5 @@
val foo = bar.foo.bar
val foo
val [a] foo
val foo.bar
+15
View File
@@ -1,5 +1,20 @@
JetFile: Properties.jet
NAMESPACE
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('foo')
PsiWhiteSpace(' ')
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
BINARY_EXPRESSION
BINARY_EXPRESSION
PsiElement(IDENTIFIER)('bar')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('foo')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('bar')
PsiWhiteSpace('\n\n')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')