Bug in properties fixed
This commit is contained in:
@@ -726,6 +726,8 @@ public class JetParsing extends AbstractJetParsing {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public JetNodeType parseProperty(boolean local) {
|
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);
|
assert at(VAL_KEYWORD) || at(VAR_KEYWORD);
|
||||||
|
|
||||||
advance(); // VAL_KEYWORD or VAR_KEYWORD
|
advance(); // VAL_KEYWORD or VAR_KEYWORD
|
||||||
@@ -744,9 +746,9 @@ public class JetParsing extends AbstractJetParsing {
|
|||||||
@Override
|
@Override
|
||||||
public boolean matching(boolean topLevel) {
|
public boolean matching(boolean topLevel) {
|
||||||
if (topLevel && (at(EQ) || at(COLON))) return true;
|
if (topLevel && (at(EQ) || at(COLON))) return true;
|
||||||
if (topLevel && lookahead(1) == IDENTIFIER) {
|
if (topLevel && at(IDENTIFIER)) {
|
||||||
IElementType lookahead2 = lookahead(2);
|
IElementType lookahead = lookahead(1);
|
||||||
return lookahead2 != LT && lookahead2 != DOT;
|
return lookahead != LT && lookahead != DOT;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -70,3 +70,6 @@ fun foo() {
|
|||||||
get() = 5
|
get() = 5
|
||||||
set(int : x) = 5
|
set(int : x) = 5
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val IList<T>.lastIndex : Int
|
||||||
|
get() = this.size - 1
|
||||||
|
|||||||
@@ -679,3 +679,42 @@ JetFile: Properties.jet
|
|||||||
PsiElement(INTEGER_LITERAL)('5')
|
PsiElement(INTEGER_LITERAL)('5')
|
||||||
PsiWhiteSpace('\n')
|
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