diff --git a/compiler/frontend/src/org/jetbrains/kotlin/psi/KtExpressionImpl.kt b/compiler/frontend/src/org/jetbrains/kotlin/psi/KtExpressionImpl.kt index adf272fcf40..15a5ee42b43 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/psi/KtExpressionImpl.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/psi/KtExpressionImpl.kt @@ -1,17 +1,6 @@ /* - * Copyright 2010-2015 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. + * Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license + * that can be found in the license/LICENSE.txt file. */ package org.jetbrains.kotlin.psi @@ -45,7 +34,7 @@ abstract class KtExpressionImpl(node: ASTNode) : KtElementImpl(node), KtExpressi } } is KtSimpleNameStringTemplateEntry -> { - if (newElement !is KtSimpleNameExpression) { + if (newElement !is KtSimpleNameExpression && !newElement.isThisWithoutLabel()) { val newEntry = parent.replace(KtPsiFactory(expression).createBlockStringTemplateEntry(newElement)) as KtBlockStringTemplateEntry return newEntry.expression!! } @@ -57,3 +46,5 @@ abstract class KtExpressionImpl(node: ASTNode) : KtElementImpl(node), KtExpressi } } } + +private fun PsiElement.isThisWithoutLabel() = this is KtThisExpression && getLabelName() == null