Bug in properties fixed

This commit is contained in:
Andrey Breslav
2011-01-02 17:09:47 +03:00
parent 3f82192a7c
commit 45864d91d6
3 changed files with 49 additions and 5 deletions
@@ -726,6 +726,8 @@ public class JetParsing extends AbstractJetParsing {
}
public JetNodeType parseProperty(boolean local) {
// TODO: how to write an extension ptoperty for a generic type? (val List<T>.i -- what is T?!)
assert at(VAL_KEYWORD) || at(VAR_KEYWORD);
advance(); // VAL_KEYWORD or VAR_KEYWORD
@@ -744,9 +746,9 @@ public class JetParsing extends AbstractJetParsing {
@Override
public boolean matching(boolean topLevel) {
if (topLevel && (at(EQ) || at(COLON))) return true;
if (topLevel && lookahead(1) == IDENTIFIER) {
IElementType lookahead2 = lookahead(2);
return lookahead2 != LT && lookahead2 != DOT;
if (topLevel && at(IDENTIFIER)) {
IElementType lookahead = lookahead(1);
return lookahead != LT && lookahead != DOT;
}
return false;
}
+4 -1
View File
@@ -69,4 +69,7 @@ fun foo() {
val foo = 5
get() = 5
set(int : x) = 5
}
}
val IList<T>.lastIndex : Int
get() = this.size - 1
+40 -1
View File
@@ -678,4 +678,43 @@ JetFile: Properties.jet
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('5')
PsiWhiteSpace('\n')
PsiElement(RBRACE)('}')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n\n')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('IList')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('T')
PsiElement(GT)('>')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('lastIndex')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('Int')
PsiWhiteSpace('\n ')
PROPERTY_ACCESSOR
PsiElement(get)('get')
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
BINARY_EXPRESSION
DOT_QIALIFIED_EXPRESSION
PsiElement(this)('this')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('size')
PsiWhiteSpace(' ')
PsiElement(MINUS)('-')
PsiWhiteSpace(' ')
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('1')