A bug in properties fixed, a test added
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
val foo = bar.foo.bar
|
||||
|
||||
val foo
|
||||
val [a] foo
|
||||
val foo.bar
|
||||
|
||||
@@ -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(' ')
|
||||
|
||||
Reference in New Issue
Block a user