Bug in properties fixed
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -69,4 +69,7 @@ fun foo() {
|
||||
val foo = 5
|
||||
get() = 5
|
||||
set(int : x) = 5
|
||||
}
|
||||
}
|
||||
|
||||
val IList<T>.lastIndex : Int
|
||||
get() = this.size - 1
|
||||
|
||||
@@ -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')
|
||||
Reference in New Issue
Block a user