From 06e829936e13b58754d98225ce52dfa392ffebdc Mon Sep 17 00:00:00 2001 From: "Pavel V. Talanov" Date: Mon, 28 Dec 2015 16:47:30 +0300 Subject: [PATCH] Fix codegen predictor for properties and property accessors --- .../kotlin/codegen/binding/PsiCodegenPredictor.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/binding/PsiCodegenPredictor.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/binding/PsiCodegenPredictor.java index 58747e56a1c..80e2797e0a5 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/binding/PsiCodegenPredictor.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/binding/PsiCodegenPredictor.java @@ -61,6 +61,9 @@ public final class PsiCodegenPredictor { // TODO: Method won't work for declarations inside companion objects // TODO: Method won't give correct class name for traits implementations + if (declaration instanceof KtPropertyAccessor) { + return getPredefinedJvmInternalName(((KtPropertyAccessor) declaration).getProperty(), fileClassesProvider); + } KtDeclaration parentDeclaration = KtStubbedPsiUtil.getContainingDeclaration(declaration); String parentInternalName; @@ -73,8 +76,8 @@ public final class PsiCodegenPredictor { else { KtFile containingFile = declaration.getContainingKtFile(); - if (declaration instanceof KtNamedFunction) { - Name name = ((KtNamedFunction) declaration).getNameAsName(); + if (declaration instanceof KtNamedFunction || declaration instanceof KtProperty) { + Name name = ((KtNamedDeclaration) declaration).getNameAsName(); return name == null ? null : FileClasses.getFileClassInternalName(fileClassesProvider, containingFile) + "$" + name.asString(); }