Support custom accessors for top-level properties in scripts.
This commit is contained in:
@@ -239,8 +239,12 @@ import static org.jetbrains.kotlin.lexer.KtTokens.*;
|
|||||||
return myBuilder.lookAhead(k);
|
return myBuilder.lookAhead(k);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void consumeIf(KtToken token) {
|
protected boolean consumeIf(KtToken token) {
|
||||||
if (at(token)) advance(); // token
|
if (at(token)) {
|
||||||
|
advance(); // token
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Migrate to predicates
|
// TODO: Migrate to predicates
|
||||||
|
|||||||
@@ -335,7 +335,7 @@ public class KotlinExpressionParsing extends AbstractKotlinParsing {
|
|||||||
*/
|
*/
|
||||||
private void parsePrefixExpression() {
|
private void parsePrefixExpression() {
|
||||||
if (at(AT)) {
|
if (at(AT)) {
|
||||||
if (!parseLocalDeclaration(/* rollbackIfDefinitelyNotExpression = */ false)) {
|
if (!parseLocalDeclaration(/* rollbackIfDefinitelyNotExpression = */ false, false)) {
|
||||||
PsiBuilder.Marker expression = mark();
|
PsiBuilder.Marker expression = mark();
|
||||||
myKotlinParsing.parseAnnotations(DEFAULT);
|
myKotlinParsing.parseAnnotations(DEFAULT);
|
||||||
parsePrefixExpression();
|
parsePrefixExpression();
|
||||||
@@ -661,7 +661,7 @@ public class KotlinExpressionParsing extends AbstractKotlinParsing {
|
|||||||
parseDoWhile();
|
parseDoWhile();
|
||||||
}
|
}
|
||||||
else if (atSet(LOCAL_DECLARATION_FIRST) &&
|
else if (atSet(LOCAL_DECLARATION_FIRST) &&
|
||||||
parseLocalDeclaration(/* rollbackIfDefinitelyNotExpression = */ myBuilder.newlineBeforeCurrentToken())) {
|
parseLocalDeclaration(/* rollbackIfDefinitelyNotExpression = */ myBuilder.newlineBeforeCurrentToken(), false)) {
|
||||||
// declaration was parsed, do nothing
|
// declaration was parsed, do nothing
|
||||||
}
|
}
|
||||||
else if (at(IDENTIFIER)) {
|
else if (at(IDENTIFIER)) {
|
||||||
@@ -830,7 +830,7 @@ public class KotlinExpressionParsing extends AbstractKotlinParsing {
|
|||||||
PsiBuilder.Marker property = mark();
|
PsiBuilder.Marker property = mark();
|
||||||
myKotlinParsing.parseModifierList(DEFAULT, TokenSet.create(EQ, RPAR));
|
myKotlinParsing.parseModifierList(DEFAULT, TokenSet.create(EQ, RPAR));
|
||||||
if (at(VAL_KEYWORD) || at(VAR_KEYWORD)) {
|
if (at(VAL_KEYWORD) || at(VAR_KEYWORD)) {
|
||||||
myKotlinParsing.parseProperty(true);
|
myKotlinParsing.parseLocalProperty(false);
|
||||||
property.done(PROPERTY);
|
property.done(PROPERTY);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -1008,12 +1008,12 @@ public class KotlinExpressionParsing extends AbstractKotlinParsing {
|
|||||||
/*
|
/*
|
||||||
* modifiers declarationRest
|
* modifiers declarationRest
|
||||||
*/
|
*/
|
||||||
private boolean parseLocalDeclaration(boolean rollbackIfDefinitelyNotExpression) {
|
private boolean parseLocalDeclaration(boolean rollbackIfDefinitelyNotExpression, boolean isScriptTopLevel) {
|
||||||
PsiBuilder.Marker decl = mark();
|
PsiBuilder.Marker decl = mark();
|
||||||
KotlinParsing.ModifierDetector detector = new KotlinParsing.ModifierDetector();
|
KotlinParsing.ModifierDetector detector = new KotlinParsing.ModifierDetector();
|
||||||
myKotlinParsing.parseModifierList(detector, DEFAULT, TokenSet.EMPTY);
|
myKotlinParsing.parseModifierList(detector, DEFAULT, TokenSet.EMPTY);
|
||||||
|
|
||||||
IElementType declType = parseLocalDeclarationRest(detector.isEnumDetected(), rollbackIfDefinitelyNotExpression);
|
IElementType declType = parseLocalDeclarationRest(detector.isEnumDetected(), rollbackIfDefinitelyNotExpression, isScriptTopLevel);
|
||||||
|
|
||||||
if (declType != null) {
|
if (declType != null) {
|
||||||
// we do not attach preceding comments (non-doc) to local variables because they are likely commenting a few statements below
|
// we do not attach preceding comments (non-doc) to local variables because they are likely commenting a few statements below
|
||||||
@@ -1243,7 +1243,7 @@ public class KotlinExpressionParsing extends AbstractKotlinParsing {
|
|||||||
* ;
|
* ;
|
||||||
*/
|
*/
|
||||||
private void parseStatement(boolean isScriptTopLevel) {
|
private void parseStatement(boolean isScriptTopLevel) {
|
||||||
if (!parseLocalDeclaration(/* rollbackIfDefinitelyNotExpression = */false)) {
|
if (!parseLocalDeclaration(/* rollbackIfDefinitelyNotExpression = */false, /* isScriptTopLevel = */ isScriptTopLevel)) {
|
||||||
if (!atSet(EXPRESSION_FIRST)) {
|
if (!atSet(EXPRESSION_FIRST)) {
|
||||||
errorAndAdvance("Expecting a statement");
|
errorAndAdvance("Expecting a statement");
|
||||||
}
|
}
|
||||||
@@ -1293,7 +1293,7 @@ public class KotlinExpressionParsing extends AbstractKotlinParsing {
|
|||||||
* ;
|
* ;
|
||||||
*/
|
*/
|
||||||
@Nullable
|
@Nullable
|
||||||
private IElementType parseLocalDeclarationRest(boolean isEnum, boolean failIfDefinitelyNotExpression) {
|
private IElementType parseLocalDeclarationRest(boolean isEnum, boolean failIfDefinitelyNotExpression, boolean isScriptTopLevel) {
|
||||||
IElementType keywordToken = tt();
|
IElementType keywordToken = tt();
|
||||||
IElementType declType = null;
|
IElementType declType = null;
|
||||||
|
|
||||||
@@ -1310,7 +1310,7 @@ public class KotlinExpressionParsing extends AbstractKotlinParsing {
|
|||||||
declType = myKotlinParsing.parseFunction();
|
declType = myKotlinParsing.parseFunction();
|
||||||
}
|
}
|
||||||
else if (keywordToken == VAL_KEYWORD || keywordToken == VAR_KEYWORD) {
|
else if (keywordToken == VAL_KEYWORD || keywordToken == VAR_KEYWORD) {
|
||||||
declType = myKotlinParsing.parseProperty(true);
|
declType = myKotlinParsing.parseLocalProperty(isScriptTopLevel);
|
||||||
}
|
}
|
||||||
else if (keywordToken == TYPE_ALIAS_KEYWORD) {
|
else if (keywordToken == TYPE_ALIAS_KEYWORD) {
|
||||||
declType = myKotlinParsing.parseTypeAlias();
|
declType = myKotlinParsing.parseTypeAlias();
|
||||||
|
|||||||
@@ -1242,10 +1242,28 @@ public class KotlinParsing extends AbstractKotlinParsing {
|
|||||||
* ;
|
* ;
|
||||||
*/
|
*/
|
||||||
private IElementType parseProperty() {
|
private IElementType parseProperty() {
|
||||||
return parseProperty(false);
|
return parseProperty(PropertyParsingMode.MEMBER_OR_TOPLEVEL);
|
||||||
}
|
}
|
||||||
|
|
||||||
public IElementType parseProperty(boolean local) {
|
public IElementType parseLocalProperty(boolean isScriptTopLevel) {
|
||||||
|
return parseProperty(isScriptTopLevel ? PropertyParsingMode.SCRIPT_TOPLEVEL : PropertyParsingMode.LOCAL);
|
||||||
|
}
|
||||||
|
|
||||||
|
enum PropertyParsingMode {
|
||||||
|
MEMBER_OR_TOPLEVEL(false, true),
|
||||||
|
LOCAL(true, false),
|
||||||
|
SCRIPT_TOPLEVEL(true, true);
|
||||||
|
|
||||||
|
public final boolean desctructuringAllowed;
|
||||||
|
public final boolean accessorsAllowed;
|
||||||
|
|
||||||
|
PropertyParsingMode(boolean desctructuringAllowed, boolean accessorsAllowed) {
|
||||||
|
this.desctructuringAllowed = desctructuringAllowed;
|
||||||
|
this.accessorsAllowed = accessorsAllowed;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public IElementType parseProperty(PropertyParsingMode mode) {
|
||||||
assert (at(VAL_KEYWORD) || at(VAR_KEYWORD));
|
assert (at(VAL_KEYWORD) || at(VAR_KEYWORD));
|
||||||
advance();
|
advance();
|
||||||
|
|
||||||
@@ -1268,7 +1286,7 @@ public class KotlinParsing extends AbstractKotlinParsing {
|
|||||||
if (multiDeclaration) {
|
if (multiDeclaration) {
|
||||||
PsiBuilder.Marker multiDecl = mark();
|
PsiBuilder.Marker multiDecl = mark();
|
||||||
parseMultiDeclarationName(propertyNameFollow);
|
parseMultiDeclarationName(propertyNameFollow);
|
||||||
errorIf(multiDecl, !local, "Destructuring declarations are only allowed for local variables/values");
|
errorIf(multiDecl, !mode.desctructuringAllowed, "Destructuring declarations are only allowed for local variables/values");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
parseFunctionOrPropertyName(receiverTypeDeclared, "property", propertyNameFollow, /*nameRequired = */ true);
|
parseFunctionOrPropertyName(receiverTypeDeclared, "property", propertyNameFollow, /*nameRequired = */ true);
|
||||||
@@ -1297,25 +1315,30 @@ public class KotlinParsing extends AbstractKotlinParsing {
|
|||||||
|
|
||||||
beforeName.drop();
|
beforeName.drop();
|
||||||
|
|
||||||
if (!local) {
|
if (mode.accessorsAllowed) {
|
||||||
// It's only needed for non-local properties, because in local ones:
|
// It's only needed for non-local properties, because in local ones:
|
||||||
// "val a = 1; b" must not be an infix call of b on "val ...;"
|
// "val a = 1; b" must not be an infix call of b on "val ...;"
|
||||||
consumeIf(SEMICOLON);
|
|
||||||
|
|
||||||
AccessorKind accessorKind = parsePropertyGetterOrSetter(null);
|
myBuilder.enableNewlines();
|
||||||
if (accessorKind != null) {
|
boolean hasNewLineWithSemicolon = consumeIf(SEMICOLON) && myBuilder.newlineBeforeCurrentToken();
|
||||||
parsePropertyGetterOrSetter(accessorKind);
|
myBuilder.restoreNewlinesState();
|
||||||
}
|
|
||||||
|
|
||||||
if (!atSet(EOL_OR_SEMICOLON, RBRACE)) {
|
if (!hasNewLineWithSemicolon) {
|
||||||
if (getLastToken() != SEMICOLON) {
|
AccessorKind accessorKind = parsePropertyGetterOrSetter(null);
|
||||||
errorUntil(
|
if (accessorKind != null) {
|
||||||
"Property getter or setter expected",
|
parsePropertyGetterOrSetter(accessorKind);
|
||||||
TokenSet.orSet(DECLARATION_FIRST, TokenSet.create(EOL_OR_SEMICOLON, LBRACE, RBRACE)));
|
}
|
||||||
|
|
||||||
|
if (!atSet(EOL_OR_SEMICOLON, RBRACE)) {
|
||||||
|
if (getLastToken() != SEMICOLON) {
|
||||||
|
errorUntil(
|
||||||
|
"Property getter or setter expected",
|
||||||
|
TokenSet.orSet(DECLARATION_FIRST, TokenSet.create(EOL_OR_SEMICOLON, LBRACE, RBRACE)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
consumeIf(SEMICOLON);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else {
|
|
||||||
consumeIf(SEMICOLON);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
public var inc: Int = 0;
|
public var inc: Int = 0
|
||||||
|
|
||||||
public var propInc: Int = 0
|
public var propInc: Int = 0
|
||||||
get() {++inc; return field}
|
get() {++inc; return field}
|
||||||
@@ -7,9 +7,9 @@ public var propInc: Int = 0
|
|||||||
field = a
|
field = a
|
||||||
}
|
}
|
||||||
|
|
||||||
public var dec: Int = 0;
|
public var dec: Int = 0
|
||||||
|
|
||||||
public var propDec: Int = 0;
|
public var propDec: Int = 0
|
||||||
get() { --dec; return field}
|
get() { --dec; return field}
|
||||||
set(a: Int) {
|
set(a: Int) {
|
||||||
--dec
|
--dec
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ public var propInc: Int = 0
|
|||||||
|
|
||||||
public var dec: Int = 0;
|
public var dec: Int = 0;
|
||||||
|
|
||||||
public var propDec: Int = 0;
|
public var propDec: Int = 0
|
||||||
get() { dec--; return field}
|
get() { dec--; return field}
|
||||||
set(a: Int) {
|
set(a: Int) {
|
||||||
dec--
|
dec--
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ class A {
|
|||||||
|
|
||||||
var holder: String = ""
|
var holder: String = ""
|
||||||
|
|
||||||
var r2: Int = 1;
|
var r2: Int = 1
|
||||||
get() {
|
get() {
|
||||||
holder += "getR2"
|
holder += "getR2"
|
||||||
return field
|
return field
|
||||||
@@ -22,7 +22,7 @@ class A {
|
|||||||
return r2
|
return r2
|
||||||
}
|
}
|
||||||
|
|
||||||
var r3: Int = 1;
|
var r3: Int = 1
|
||||||
set(p: Int) {
|
set(p: Int) {
|
||||||
holder += "setR3"
|
holder += "setR3"
|
||||||
field = p
|
field = p
|
||||||
@@ -34,7 +34,7 @@ class A {
|
|||||||
return r3
|
return r3
|
||||||
}
|
}
|
||||||
|
|
||||||
var r4: Int = 1;
|
var r4: Int = 1
|
||||||
get() {
|
get() {
|
||||||
holder += "getR4"
|
holder += "getR4"
|
||||||
return field
|
return field
|
||||||
|
|||||||
+3
-3
@@ -9,7 +9,7 @@ object A {
|
|||||||
|
|
||||||
var holder: String = ""
|
var holder: String = ""
|
||||||
|
|
||||||
var r2: Int = 1;
|
var r2: Int = 1
|
||||||
get() {
|
get() {
|
||||||
holder += "getR2"
|
holder += "getR2"
|
||||||
return field
|
return field
|
||||||
@@ -21,7 +21,7 @@ object A {
|
|||||||
return r2
|
return r2
|
||||||
}
|
}
|
||||||
|
|
||||||
var r3: Int = 1;
|
var r3: Int = 1
|
||||||
set(p: Int) {
|
set(p: Int) {
|
||||||
holder += "setR3"
|
holder += "setR3"
|
||||||
field = p
|
field = p
|
||||||
@@ -33,7 +33,7 @@ object A {
|
|||||||
return r3
|
return r3
|
||||||
}
|
}
|
||||||
|
|
||||||
var r4: Int = 1;
|
var r4: Int = 1
|
||||||
get() {
|
get() {
|
||||||
holder += "getR4"
|
holder += "getR4"
|
||||||
return field
|
return field
|
||||||
|
|||||||
+1
-1
@@ -7,7 +7,7 @@ annotation class Accessor(val value: String)
|
|||||||
|
|
||||||
interface Z {
|
interface Z {
|
||||||
@Property("OK")
|
@Property("OK")
|
||||||
val z: String;
|
val z: String
|
||||||
@Accessor("OK")
|
@Accessor("OK")
|
||||||
get() = "OK"
|
get() = "OK"
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
+1
-1
@@ -7,7 +7,7 @@ annotation class Accessor(val value: String)
|
|||||||
|
|
||||||
interface Z {
|
interface Z {
|
||||||
@Property("OK")
|
@Property("OK")
|
||||||
val z: String;
|
val z: String
|
||||||
@Accessor("OK")
|
@Accessor("OK")
|
||||||
get() = "OK"
|
get() = "OK"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
// KOTLIN_CONFIGURATION_FLAGS: +JVM.JVM8_TARGET_WITH_DEFAULTS
|
// KOTLIN_CONFIGURATION_FLAGS: +JVM.JVM8_TARGET_WITH_DEFAULTS
|
||||||
|
|
||||||
interface Z {
|
interface Z {
|
||||||
val z: String;
|
val z: String
|
||||||
get() = "OK"
|
get() = "OK"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
// JVM_TARGET: 1.8
|
// JVM_TARGET: 1.8
|
||||||
|
|
||||||
interface Z {
|
interface Z {
|
||||||
val z: String;
|
val z: String
|
||||||
get() = "OK"
|
get() = "OK"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,25 @@
|
|||||||
|
var log = "begin"
|
||||||
|
fun append(msg: String) {
|
||||||
|
log = "$log;$msg"
|
||||||
|
}
|
||||||
|
|
||||||
|
val test1 get() = run {
|
||||||
|
append("test1.get")
|
||||||
|
"1"
|
||||||
|
}
|
||||||
|
|
||||||
|
val test2 get() = run {
|
||||||
|
append("test2.get")
|
||||||
|
test1
|
||||||
|
}
|
||||||
|
|
||||||
|
var test3: String = "Z"
|
||||||
|
set(value) {
|
||||||
|
append("test3.set")
|
||||||
|
field = value
|
||||||
|
}
|
||||||
|
|
||||||
|
test3 = "3"
|
||||||
|
|
||||||
|
val r = "$test1;$test2;$test3|$log"
|
||||||
|
// expected: r: 1;1;3|begin;test3.set;test1.get;test2.get;test1.get
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
val testVal: Int get() = 42
|
||||||
|
|
||||||
|
val testValNoType get() = 42
|
||||||
|
|
||||||
|
val String.testExtVal: Int get() = 42
|
||||||
|
|
||||||
|
val String.testExtValNoType get() = 42
|
||||||
|
|
||||||
|
var testVar: Int get() = 42; set(value) {}
|
||||||
|
|
||||||
|
var String.testExtVar: Int get() = 42; set(value) {}
|
||||||
|
|
||||||
|
val testValLineBreak: Int
|
||||||
|
get() = 42
|
||||||
|
|
||||||
|
val testValLineBreakNoType
|
||||||
|
get() = 42
|
||||||
|
|
||||||
|
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>val testValLineBreakSemi: Int<!>;
|
||||||
|
<!UNRESOLVED_REFERENCE!>get<!>() = 42
|
||||||
|
|
||||||
|
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>val testValLineBreakSemiNoType<!>;
|
||||||
|
<!UNRESOLVED_REFERENCE!>get<!>() = 42
|
||||||
|
|
||||||
|
var testVarLineBreak: Int
|
||||||
|
get() = 42
|
||||||
|
set(value) {}
|
||||||
|
|
||||||
|
var String.testExtVarLineBreak: Int
|
||||||
|
get() = 42
|
||||||
|
set(value) {}
|
||||||
|
|
||||||
|
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>var testVarLineBreakSemi: Int<!>;
|
||||||
|
<!UNRESOLVED_REFERENCE!>get<!>() = 42
|
||||||
|
<!UNRESOLVED_REFERENCE!>set<!>(<!UNRESOLVED_REFERENCE!>value<!>) {}
|
||||||
|
|
||||||
|
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>var String.testExtVarLineBreakSemi: Int<!>;
|
||||||
|
<!UNRESOLVED_REFERENCE!>get<!>() = 42
|
||||||
|
<!UNRESOLVED_REFERENCE!>set<!>(<!UNRESOLVED_REFERENCE!>value<!>) {}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
package
|
||||||
|
|
||||||
|
public final class TopLevelPropertiesWithGetSet : kotlin.script.templates.standard.ScriptTemplateWithArgs {
|
||||||
|
public constructor TopLevelPropertiesWithGetSet(/*0*/ args: kotlin.Array<kotlin.String>)
|
||||||
|
public final override /*1*/ /*fake_override*/ val args: kotlin.Array<kotlin.String>
|
||||||
|
public final val testVal: kotlin.Int
|
||||||
|
public final val testValLineBreak: kotlin.Int
|
||||||
|
public final val testValLineBreakNoType: kotlin.Int
|
||||||
|
public final val testValLineBreakSemi: kotlin.Int
|
||||||
|
public final val testValLineBreakSemiNoType: [ERROR : No type, no body]
|
||||||
|
public final val testValNoType: kotlin.Int
|
||||||
|
public final var testVar: kotlin.Int
|
||||||
|
public final var testVarLineBreak: kotlin.Int
|
||||||
|
public final var testVarLineBreakSemi: kotlin.Int
|
||||||
|
public final val kotlin.String.testExtVal: kotlin.Int
|
||||||
|
public final val kotlin.String.testExtValNoType: kotlin.Int
|
||||||
|
public final var kotlin.String.testExtVar: kotlin.Int
|
||||||
|
public final var kotlin.String.testExtVarLineBreak: kotlin.Int
|
||||||
|
public final var kotlin.String.testExtVarLineBreakSemi: kotlin.Int
|
||||||
|
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||||
|
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||||
|
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||||
|
}
|
||||||
@@ -0,0 +1,54 @@
|
|||||||
|
val testVal: Int get() = 42
|
||||||
|
|
||||||
|
val testValSemiSameLine: Int; get() = 42
|
||||||
|
|
||||||
|
val testValNoType get() = 42
|
||||||
|
|
||||||
|
val String.testExtVal: Int get() = 42
|
||||||
|
|
||||||
|
val String.testExtValNoType get() = 42
|
||||||
|
|
||||||
|
var testVar: Int get() = 42; set(value) {}
|
||||||
|
|
||||||
|
var String.testExtVar: Int get() = 42; set(value) {}
|
||||||
|
|
||||||
|
val testValLineBreak: Int
|
||||||
|
get() = 42
|
||||||
|
|
||||||
|
val testValLineBreakNoType
|
||||||
|
get() = 42
|
||||||
|
|
||||||
|
val testValLineBreakSemi: Int;
|
||||||
|
get() = 42
|
||||||
|
|
||||||
|
val testValLineBreakSemiComment1: Int; // this IS NOT an accessor:
|
||||||
|
get() = 42
|
||||||
|
|
||||||
|
val testValLineBreakSemiComment2: Int; /*
|
||||||
|
this IS NOT an accessor either:
|
||||||
|
*/
|
||||||
|
get() = 42
|
||||||
|
|
||||||
|
val testValLineBreakSemiComment3: Int; /*
|
||||||
|
this IS an accessor!
|
||||||
|
*/ get() = 42
|
||||||
|
|
||||||
|
val testValLineBreakSemiNoType;
|
||||||
|
get() = 42
|
||||||
|
|
||||||
|
var testVarLineBreak: Int
|
||||||
|
get() = 42
|
||||||
|
set(value) {}
|
||||||
|
|
||||||
|
var String.testExtVarLineBreak: Int
|
||||||
|
get() = 42
|
||||||
|
set(value) {}
|
||||||
|
|
||||||
|
var testVarLineBreakSemi: Int;
|
||||||
|
get() = 42
|
||||||
|
set(value) {}
|
||||||
|
|
||||||
|
var String.testExtVarLineBreakSemi: Int;
|
||||||
|
get() = 42
|
||||||
|
set(value) {}
|
||||||
|
|
||||||
@@ -0,0 +1,517 @@
|
|||||||
|
JetFile: topLevelPropertiesWithGetSet.kts
|
||||||
|
PACKAGE_DIRECTIVE
|
||||||
|
<empty list>
|
||||||
|
IMPORT_LIST
|
||||||
|
<empty list>
|
||||||
|
SCRIPT
|
||||||
|
BLOCK
|
||||||
|
PROPERTY
|
||||||
|
PsiElement(val)('val')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
PsiElement(IDENTIFIER)('testVal')
|
||||||
|
PsiElement(COLON)(':')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
TYPE_REFERENCE
|
||||||
|
USER_TYPE
|
||||||
|
REFERENCE_EXPRESSION
|
||||||
|
PsiElement(IDENTIFIER)('Int')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
PROPERTY_ACCESSOR
|
||||||
|
PsiElement(get)('get')
|
||||||
|
PsiElement(LPAR)('(')
|
||||||
|
PsiElement(RPAR)(')')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
PsiElement(EQ)('=')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
INTEGER_CONSTANT
|
||||||
|
PsiElement(INTEGER_LITERAL)('42')
|
||||||
|
PsiWhiteSpace('\n\n')
|
||||||
|
PROPERTY
|
||||||
|
PsiElement(val)('val')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
PsiElement(IDENTIFIER)('testValSemiSameLine')
|
||||||
|
PsiElement(COLON)(':')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
TYPE_REFERENCE
|
||||||
|
USER_TYPE
|
||||||
|
REFERENCE_EXPRESSION
|
||||||
|
PsiElement(IDENTIFIER)('Int')
|
||||||
|
PsiElement(SEMICOLON)(';')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
PROPERTY_ACCESSOR
|
||||||
|
PsiElement(get)('get')
|
||||||
|
PsiElement(LPAR)('(')
|
||||||
|
PsiElement(RPAR)(')')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
PsiElement(EQ)('=')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
INTEGER_CONSTANT
|
||||||
|
PsiElement(INTEGER_LITERAL)('42')
|
||||||
|
PsiWhiteSpace('\n\n')
|
||||||
|
PROPERTY
|
||||||
|
PsiElement(val)('val')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
PsiElement(IDENTIFIER)('testValNoType')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
PROPERTY_ACCESSOR
|
||||||
|
PsiElement(get)('get')
|
||||||
|
PsiElement(LPAR)('(')
|
||||||
|
PsiElement(RPAR)(')')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
PsiElement(EQ)('=')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
INTEGER_CONSTANT
|
||||||
|
PsiElement(INTEGER_LITERAL)('42')
|
||||||
|
PsiWhiteSpace('\n\n')
|
||||||
|
PROPERTY
|
||||||
|
PsiElement(val)('val')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
TYPE_REFERENCE
|
||||||
|
USER_TYPE
|
||||||
|
REFERENCE_EXPRESSION
|
||||||
|
PsiElement(IDENTIFIER)('String')
|
||||||
|
PsiElement(DOT)('.')
|
||||||
|
PsiElement(IDENTIFIER)('testExtVal')
|
||||||
|
PsiElement(COLON)(':')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
TYPE_REFERENCE
|
||||||
|
USER_TYPE
|
||||||
|
REFERENCE_EXPRESSION
|
||||||
|
PsiElement(IDENTIFIER)('Int')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
PROPERTY_ACCESSOR
|
||||||
|
PsiElement(get)('get')
|
||||||
|
PsiElement(LPAR)('(')
|
||||||
|
PsiElement(RPAR)(')')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
PsiElement(EQ)('=')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
INTEGER_CONSTANT
|
||||||
|
PsiElement(INTEGER_LITERAL)('42')
|
||||||
|
PsiWhiteSpace('\n\n')
|
||||||
|
PROPERTY
|
||||||
|
PsiElement(val)('val')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
TYPE_REFERENCE
|
||||||
|
USER_TYPE
|
||||||
|
REFERENCE_EXPRESSION
|
||||||
|
PsiElement(IDENTIFIER)('String')
|
||||||
|
PsiElement(DOT)('.')
|
||||||
|
PsiElement(IDENTIFIER)('testExtValNoType')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
PROPERTY_ACCESSOR
|
||||||
|
PsiElement(get)('get')
|
||||||
|
PsiElement(LPAR)('(')
|
||||||
|
PsiElement(RPAR)(')')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
PsiElement(EQ)('=')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
INTEGER_CONSTANT
|
||||||
|
PsiElement(INTEGER_LITERAL)('42')
|
||||||
|
PsiWhiteSpace('\n\n')
|
||||||
|
PROPERTY
|
||||||
|
PsiElement(var)('var')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
PsiElement(IDENTIFIER)('testVar')
|
||||||
|
PsiElement(COLON)(':')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
TYPE_REFERENCE
|
||||||
|
USER_TYPE
|
||||||
|
REFERENCE_EXPRESSION
|
||||||
|
PsiElement(IDENTIFIER)('Int')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
PROPERTY_ACCESSOR
|
||||||
|
PsiElement(get)('get')
|
||||||
|
PsiElement(LPAR)('(')
|
||||||
|
PsiElement(RPAR)(')')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
PsiElement(EQ)('=')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
INTEGER_CONSTANT
|
||||||
|
PsiElement(INTEGER_LITERAL)('42')
|
||||||
|
PsiElement(SEMICOLON)(';')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
PROPERTY_ACCESSOR
|
||||||
|
PsiElement(set)('set')
|
||||||
|
PsiElement(LPAR)('(')
|
||||||
|
VALUE_PARAMETER_LIST
|
||||||
|
VALUE_PARAMETER
|
||||||
|
PsiElement(IDENTIFIER)('value')
|
||||||
|
PsiElement(RPAR)(')')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
BLOCK
|
||||||
|
PsiElement(LBRACE)('{')
|
||||||
|
PsiElement(RBRACE)('}')
|
||||||
|
PsiWhiteSpace('\n\n')
|
||||||
|
PROPERTY
|
||||||
|
PsiElement(var)('var')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
TYPE_REFERENCE
|
||||||
|
USER_TYPE
|
||||||
|
REFERENCE_EXPRESSION
|
||||||
|
PsiElement(IDENTIFIER)('String')
|
||||||
|
PsiElement(DOT)('.')
|
||||||
|
PsiElement(IDENTIFIER)('testExtVar')
|
||||||
|
PsiElement(COLON)(':')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
TYPE_REFERENCE
|
||||||
|
USER_TYPE
|
||||||
|
REFERENCE_EXPRESSION
|
||||||
|
PsiElement(IDENTIFIER)('Int')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
PROPERTY_ACCESSOR
|
||||||
|
PsiElement(get)('get')
|
||||||
|
PsiElement(LPAR)('(')
|
||||||
|
PsiElement(RPAR)(')')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
PsiElement(EQ)('=')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
INTEGER_CONSTANT
|
||||||
|
PsiElement(INTEGER_LITERAL)('42')
|
||||||
|
PsiElement(SEMICOLON)(';')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
PROPERTY_ACCESSOR
|
||||||
|
PsiElement(set)('set')
|
||||||
|
PsiElement(LPAR)('(')
|
||||||
|
VALUE_PARAMETER_LIST
|
||||||
|
VALUE_PARAMETER
|
||||||
|
PsiElement(IDENTIFIER)('value')
|
||||||
|
PsiElement(RPAR)(')')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
BLOCK
|
||||||
|
PsiElement(LBRACE)('{')
|
||||||
|
PsiElement(RBRACE)('}')
|
||||||
|
PsiWhiteSpace('\n\n')
|
||||||
|
PROPERTY
|
||||||
|
PsiElement(val)('val')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
PsiElement(IDENTIFIER)('testValLineBreak')
|
||||||
|
PsiElement(COLON)(':')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
TYPE_REFERENCE
|
||||||
|
USER_TYPE
|
||||||
|
REFERENCE_EXPRESSION
|
||||||
|
PsiElement(IDENTIFIER)('Int')
|
||||||
|
PsiWhiteSpace('\n ')
|
||||||
|
PROPERTY_ACCESSOR
|
||||||
|
PsiElement(get)('get')
|
||||||
|
PsiElement(LPAR)('(')
|
||||||
|
PsiElement(RPAR)(')')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
PsiElement(EQ)('=')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
INTEGER_CONSTANT
|
||||||
|
PsiElement(INTEGER_LITERAL)('42')
|
||||||
|
PsiWhiteSpace('\n\n')
|
||||||
|
PROPERTY
|
||||||
|
PsiElement(val)('val')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
PsiElement(IDENTIFIER)('testValLineBreakNoType')
|
||||||
|
PsiWhiteSpace('\n ')
|
||||||
|
PROPERTY_ACCESSOR
|
||||||
|
PsiElement(get)('get')
|
||||||
|
PsiElement(LPAR)('(')
|
||||||
|
PsiElement(RPAR)(')')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
PsiElement(EQ)('=')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
INTEGER_CONSTANT
|
||||||
|
PsiElement(INTEGER_LITERAL)('42')
|
||||||
|
PsiWhiteSpace('\n\n')
|
||||||
|
PROPERTY
|
||||||
|
PsiElement(val)('val')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
PsiElement(IDENTIFIER)('testValLineBreakSemi')
|
||||||
|
PsiElement(COLON)(':')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
TYPE_REFERENCE
|
||||||
|
USER_TYPE
|
||||||
|
REFERENCE_EXPRESSION
|
||||||
|
PsiElement(IDENTIFIER)('Int')
|
||||||
|
PsiElement(SEMICOLON)(';')
|
||||||
|
PsiWhiteSpace('\n ')
|
||||||
|
SCRIPT_INITIALIZER
|
||||||
|
BINARY_EXPRESSION
|
||||||
|
CALL_EXPRESSION
|
||||||
|
REFERENCE_EXPRESSION
|
||||||
|
PsiElement(IDENTIFIER)('get')
|
||||||
|
VALUE_ARGUMENT_LIST
|
||||||
|
PsiElement(LPAR)('(')
|
||||||
|
PsiElement(RPAR)(')')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
OPERATION_REFERENCE
|
||||||
|
PsiElement(EQ)('=')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
INTEGER_CONSTANT
|
||||||
|
PsiElement(INTEGER_LITERAL)('42')
|
||||||
|
PsiWhiteSpace('\n\n')
|
||||||
|
PROPERTY
|
||||||
|
PsiElement(val)('val')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
PsiElement(IDENTIFIER)('testValLineBreakSemiComment1')
|
||||||
|
PsiElement(COLON)(':')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
TYPE_REFERENCE
|
||||||
|
USER_TYPE
|
||||||
|
REFERENCE_EXPRESSION
|
||||||
|
PsiElement(IDENTIFIER)('Int')
|
||||||
|
PsiElement(SEMICOLON)(';')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
PsiComment(EOL_COMMENT)('// this IS NOT an accessor:')
|
||||||
|
PsiWhiteSpace('\n ')
|
||||||
|
SCRIPT_INITIALIZER
|
||||||
|
BINARY_EXPRESSION
|
||||||
|
CALL_EXPRESSION
|
||||||
|
REFERENCE_EXPRESSION
|
||||||
|
PsiElement(IDENTIFIER)('get')
|
||||||
|
VALUE_ARGUMENT_LIST
|
||||||
|
PsiElement(LPAR)('(')
|
||||||
|
PsiElement(RPAR)(')')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
OPERATION_REFERENCE
|
||||||
|
PsiElement(EQ)('=')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
INTEGER_CONSTANT
|
||||||
|
PsiElement(INTEGER_LITERAL)('42')
|
||||||
|
PsiWhiteSpace('\n\n')
|
||||||
|
PROPERTY
|
||||||
|
PsiElement(val)('val')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
PsiElement(IDENTIFIER)('testValLineBreakSemiComment2')
|
||||||
|
PsiElement(COLON)(':')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
TYPE_REFERENCE
|
||||||
|
USER_TYPE
|
||||||
|
REFERENCE_EXPRESSION
|
||||||
|
PsiElement(IDENTIFIER)('Int')
|
||||||
|
PsiElement(SEMICOLON)(';')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
PsiComment(BLOCK_COMMENT)('/*\nthis IS NOT an accessor either:\n*/')
|
||||||
|
PsiWhiteSpace('\n ')
|
||||||
|
SCRIPT_INITIALIZER
|
||||||
|
BINARY_EXPRESSION
|
||||||
|
CALL_EXPRESSION
|
||||||
|
REFERENCE_EXPRESSION
|
||||||
|
PsiElement(IDENTIFIER)('get')
|
||||||
|
VALUE_ARGUMENT_LIST
|
||||||
|
PsiElement(LPAR)('(')
|
||||||
|
PsiElement(RPAR)(')')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
OPERATION_REFERENCE
|
||||||
|
PsiElement(EQ)('=')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
INTEGER_CONSTANT
|
||||||
|
PsiElement(INTEGER_LITERAL)('42')
|
||||||
|
PsiWhiteSpace('\n\n')
|
||||||
|
PROPERTY
|
||||||
|
PsiElement(val)('val')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
PsiElement(IDENTIFIER)('testValLineBreakSemiComment3')
|
||||||
|
PsiElement(COLON)(':')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
TYPE_REFERENCE
|
||||||
|
USER_TYPE
|
||||||
|
REFERENCE_EXPRESSION
|
||||||
|
PsiElement(IDENTIFIER)('Int')
|
||||||
|
PsiElement(SEMICOLON)(';')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
PsiComment(BLOCK_COMMENT)('/*\nthis IS an accessor!\n*/')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
PROPERTY_ACCESSOR
|
||||||
|
PsiElement(get)('get')
|
||||||
|
PsiElement(LPAR)('(')
|
||||||
|
PsiElement(RPAR)(')')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
PsiElement(EQ)('=')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
INTEGER_CONSTANT
|
||||||
|
PsiElement(INTEGER_LITERAL)('42')
|
||||||
|
PsiWhiteSpace('\n\n')
|
||||||
|
PROPERTY
|
||||||
|
PsiElement(val)('val')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
PsiElement(IDENTIFIER)('testValLineBreakSemiNoType')
|
||||||
|
PsiElement(SEMICOLON)(';')
|
||||||
|
PsiWhiteSpace('\n ')
|
||||||
|
SCRIPT_INITIALIZER
|
||||||
|
BINARY_EXPRESSION
|
||||||
|
CALL_EXPRESSION
|
||||||
|
REFERENCE_EXPRESSION
|
||||||
|
PsiElement(IDENTIFIER)('get')
|
||||||
|
VALUE_ARGUMENT_LIST
|
||||||
|
PsiElement(LPAR)('(')
|
||||||
|
PsiElement(RPAR)(')')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
OPERATION_REFERENCE
|
||||||
|
PsiElement(EQ)('=')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
INTEGER_CONSTANT
|
||||||
|
PsiElement(INTEGER_LITERAL)('42')
|
||||||
|
PsiWhiteSpace('\n\n')
|
||||||
|
PROPERTY
|
||||||
|
PsiElement(var)('var')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
PsiElement(IDENTIFIER)('testVarLineBreak')
|
||||||
|
PsiElement(COLON)(':')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
TYPE_REFERENCE
|
||||||
|
USER_TYPE
|
||||||
|
REFERENCE_EXPRESSION
|
||||||
|
PsiElement(IDENTIFIER)('Int')
|
||||||
|
PsiWhiteSpace('\n ')
|
||||||
|
PROPERTY_ACCESSOR
|
||||||
|
PsiElement(get)('get')
|
||||||
|
PsiElement(LPAR)('(')
|
||||||
|
PsiElement(RPAR)(')')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
PsiElement(EQ)('=')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
INTEGER_CONSTANT
|
||||||
|
PsiElement(INTEGER_LITERAL)('42')
|
||||||
|
PsiWhiteSpace('\n ')
|
||||||
|
PROPERTY_ACCESSOR
|
||||||
|
PsiElement(set)('set')
|
||||||
|
PsiElement(LPAR)('(')
|
||||||
|
VALUE_PARAMETER_LIST
|
||||||
|
VALUE_PARAMETER
|
||||||
|
PsiElement(IDENTIFIER)('value')
|
||||||
|
PsiElement(RPAR)(')')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
BLOCK
|
||||||
|
PsiElement(LBRACE)('{')
|
||||||
|
PsiElement(RBRACE)('}')
|
||||||
|
PsiWhiteSpace('\n\n')
|
||||||
|
PROPERTY
|
||||||
|
PsiElement(var)('var')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
TYPE_REFERENCE
|
||||||
|
USER_TYPE
|
||||||
|
REFERENCE_EXPRESSION
|
||||||
|
PsiElement(IDENTIFIER)('String')
|
||||||
|
PsiElement(DOT)('.')
|
||||||
|
PsiElement(IDENTIFIER)('testExtVarLineBreak')
|
||||||
|
PsiElement(COLON)(':')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
TYPE_REFERENCE
|
||||||
|
USER_TYPE
|
||||||
|
REFERENCE_EXPRESSION
|
||||||
|
PsiElement(IDENTIFIER)('Int')
|
||||||
|
PsiWhiteSpace('\n ')
|
||||||
|
PROPERTY_ACCESSOR
|
||||||
|
PsiElement(get)('get')
|
||||||
|
PsiElement(LPAR)('(')
|
||||||
|
PsiElement(RPAR)(')')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
PsiElement(EQ)('=')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
INTEGER_CONSTANT
|
||||||
|
PsiElement(INTEGER_LITERAL)('42')
|
||||||
|
PsiWhiteSpace('\n ')
|
||||||
|
PROPERTY_ACCESSOR
|
||||||
|
PsiElement(set)('set')
|
||||||
|
PsiElement(LPAR)('(')
|
||||||
|
VALUE_PARAMETER_LIST
|
||||||
|
VALUE_PARAMETER
|
||||||
|
PsiElement(IDENTIFIER)('value')
|
||||||
|
PsiElement(RPAR)(')')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
BLOCK
|
||||||
|
PsiElement(LBRACE)('{')
|
||||||
|
PsiElement(RBRACE)('}')
|
||||||
|
PsiWhiteSpace('\n\n')
|
||||||
|
PROPERTY
|
||||||
|
PsiElement(var)('var')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
PsiElement(IDENTIFIER)('testVarLineBreakSemi')
|
||||||
|
PsiElement(COLON)(':')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
TYPE_REFERENCE
|
||||||
|
USER_TYPE
|
||||||
|
REFERENCE_EXPRESSION
|
||||||
|
PsiElement(IDENTIFIER)('Int')
|
||||||
|
PsiElement(SEMICOLON)(';')
|
||||||
|
PsiWhiteSpace('\n ')
|
||||||
|
SCRIPT_INITIALIZER
|
||||||
|
BINARY_EXPRESSION
|
||||||
|
CALL_EXPRESSION
|
||||||
|
REFERENCE_EXPRESSION
|
||||||
|
PsiElement(IDENTIFIER)('get')
|
||||||
|
VALUE_ARGUMENT_LIST
|
||||||
|
PsiElement(LPAR)('(')
|
||||||
|
PsiElement(RPAR)(')')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
OPERATION_REFERENCE
|
||||||
|
PsiElement(EQ)('=')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
INTEGER_CONSTANT
|
||||||
|
PsiElement(INTEGER_LITERAL)('42')
|
||||||
|
PsiWhiteSpace('\n ')
|
||||||
|
SCRIPT_INITIALIZER
|
||||||
|
CALL_EXPRESSION
|
||||||
|
REFERENCE_EXPRESSION
|
||||||
|
PsiElement(IDENTIFIER)('set')
|
||||||
|
VALUE_ARGUMENT_LIST
|
||||||
|
PsiElement(LPAR)('(')
|
||||||
|
VALUE_ARGUMENT
|
||||||
|
REFERENCE_EXPRESSION
|
||||||
|
PsiElement(IDENTIFIER)('value')
|
||||||
|
PsiElement(RPAR)(')')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
LAMBDA_ARGUMENT
|
||||||
|
LAMBDA_EXPRESSION
|
||||||
|
FUNCTION_LITERAL
|
||||||
|
PsiElement(LBRACE)('{')
|
||||||
|
BLOCK
|
||||||
|
<empty list>
|
||||||
|
PsiElement(RBRACE)('}')
|
||||||
|
PsiWhiteSpace('\n\n')
|
||||||
|
PROPERTY
|
||||||
|
PsiElement(var)('var')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
TYPE_REFERENCE
|
||||||
|
USER_TYPE
|
||||||
|
REFERENCE_EXPRESSION
|
||||||
|
PsiElement(IDENTIFIER)('String')
|
||||||
|
PsiElement(DOT)('.')
|
||||||
|
PsiElement(IDENTIFIER)('testExtVarLineBreakSemi')
|
||||||
|
PsiElement(COLON)(':')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
TYPE_REFERENCE
|
||||||
|
USER_TYPE
|
||||||
|
REFERENCE_EXPRESSION
|
||||||
|
PsiElement(IDENTIFIER)('Int')
|
||||||
|
PsiElement(SEMICOLON)(';')
|
||||||
|
PsiWhiteSpace('\n ')
|
||||||
|
SCRIPT_INITIALIZER
|
||||||
|
BINARY_EXPRESSION
|
||||||
|
CALL_EXPRESSION
|
||||||
|
REFERENCE_EXPRESSION
|
||||||
|
PsiElement(IDENTIFIER)('get')
|
||||||
|
VALUE_ARGUMENT_LIST
|
||||||
|
PsiElement(LPAR)('(')
|
||||||
|
PsiElement(RPAR)(')')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
OPERATION_REFERENCE
|
||||||
|
PsiElement(EQ)('=')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
INTEGER_CONSTANT
|
||||||
|
PsiElement(INTEGER_LITERAL)('42')
|
||||||
|
PsiWhiteSpace('\n ')
|
||||||
|
SCRIPT_INITIALIZER
|
||||||
|
CALL_EXPRESSION
|
||||||
|
REFERENCE_EXPRESSION
|
||||||
|
PsiElement(IDENTIFIER)('set')
|
||||||
|
VALUE_ARGUMENT_LIST
|
||||||
|
PsiElement(LPAR)('(')
|
||||||
|
VALUE_ARGUMENT
|
||||||
|
REFERENCE_EXPRESSION
|
||||||
|
PsiElement(IDENTIFIER)('value')
|
||||||
|
PsiElement(RPAR)(')')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
LAMBDA_ARGUMENT
|
||||||
|
LAMBDA_EXPRESSION
|
||||||
|
FUNCTION_LITERAL
|
||||||
|
PsiElement(LBRACE)('{')
|
||||||
|
BLOCK
|
||||||
|
<empty list>
|
||||||
|
PsiElement(RBRACE)('}')
|
||||||
@@ -23306,6 +23306,12 @@ public class DiagnosticsTestGenerated extends AbstractDiagnosticsTest {
|
|||||||
doTest(fileName);
|
doTest(fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("topLevelPropertiesWithGetSet.kts")
|
||||||
|
public void testTopLevelPropertiesWithGetSet() throws Exception {
|
||||||
|
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/script/topLevelPropertiesWithGetSet.kts");
|
||||||
|
doTest(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("topLevelVariable.kts")
|
@TestMetadata("topLevelVariable.kts")
|
||||||
public void testTopLevelVariable() throws Exception {
|
public void testTopLevelVariable() throws Exception {
|
||||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/script/topLevelVariable.kts");
|
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/script/topLevelVariable.kts");
|
||||||
|
|||||||
@@ -162,6 +162,12 @@ public class ScriptCodegenTestGenerated extends AbstractScriptCodegenTest {
|
|||||||
doTest(fileName);
|
doTest(fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("topLevelPropertiesWithGetSet.kts")
|
||||||
|
public void testTopLevelPropertiesWithGetSet() throws Exception {
|
||||||
|
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/script/topLevelPropertiesWithGetSet.kts");
|
||||||
|
doTest(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("topLevelProperty.kts")
|
@TestMetadata("topLevelProperty.kts")
|
||||||
public void testTopLevelProperty() throws Exception {
|
public void testTopLevelProperty() throws Exception {
|
||||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/script/topLevelProperty.kts");
|
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/script/topLevelProperty.kts");
|
||||||
|
|||||||
@@ -2695,6 +2695,12 @@ public class ParsingTestGenerated extends AbstractParsingTest {
|
|||||||
doParsingTest(fileName);
|
doParsingTest(fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("topLevelPropertiesWithGetSet.kts")
|
||||||
|
public void testTopLevelPropertiesWithGetSet() throws Exception {
|
||||||
|
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/psi/script/topLevelPropertiesWithGetSet.kts");
|
||||||
|
doParsingTest(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("unexpectedSymbol.kts")
|
@TestMetadata("unexpectedSymbol.kts")
|
||||||
public void testUnexpectedSymbol() throws Exception {
|
public void testUnexpectedSymbol() throws Exception {
|
||||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/psi/script/unexpectedSymbol.kts");
|
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/psi/script/unexpectedSymbol.kts");
|
||||||
|
|||||||
Vendored
+1
-1
@@ -18,7 +18,7 @@ package foo
|
|||||||
|
|
||||||
object Bar {
|
object Bar {
|
||||||
companion object {
|
companion object {
|
||||||
val value = "foobar";
|
val value = "foobar"
|
||||||
@JvmStatic get() {
|
@JvmStatic get() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
+1
-1
@@ -18,7 +18,7 @@ package foo
|
|||||||
|
|
||||||
object Bar {
|
object Bar {
|
||||||
companion object {
|
companion object {
|
||||||
var variable: String;
|
var variable: String
|
||||||
@JvmStatic set(value) {
|
@JvmStatic set(value) {
|
||||||
field = value
|
field = value
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -17,7 +17,7 @@ public class Foo {
|
|||||||
package foo
|
package foo
|
||||||
|
|
||||||
object Bar {
|
object Bar {
|
||||||
val value = "foobar";
|
val value = "foobar"
|
||||||
@JvmStatic get() {
|
@JvmStatic get() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -17,7 +17,7 @@ public class Foo {
|
|||||||
package foo
|
package foo
|
||||||
|
|
||||||
object Bar {
|
object Bar {
|
||||||
var variable: String;
|
var variable: String
|
||||||
@JvmStatic set(value) {
|
@JvmStatic set(value) {
|
||||||
field = value
|
field = value
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
class aClass(){
|
class aClass(){
|
||||||
var myField: Int = 0;
|
var myField: Int = 0
|
||||||
set(value){
|
set(value){
|
||||||
fi<caret>eld=value
|
fi<caret>eld=value
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
class aClass(){
|
class aClass(){
|
||||||
var anotherRenamed: Int = 0;
|
var anotherRenamed: Int = 0
|
||||||
set(value){
|
set(value){
|
||||||
field=value
|
field=value
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user