From 36a7f31358c3b0b920b7e32d4e138abdeca3a151 Mon Sep 17 00:00:00 2001 From: Denis Zharkov Date: Thu, 7 Jul 2016 13:57:29 +0300 Subject: [PATCH] Minor. Extract parsePropertyDelegateOrAssignment --- .../kotlin/parsing/KotlinParsing.java | 35 ++++++++----------- 1 file changed, 15 insertions(+), 20 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/parsing/KotlinParsing.java b/compiler/frontend/src/org/jetbrains/kotlin/parsing/KotlinParsing.java index 4ff14baa973..6a48189cf5a 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/parsing/KotlinParsing.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/parsing/KotlinParsing.java @@ -1252,26 +1252,11 @@ public class KotlinParsing extends AbstractKotlinParsing { parseTypeConstraintsGuarded(typeParametersDeclared); - if (local) { - if (at(BY_KEYWORD)) { - parsePropertyDelegate(); - } - else if (at(EQ)) { - advance(); // EQ - myExpressionParsing.parseExpression(); - // "val a = 1; b" must not be an infix call of b on "val ...;" - } - } - else { - if (at(BY_KEYWORD)) { - parsePropertyDelegate(); - consumeIf(SEMICOLON); - } - else if (at(EQ)) { - advance(); // EQ - myExpressionParsing.parseExpression(); - consumeIf(SEMICOLON); - } + parsePropertyDelegateOrAssignment(); + if (!local) { + // 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 ...;" + consumeIf(SEMICOLON); AccessorKind accessorKind = parsePropertyGetterOrSetter(null); if (accessorKind != null) { @@ -1291,6 +1276,16 @@ public class KotlinParsing extends AbstractKotlinParsing { return multiDeclaration ? DESTRUCTURING_DECLARATION : PROPERTY; } + private void parsePropertyDelegateOrAssignment() { + if (at(BY_KEYWORD)) { + parsePropertyDelegate(); + } + else if (at(EQ)) { + advance(); // EQ + myExpressionParsing.parseExpression(); + } + } + /* * propertyDelegate * : "by" expression