Introduced utility method.
This commit is contained in:
@@ -730,7 +730,12 @@ public class AsmUtil {
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public static Type asmTypeByFqNameWithoutInnerClasses(@NotNull FqName fqName) {
|
public static Type asmTypeByFqNameWithoutInnerClasses(@NotNull FqName fqName) {
|
||||||
return Type.getObjectType(JvmClassName.byFqNameWithoutInnerClasses(fqName).getInternalName());
|
return Type.getObjectType(internalNameByFqNameWithoutInnerClasses(fqName));
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
public static String internalNameByFqNameWithoutInnerClasses(@NotNull FqName fqName) {
|
||||||
|
return JvmClassName.byFqNameWithoutInnerClasses(fqName).getInternalName();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void writeOuterClassAndEnclosingMethod(
|
public static void writeOuterClassAndEnclosingMethod(
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ public class PackageCodegen {
|
|||||||
JetFile sourceFile = files.size() == 1 && previouslyCompiledCallables.isEmpty()
|
JetFile sourceFile = files.size() == 1 && previouslyCompiledCallables.isEmpty()
|
||||||
? files.iterator().next() : null;
|
? files.iterator().next() : null;
|
||||||
|
|
||||||
String className = JvmClassName.byFqNameWithoutInnerClasses(getPackageClassFqName(fqName)).getInternalName();
|
String className = AsmUtil.internalNameByFqNameWithoutInnerClasses(getPackageClassFqName(fqName));
|
||||||
ClassBuilder v = PackageCodegen.this.state.getFactory().newVisitor(Type.getObjectType(className), files);
|
ClassBuilder v = PackageCodegen.this.state.getFactory().newVisitor(Type.getObjectType(className), files);
|
||||||
v.defineClass(sourceFile, V1_6,
|
v.defineClass(sourceFile, V1_6,
|
||||||
ACC_PUBLIC | ACC_FINAL,
|
ACC_PUBLIC | ACC_FINAL,
|
||||||
@@ -371,6 +371,6 @@ public class PackageCodegen {
|
|||||||
public static String getPackagePartInternalName(@NotNull DeserializedCallableMemberDescriptor callable) {
|
public static String getPackagePartInternalName(@NotNull DeserializedCallableMemberDescriptor callable) {
|
||||||
FqName packageFqName = ((PackageFragmentDescriptor) callable.getContainingDeclaration()).getFqName();
|
FqName packageFqName = ((PackageFragmentDescriptor) callable.getContainingDeclaration()).getFqName();
|
||||||
FqName packagePartFqName = packageFqName.child(BaseDescriptorDeserializer.getPackagePartClassName(callable));
|
FqName packagePartFqName = packageFqName.child(BaseDescriptorDeserializer.getPackagePartClassName(callable));
|
||||||
return JvmClassName.byFqNameWithoutInnerClasses(packagePartFqName).getInternalName();
|
return AsmUtil.internalNameByFqNameWithoutInnerClasses(packagePartFqName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,7 +24,6 @@ import org.jetbrains.jet.lang.descriptors.FunctionDescriptor;
|
|||||||
import org.jetbrains.jet.lang.descriptors.SimpleFunctionDescriptor;
|
import org.jetbrains.jet.lang.descriptors.SimpleFunctionDescriptor;
|
||||||
import org.jetbrains.jet.lang.psi.JetFile;
|
import org.jetbrains.jet.lang.psi.JetFile;
|
||||||
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
|
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
|
||||||
import org.jetbrains.jet.lang.resolve.java.JvmClassName;
|
|
||||||
import org.jetbrains.jet.lang.resolve.java.PackageClassUtils;
|
import org.jetbrains.jet.lang.resolve.java.PackageClassUtils;
|
||||||
import org.jetbrains.jet.lang.resolve.java.descriptor.JavaClassDescriptor;
|
import org.jetbrains.jet.lang.resolve.java.descriptor.JavaClassDescriptor;
|
||||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||||
@@ -133,7 +132,7 @@ public class SamWrapperCodegen {
|
|||||||
@NotNull
|
@NotNull
|
||||||
private String getWrapperName(@NotNull JetFile containingFile) {
|
private String getWrapperName(@NotNull JetFile containingFile) {
|
||||||
FqName packageClassFqName = PackageClassUtils.getPackageClassFqName(containingFile.getPackageFqName());
|
FqName packageClassFqName = PackageClassUtils.getPackageClassFqName(containingFile.getPackageFqName());
|
||||||
String packageInternalName = JvmClassName.byFqNameWithoutInnerClasses(packageClassFqName).getInternalName();
|
String packageInternalName = AsmUtil.internalNameByFqNameWithoutInnerClasses(packageClassFqName);
|
||||||
JavaClassDescriptor descriptor = samType.getJavaClassDescriptor();
|
JavaClassDescriptor descriptor = samType.getJavaClassDescriptor();
|
||||||
return packageInternalName + "$sam$" + descriptor.getName().asString() + "$" +
|
return packageInternalName + "$sam$" + descriptor.getName().asString() + "$" +
|
||||||
Integer.toHexString(
|
Integer.toHexString(
|
||||||
|
|||||||
+2
-2
@@ -22,6 +22,7 @@ import com.intellij.psi.tree.TokenSet;
|
|||||||
import com.intellij.util.containers.Stack;
|
import com.intellij.util.containers.Stack;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
import org.jetbrains.jet.codegen.AsmUtil;
|
||||||
import org.jetbrains.jet.codegen.JvmFunctionImplTypes;
|
import org.jetbrains.jet.codegen.JvmFunctionImplTypes;
|
||||||
import org.jetbrains.jet.codegen.SamCodegenUtil;
|
import org.jetbrains.jet.codegen.SamCodegenUtil;
|
||||||
import org.jetbrains.jet.codegen.SamType;
|
import org.jetbrains.jet.codegen.SamType;
|
||||||
@@ -36,7 +37,6 @@ import org.jetbrains.jet.lang.resolve.calls.model.ExpressionValueArgument;
|
|||||||
import org.jetbrains.jet.lang.resolve.calls.model.ResolvedCall;
|
import org.jetbrains.jet.lang.resolve.calls.model.ResolvedCall;
|
||||||
import org.jetbrains.jet.lang.resolve.calls.model.ResolvedValueArgument;
|
import org.jetbrains.jet.lang.resolve.calls.model.ResolvedValueArgument;
|
||||||
import org.jetbrains.jet.lang.resolve.java.JvmAbi;
|
import org.jetbrains.jet.lang.resolve.java.JvmAbi;
|
||||||
import org.jetbrains.jet.lang.resolve.java.JvmClassName;
|
|
||||||
import org.jetbrains.jet.lang.resolve.java.PackageClassUtils;
|
import org.jetbrains.jet.lang.resolve.java.PackageClassUtils;
|
||||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||||
import org.jetbrains.jet.lang.resolve.name.Name;
|
import org.jetbrains.jet.lang.resolve.name.Name;
|
||||||
@@ -148,7 +148,7 @@ class CodegenAnnotatingVisitor extends JetVisitorVoid {
|
|||||||
nameStack.push(asmTypeForScriptPsi(bindingContext, file.getScript()).getInternalName());
|
nameStack.push(asmTypeForScriptPsi(bindingContext, file.getScript()).getInternalName());
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
nameStack.push(JvmClassName.byFqNameWithoutInnerClasses(file.getPackageFqName()).getInternalName());
|
nameStack.push(AsmUtil.internalNameByFqNameWithoutInnerClasses(file.getPackageFqName()));
|
||||||
}
|
}
|
||||||
file.acceptChildren(this);
|
file.acceptChildren(this);
|
||||||
nameStack.pop();
|
nameStack.pop();
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ import com.intellij.psi.PsiElement;
|
|||||||
import com.intellij.psi.util.PsiTreeUtil;
|
import com.intellij.psi.util.PsiTreeUtil;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
import org.jetbrains.jet.codegen.AsmUtil;
|
||||||
import org.jetbrains.jet.codegen.ClassBuilderFactories;
|
import org.jetbrains.jet.codegen.ClassBuilderFactories;
|
||||||
import org.jetbrains.jet.codegen.PackageCodegen;
|
import org.jetbrains.jet.codegen.PackageCodegen;
|
||||||
import org.jetbrains.jet.codegen.state.GenerationState;
|
import org.jetbrains.jet.codegen.state.GenerationState;
|
||||||
@@ -86,12 +87,12 @@ public final class PsiCodegenPredictor {
|
|||||||
FqName packageFqName = declaration.getContainingJetFile().getPackageFqName();
|
FqName packageFqName = declaration.getContainingJetFile().getPackageFqName();
|
||||||
|
|
||||||
if (declaration instanceof JetNamedFunction) {
|
if (declaration instanceof JetNamedFunction) {
|
||||||
JvmClassName packageClass = JvmClassName.byFqNameWithoutInnerClasses(getPackageClassFqName(packageFqName));
|
FqName packageClass = getPackageClassFqName(packageFqName);
|
||||||
Name name = ((JetNamedFunction) declaration).getNameAsName();
|
Name name = ((JetNamedFunction) declaration).getNameAsName();
|
||||||
return name == null ? null : packageClass.getInternalName() + "$" + name.asString();
|
return name == null ? null : AsmUtil.internalNameByFqNameWithoutInnerClasses(packageClass) + "$" + name.asString();
|
||||||
}
|
}
|
||||||
|
|
||||||
parentInternalName = JvmClassName.byFqNameWithoutInnerClasses(packageFqName).getInternalName();
|
parentInternalName = AsmUtil.internalNameByFqNameWithoutInnerClasses(packageFqName);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (declaration instanceof JetClassObject) {
|
if (declaration instanceof JetClassObject) {
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ import org.jetbrains.jet.descriptors.serialization.NameResolver
|
|||||||
import org.jetbrains.jet.descriptors.serialization.JavaProtoBuf
|
import org.jetbrains.jet.descriptors.serialization.JavaProtoBuf
|
||||||
import org.jetbrains.jet.lang.descriptors.PackageFragmentDescriptor
|
import org.jetbrains.jet.lang.descriptors.PackageFragmentDescriptor
|
||||||
import org.jetbrains.jet.lang.resolve.java.JvmClassName
|
import org.jetbrains.jet.lang.resolve.java.JvmClassName
|
||||||
|
import org.jetbrains.jet.codegen.AsmUtil
|
||||||
|
|
||||||
public class CliSourcesMemberFilter(environment: JetCoreEnvironment): MemberFilter {
|
public class CliSourcesMemberFilter(environment: JetCoreEnvironment): MemberFilter {
|
||||||
val packagePartClassNames = environment.getSourceFiles().map { getPackagePartInternalName(it) }.toSet()
|
val packagePartClassNames = environment.getSourceFiles().map { getPackagePartInternalName(it) }.toSet()
|
||||||
@@ -31,7 +32,7 @@ public class CliSourcesMemberFilter(environment: JetCoreEnvironment): MemberFilt
|
|||||||
if (member.hasExtension(JavaProtoBuf.implClassName)) {
|
if (member.hasExtension(JavaProtoBuf.implClassName)) {
|
||||||
val shortName = nameResolver.getName(member.getExtension(JavaProtoBuf.implClassName)!!)
|
val shortName = nameResolver.getName(member.getExtension(JavaProtoBuf.implClassName)!!)
|
||||||
val fqName = container.fqName.child(shortName)
|
val fqName = container.fqName.child(shortName)
|
||||||
val internalName = JvmClassName.byFqNameWithoutInnerClasses(fqName).getInternalName()
|
val internalName = AsmUtil.internalNameByFqNameWithoutInnerClasses(fqName)
|
||||||
return internalName !in packagePartClassNames
|
return internalName !in packagePartClassNames
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
|
|||||||
Reference in New Issue
Block a user