Fix codegen predictor for properties and property accessors

This commit is contained in:
Pavel V. Talanov
2015-12-28 16:47:30 +03:00
parent 4f5f56e4a5
commit 06e829936e
@@ -61,6 +61,9 @@ public final class PsiCodegenPredictor {
// TODO: Method won't work for declarations inside companion objects // TODO: Method won't work for declarations inside companion objects
// TODO: Method won't give correct class name for traits implementations // 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); KtDeclaration parentDeclaration = KtStubbedPsiUtil.getContainingDeclaration(declaration);
String parentInternalName; String parentInternalName;
@@ -73,8 +76,8 @@ public final class PsiCodegenPredictor {
else { else {
KtFile containingFile = declaration.getContainingKtFile(); KtFile containingFile = declaration.getContainingKtFile();
if (declaration instanceof KtNamedFunction) { if (declaration instanceof KtNamedFunction || declaration instanceof KtProperty) {
Name name = ((KtNamedFunction) declaration).getNameAsName(); Name name = ((KtNamedDeclaration) declaration).getNameAsName();
return name == null ? null : FileClasses.getFileClassInternalName(fileClassesProvider, containingFile) + "$" + name.asString(); return name == null ? null : FileClasses.getFileClassInternalName(fileClassesProvider, containingFile) + "$" + name.asString();
} }