Override getText() in light classes to prevent decompiler errors on Kotlin sources

Fixes EA-58277
This commit is contained in:
Alexander Udalov
2014-09-09 14:17:52 +04:00
parent 48de3b706d
commit d4b1797646
4 changed files with 15 additions and 4 deletions
@@ -19,7 +19,7 @@ package org.jetbrains.jet.lang.resolve.java.jetAsJava
import com.intellij.psi.PsiElement
import org.jetbrains.jet.lang.psi.JetDeclaration
public trait KotlinLightElement<T: JetDeclaration, D: PsiElement> {
public trait KotlinLightElement<T : JetDeclaration, D : PsiElement> {
public val origin: T?
public val delegate: D
}
@@ -83,4 +83,9 @@ public class FakeLightClassForFileOfPackage extends AbstractLightClass implement
public PsiElement copy() {
return new FakeLightClassForFileOfPackage(getManager(), delegate, file);
}
@Override
public String getText() {
return null;
}
}
@@ -17,11 +17,10 @@
package org.jetbrains.jet.asJava;
import com.intellij.psi.PsiClass;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.lang.resolve.name.FqName;
import org.jetbrains.jet.lang.resolve.java.jetAsJava.KotlinLightElement
import org.jetbrains.jet.lang.psi.JetClassOrObject
public trait KotlinLightClass: PsiClass, KotlinLightElement<JetClassOrObject, PsiClass> {
public trait KotlinLightClass : PsiClass, KotlinLightElement<JetClassOrObject, PsiClass> {
val fqName: FqName
}
@@ -24,13 +24,14 @@ import com.intellij.psi.PsiMethod;
import com.intellij.psi.impl.PsiClassImplUtil;
import com.intellij.psi.impl.light.AbstractLightClass;
import com.intellij.psi.impl.light.LightField;
import org.jetbrains.jet.asJava.light.KotlinLightField;
import com.intellij.psi.impl.light.LightMethod;
import com.intellij.psi.impl.source.ClassInnerStuffCache;
import com.intellij.psi.impl.source.PsiExtensibleClass;
import com.intellij.util.Function;
import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.asJava.light.KotlinLightField;
import org.jetbrains.jet.lang.psi.JetClassOrObject;
import org.jetbrains.jet.lang.psi.JetDeclaration;
import org.jetbrains.jet.lang.psi.JetProperty;
@@ -132,4 +133,10 @@ public abstract class KotlinWrappingLightClass extends AbstractLightClass implem
}
});
}
@Override
public String getText() {
JetClassOrObject origin = getOrigin();
return origin == null ? null : origin.getText();
}
}