diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/AsmUtil.java b/compiler/backend/src/org/jetbrains/jet/codegen/AsmUtil.java index 74f563e5198..26c40aea5ca 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/AsmUtil.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/AsmUtil.java @@ -33,6 +33,7 @@ import org.jetbrains.jet.lang.resolve.DescriptorUtils; import org.jetbrains.jet.lang.resolve.calls.model.ResolvedCall; import org.jetbrains.jet.lang.resolve.java.*; import org.jetbrains.jet.lang.resolve.java.descriptor.JavaCallableMemberDescriptor; +import org.jetbrains.jet.lang.resolve.kotlin.PackagePartClassUtils; import org.jetbrains.jet.lang.resolve.name.FqName; import org.jetbrains.jet.lang.types.JetType; import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns; @@ -773,7 +774,7 @@ public class AsmUtil { JetFile containingFile = BindingContextUtils.getContainingFile(typeMapper.getBindingContext(), originalDescriptor); assert containingFile != null : "Containing file should be present for " + classDescriptor; - return PackageCodegen.getPackagePartInternalName(containingFile); + return PackagePartClassUtils.getPackagePartInternalName(containingFile); } } diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java index 91aa59a8906..78e9637bc30 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java @@ -51,6 +51,7 @@ import org.jetbrains.jet.lang.resolve.java.jvmSignature.JvmClassSignature; import org.jetbrains.jet.lang.resolve.java.jvmSignature.JvmMethodParameterKind; import org.jetbrains.jet.lang.resolve.java.jvmSignature.JvmMethodParameterSignature; import org.jetbrains.jet.lang.resolve.java.jvmSignature.JvmMethodSignature; +import org.jetbrains.jet.lang.resolve.kotlin.PackagePartClassUtils; import org.jetbrains.jet.lang.resolve.name.Name; import org.jetbrains.jet.lang.types.*; import org.jetbrains.jet.lang.types.checker.JetTypeChecker; diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/JvmCodegenUtil.java b/compiler/backend/src/org/jetbrains/jet/codegen/JvmCodegenUtil.java index d9c6da9c741..98dea4fa31b 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/JvmCodegenUtil.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/JvmCodegenUtil.java @@ -244,13 +244,6 @@ public class JvmCodegenUtil { return (ImplementationBodyCodegen) classBodyCodegen.getParentCodegen(); } - static int getPathHashCode(@NotNull VirtualFile file) { - // Conversion to system-dependent name seems to be unnecessary, but it's hard to check now: - // it was introduced when fixing KT-2839, which appeared again (KT-3639). - // If you try to remove it, run tests on Windows. - return FileUtil.toSystemDependentName(file.getPath()).hashCode(); - } - @Nullable public static ClassDescriptor getExpectedThisObjectForConstructorCall( @NotNull ConstructorDescriptor descriptor, diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/PackageCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/PackageCodegen.java index ada709698a6..c509c772d63 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/PackageCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/PackageCodegen.java @@ -20,10 +20,8 @@ import com.google.common.collect.Lists; import com.google.common.collect.Ordering; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.progress.ProcessCanceledException; -import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.util.ArrayUtil; -import com.intellij.util.PathUtil; import com.intellij.util.SmartList; import kotlin.Function0; import org.jetbrains.annotations.NotNull; @@ -53,9 +51,8 @@ import org.jetbrains.jet.lang.resolve.java.JvmAnnotationNames; import org.jetbrains.jet.lang.resolve.java.JvmClassName; import org.jetbrains.jet.lang.resolve.java.jvmSignature.JvmMethodSignature; import org.jetbrains.jet.lang.resolve.java.lazy.descriptors.LazyJavaPackageFragmentScope; -import org.jetbrains.jet.lang.resolve.kotlin.BaseDescriptorDeserializer; +import org.jetbrains.jet.lang.resolve.kotlin.PackagePartClassUtils; import org.jetbrains.jet.lang.resolve.name.FqName; -import org.jetbrains.jet.lang.resolve.name.Name; import org.jetbrains.org.objectweb.asm.AnnotationVisitor; import org.jetbrains.org.objectweb.asm.MethodVisitor; import org.jetbrains.org.objectweb.asm.Type; @@ -63,7 +60,6 @@ import org.jetbrains.org.objectweb.asm.Type; import java.util.*; import static org.jetbrains.jet.codegen.AsmUtil.asmDescByFqNameWithoutInnerClasses; -import static org.jetbrains.jet.codegen.AsmUtil.asmTypeByFqNameWithoutInnerClasses; import static org.jetbrains.jet.descriptors.serialization.NameSerializationUtil.createNameResolver; import static org.jetbrains.jet.lang.resolve.java.PackageClassUtils.getPackageClassFqName; import static org.jetbrains.org.objectweb.asm.Opcodes.*; @@ -144,7 +140,7 @@ public class PackageCodegen { @Override public void run() { FieldOwnerContext context = CodegenContext.STATIC.intoPackageFacade( - Type.getObjectType(getPackagePartInternalName(member)), + AsmUtil.asmTypeByFqNameWithoutInnerClasses(PackagePartClassUtils.getPackagePartFqName(member)), compiledPackageFragment ); @@ -249,7 +245,7 @@ public class PackageCodegen { @Nullable private ClassBuilder generate(@NotNull JetFile file, @NotNull Map generateCallableMemberTasks) { boolean generatePackagePart = false; - Type packagePartType = getPackagePartType(getPackageClassFqName(packageFragment.getFqName()), file.getVirtualFile()); + Type packagePartType = PackagePartClassUtils.getPackagePartType(file); PackageContext packagePartContext = CodegenContext.STATIC.intoPackagePart(packageFragment, packagePartType); for (JetDeclaration declaration : file.getDeclarations()) { @@ -335,8 +331,8 @@ public class PackageCodegen { } public void generateClassOrObject(@NotNull JetClassOrObject classOrObject) { - JetFile file = classOrObject.getContainingJetFile(); - Type packagePartType = getPackagePartType(getPackageClassFqName(packageFragment.getFqName()), file.getVirtualFile()); + JetFile file = (JetFile) classOrObject.getContainingFile(); + Type packagePartType = PackagePartClassUtils.getPackagePartType(file); CodegenContext context = CodegenContext.STATIC.intoPackagePart(packageFragment, packagePartType); MemberCodegen.genClassOrObject(context, classOrObject, state, null); } @@ -344,33 +340,4 @@ public class PackageCodegen { public void done() { v.done(); } - - @NotNull - public static Type getPackagePartType(@NotNull FqName facadeFqName, @NotNull VirtualFile file) { - String fileName = FileUtil.getNameWithoutExtension(PathUtil.getFileName(file.getName())); - - // path hashCode to prevent same name / different path collision - String srcName = facadeFqName.shortName().asString() + "-" + replaceSpecialSymbols(fileName) + "-" + Integer.toHexString( - JvmCodegenUtil.getPathHashCode(file)); - - return asmTypeByFqNameWithoutInnerClasses(facadeFqName.parent().child(Name.identifier(srcName))); - } - - @NotNull - private static String replaceSpecialSymbols(@NotNull String str) { - return str.replace('.', '_'); - } - - @NotNull - public static String getPackagePartInternalName(@NotNull JetFile file) { - FqName packageFqName = file.getPackageFqName(); - return getPackagePartType(getPackageClassFqName(packageFqName), file.getVirtualFile()).getInternalName(); - } - - @NotNull - public static String getPackagePartInternalName(@NotNull DeserializedCallableMemberDescriptor callable) { - FqName packageFqName = ((PackageFragmentDescriptor) callable.getContainingDeclaration()).getFqName(); - FqName packagePartFqName = packageFqName.child(BaseDescriptorDeserializer.getPackagePartClassName(callable)); - return AsmUtil.internalNameByFqNameWithoutInnerClasses(packagePartFqName); - } } diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/SamWrapperCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/SamWrapperCodegen.java index 5b4f940238e..fd82d903578 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/SamWrapperCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/SamWrapperCodegen.java @@ -17,6 +17,10 @@ package org.jetbrains.jet.codegen; import org.jetbrains.annotations.NotNull; +import org.jetbrains.jet.lang.resolve.kotlin.PackagePartClassUtils; +import org.jetbrains.org.objectweb.asm.MethodVisitor; +import org.jetbrains.org.objectweb.asm.Type; +import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter; import org.jetbrains.jet.codegen.context.CodegenContext; import org.jetbrains.jet.codegen.state.GenerationState; import org.jetbrains.jet.codegen.state.JetTypeMapper; @@ -29,9 +33,6 @@ import org.jetbrains.jet.lang.resolve.java.descriptor.JavaClassDescriptor; import org.jetbrains.jet.lang.resolve.name.FqName; import org.jetbrains.jet.lang.resolve.name.Name; import org.jetbrains.jet.lang.types.JetType; -import org.jetbrains.org.objectweb.asm.MethodVisitor; -import org.jetbrains.org.objectweb.asm.Type; -import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter; import static org.jetbrains.jet.codegen.AsmUtil.NO_FLAG_PACKAGE_PRIVATE; import static org.jetbrains.jet.codegen.AsmUtil.writeKotlinSyntheticClassAnnotation; @@ -136,7 +137,7 @@ public class SamWrapperCodegen { JavaClassDescriptor descriptor = samType.getJavaClassDescriptor(); return packageInternalName + "$sam$" + descriptor.getName().asString() + "$" + Integer.toHexString( - JvmCodegenUtil.getPathHashCode(containingFile.getVirtualFile()) * 31 + + PackagePartClassUtils.getPathHashCode(containingFile.getVirtualFile()) * 31 + DescriptorUtils.getFqNameSafe(descriptor).hashCode() ); } diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/binding/PsiCodegenPredictor.java b/compiler/backend/src/org/jetbrains/jet/codegen/binding/PsiCodegenPredictor.java index 757a1637bac..2657308862a 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/binding/PsiCodegenPredictor.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/binding/PsiCodegenPredictor.java @@ -23,7 +23,6 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.codegen.AsmUtil; import org.jetbrains.jet.codegen.ClassBuilderFactories; -import org.jetbrains.jet.codegen.PackageCodegen; import org.jetbrains.jet.codegen.state.GenerationState; import org.jetbrains.jet.lang.descriptors.ClassDescriptor; import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor; @@ -34,6 +33,7 @@ import org.jetbrains.jet.lang.resolve.BindingContextUtils; import org.jetbrains.jet.lang.resolve.BindingTrace; import org.jetbrains.jet.lang.resolve.java.JvmAbi; import org.jetbrains.jet.lang.resolve.java.JvmClassName; +import org.jetbrains.jet.lang.resolve.kotlin.PackagePartClassUtils; import org.jetbrains.jet.lang.resolve.name.FqName; import org.jetbrains.jet.lang.resolve.name.Name; import org.jetbrains.org.objectweb.asm.Type; @@ -135,7 +135,7 @@ public final class PsiCodegenPredictor { @Nullable public static JetFile getFileForPackagePartName(@NotNull Collection allPackageFiles, @NotNull JvmClassName className) { for (JetFile file : allPackageFiles) { - String internalName = PackageCodegen.getPackagePartInternalName(file); + String internalName = PackagePartClassUtils.getPackagePartInternalName(file); JvmClassName jvmClassName = JvmClassName.byInternalName(internalName); if (jvmClassName.equals(className)) { return file; diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/inline/InlineCodegenUtil.java b/compiler/backend/src/org/jetbrains/jet/codegen/inline/InlineCodegenUtil.java index cc9bd7f65fd..4cbaceed56b 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/inline/InlineCodegenUtil.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/inline/InlineCodegenUtil.java @@ -23,7 +23,6 @@ import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.jetbrains.jet.codegen.PackageCodegen; import org.jetbrains.jet.codegen.binding.CodegenBinding; import org.jetbrains.jet.codegen.context.CodegenContext; import org.jetbrains.jet.codegen.context.PackageContext; @@ -33,11 +32,13 @@ import org.jetbrains.jet.descriptors.serialization.JavaProtoBuf; import org.jetbrains.jet.descriptors.serialization.ProtoBuf; import org.jetbrains.jet.descriptors.serialization.descriptors.DeserializedSimpleFunctionDescriptor; import org.jetbrains.jet.lang.descriptors.*; +import org.jetbrains.jet.lang.psi.JetFile; import org.jetbrains.jet.lang.resolve.BindingContextUtils; import org.jetbrains.jet.lang.resolve.DescriptorUtils; import org.jetbrains.jet.lang.resolve.java.JvmAbi; import org.jetbrains.jet.lang.resolve.java.PackageClassUtils; import org.jetbrains.jet.lang.resolve.kotlin.DeserializedResolverUtils; +import org.jetbrains.jet.lang.resolve.kotlin.PackagePartClassUtils; import org.jetbrains.jet.lang.resolve.kotlin.VirtualFileFinder; import org.jetbrains.jet.lang.resolve.name.FqName; import org.jetbrains.jet.lang.resolve.name.Name; @@ -154,9 +155,7 @@ public class InlineCodegenUtil { assert codegenContext instanceof PackageContext : "Expected package context but " + codegenContext; packagePartType = ((PackageContext) codegenContext).getPackagePartType(); } else { - packagePartType = - PackageCodegen.getPackagePartType(PackageClassUtils.getPackageClassFqName(getFqName(currentDescriptor).toSafe()), - file.getVirtualFile()); + packagePartType = PackagePartClassUtils.getPackagePartType((JetFile) file); } if (packagePartType == null) { diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/state/JetTypeMapper.java b/compiler/backend/src/org/jetbrains/jet/codegen/state/JetTypeMapper.java index 71fca18edd0..a0235f4e309 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/state/JetTypeMapper.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/state/JetTypeMapper.java @@ -46,6 +46,7 @@ import org.jetbrains.jet.lang.resolve.java.jvmSignature.JvmMethodParameterKind; import org.jetbrains.jet.lang.resolve.java.jvmSignature.JvmMethodParameterSignature; import org.jetbrains.jet.lang.resolve.java.jvmSignature.JvmMethodSignature; import org.jetbrains.jet.lang.resolve.java.mapping.KotlinToJavaTypesMap; +import org.jetbrains.jet.lang.resolve.kotlin.PackagePartClassUtils; import org.jetbrains.jet.lang.resolve.name.FqName; import org.jetbrains.jet.lang.resolve.name.FqNameUnsafe; import org.jetbrains.jet.lang.types.*; @@ -131,13 +132,14 @@ public class JetTypeMapper { if (insideModule) { JetFile file = BindingContextUtils.getContainingFile(bindingContext, descriptor); if (file != null) { - return PackageCodegen.getPackagePartInternalName(file); + return PackagePartClassUtils.getPackagePartInternalName(file); } if (descriptor instanceof DeserializedCallableMemberDescriptor && IncrementalCompilation.ENABLED) { // // TODO calls from other modules/libraries should use facade: KT-4590 - return PackageCodegen.getPackagePartInternalName((DeserializedCallableMemberDescriptor) descriptor); + FqName packagePartFqName = PackagePartClassUtils.getPackagePartFqName((DeserializedCallableMemberDescriptor) descriptor); + return AsmUtil.internalNameByFqNameWithoutInnerClasses(packagePartFqName); } } diff --git a/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/CliSourcesMemberFilter.kt b/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/CliSourcesMemberFilter.kt index 017e50e7636..55bf6b25a7e 100644 --- a/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/CliSourcesMemberFilter.kt +++ b/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/CliSourcesMemberFilter.kt @@ -18,15 +18,16 @@ package org.jetbrains.jet.cli.jvm.compiler import org.jetbrains.jet.descriptors.serialization.descriptors.MemberFilter import org.jetbrains.jet.descriptors.serialization.ProtoBuf -import org.jetbrains.jet.codegen.PackageCodegen.getPackagePartInternalName +import org.jetbrains.jet.lang.resolve.kotlin.PackagePartClassUtils.getPackagePartInternalName import org.jetbrains.jet.descriptors.serialization.NameResolver import org.jetbrains.jet.descriptors.serialization.JavaProtoBuf import org.jetbrains.jet.lang.descriptors.PackageFragmentDescriptor import org.jetbrains.jet.lang.resolve.java.JvmClassName import org.jetbrains.jet.codegen.AsmUtil +import org.jetbrains.jet.lang.resolve.kotlin.PackagePartClassUtils public class CliSourcesMemberFilter(environment: JetCoreEnvironment): MemberFilter { - val packagePartClassNames = environment.getSourceFiles().map { getPackagePartInternalName(it) }.toSet() + val packagePartClassNames = environment.getSourceFiles().map { PackagePartClassUtils.getPackagePartInternalName(it) }.toSet() override fun acceptPackagePartClass(container: PackageFragmentDescriptor, member: ProtoBuf.Callable, nameResolver: NameResolver): Boolean { if (member.hasExtension(JavaProtoBuf.implClassName)) { diff --git a/compiler/frontend.java/frontend.java.iml b/compiler/frontend.java/frontend.java.iml index 3b8f64ece97..b9d735dcb86 100644 --- a/compiler/frontend.java/frontend.java.iml +++ b/compiler/frontend.java/frontend.java.iml @@ -7,7 +7,7 @@ - + diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/kotlin/PackagePartClassUtils.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/kotlin/PackagePartClassUtils.java new file mode 100644 index 00000000000..4a2b18624f1 --- /dev/null +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/kotlin/PackagePartClassUtils.java @@ -0,0 +1,77 @@ +/* + * Copyright 2010-2014 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. + */ + +package org.jetbrains.jet.lang.resolve.kotlin; + +import com.intellij.openapi.util.io.FileUtil; +import com.intellij.openapi.vfs.VirtualFile; +import com.intellij.util.PathUtil; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.jet.descriptors.serialization.descriptors.DeserializedCallableMemberDescriptor; +import org.jetbrains.jet.lang.descriptors.PackageFragmentDescriptor; +import org.jetbrains.jet.lang.psi.JetFile; +import org.jetbrains.jet.lang.resolve.java.JvmClassName; +import org.jetbrains.jet.lang.resolve.name.FqName; +import org.jetbrains.jet.lang.resolve.name.Name; +import org.jetbrains.org.objectweb.asm.Type; + +import static org.jetbrains.jet.lang.resolve.java.PackageClassUtils.getPackageClassFqName; + +public class PackagePartClassUtils { + public static int getPathHashCode(@NotNull VirtualFile file) { + // Conversion to system-dependent name seems to be unnecessary, but it's hard to check now: + // it was introduced when fixing KT-2839, which appeared again (KT-3639). + // If you try to remove it, run tests on Windows. + return FileUtil.toSystemDependentName(file.getPath()).hashCode(); + } + + @NotNull + private static String replaceSpecialSymbols(@NotNull String str) { + return str.replace('.', '_'); + } + + @NotNull + public static FqName getPackagePartFqName(@NotNull FqName facadeFqName, @NotNull VirtualFile file) { + String fileName = FileUtil.getNameWithoutExtension(PathUtil.getFileName(file.getName())); + + // path hashCode to prevent same name / different path collision + String srcName = facadeFqName.shortName().asString() + "-" + replaceSpecialSymbols(fileName) + "-" + Integer.toHexString( + getPathHashCode(file)); + + return facadeFqName.parent().child(Name.identifier(srcName)); + } + + @NotNull + public static FqName getPackagePartFqName(@NotNull JetFile file) { + return getPackagePartFqName(getPackageClassFqName(file.getPackageFqName()), file.getVirtualFile()); + } + + @NotNull + public static Type getPackagePartType(@NotNull JetFile file) { + return Type.getObjectType(getPackagePartInternalName(file)); + } + + @NotNull + public static String getPackagePartInternalName(@NotNull JetFile file) { + return JvmClassName.byFqNameWithoutInnerClasses(getPackagePartFqName(file)).getInternalName(); + } + + @NotNull + public static FqName getPackagePartFqName(@NotNull DeserializedCallableMemberDescriptor callable) { + FqName packageFqName = ((PackageFragmentDescriptor) callable.getContainingDeclaration()).getFqName(); + return packageFqName.child(BaseDescriptorDeserializer.getPackagePartClassName(callable)); + } +} diff --git a/compiler/tests/org/jetbrains/jet/codegen/AnnotationGenTest.java b/compiler/tests/org/jetbrains/jet/codegen/AnnotationGenTest.java index 039c371a47a..0ec949de17f 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/AnnotationGenTest.java +++ b/compiler/tests/org/jetbrains/jet/codegen/AnnotationGenTest.java @@ -21,6 +21,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.ConfigurationKind; import org.jetbrains.jet.lang.resolve.java.PackageClassUtils; +import org.jetbrains.jet.lang.resolve.kotlin.PackagePartClassUtils; import java.lang.annotation.*; import java.lang.reflect.*; @@ -43,7 +44,7 @@ public class AnnotationGenTest extends CodegenTestCase { } private Class getPackageSrcClass(@NotNull ClassLoader loader) throws ClassNotFoundException { - return loader.loadClass(PackageCodegen.getPackagePartInternalName(myFiles.getPsiFile())); + return loader.loadClass(PackagePartClassUtils.getPackagePartInternalName(myFiles.getPsiFile())); } public void testVolatileProperty() throws Exception { diff --git a/compiler/tests/org/jetbrains/jet/codegen/CodegenTestCase.java b/compiler/tests/org/jetbrains/jet/codegen/CodegenTestCase.java index b46fcf4fc87..09e99df26d8 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/CodegenTestCase.java +++ b/compiler/tests/org/jetbrains/jet/codegen/CodegenTestCase.java @@ -27,6 +27,7 @@ import org.jetbrains.jet.OutputFile; import org.jetbrains.jet.cli.jvm.JVMConfigurationKeys; import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment; import org.jetbrains.jet.codegen.forTestCompile.ForTestCompileRuntime; +import org.jetbrains.jet.lang.resolve.kotlin.PackagePartClassUtils; import org.jetbrains.jet.lang.resolve.name.FqName; import org.jetbrains.jet.utils.UtilsPackage; import org.jetbrains.org.objectweb.asm.ClassReader; @@ -174,7 +175,7 @@ public abstract class CodegenTestCase extends UsefulTestCase { @NotNull protected Class generatePackagePartClass() { - String name = PackageCodegen.getPackagePartInternalName(myFiles.getPsiFile()); + String name = PackagePartClassUtils.getPackagePartInternalName(myFiles.getPsiFile()); return generateClass(name); } diff --git a/idea/src/org/jetbrains/jet/plugin/debugger/JetPositionManager.java b/idea/src/org/jetbrains/jet/plugin/debugger/JetPositionManager.java index d7c493f9cfc..e9550e6a88f 100644 --- a/idea/src/org/jetbrains/jet/plugin/debugger/JetPositionManager.java +++ b/idea/src/org/jetbrains/jet/plugin/debugger/JetPositionManager.java @@ -36,7 +36,6 @@ import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.TestOnly; import org.jetbrains.jet.analyzer.AnalyzeExhaust; import org.jetbrains.jet.codegen.ClassBuilderFactories; -import org.jetbrains.jet.codegen.PackageCodegen; import org.jetbrains.jet.codegen.state.GenerationState; import org.jetbrains.jet.codegen.state.JetTypeMapper; import org.jetbrains.jet.lang.descriptors.ClassDescriptor; @@ -48,6 +47,7 @@ import org.jetbrains.jet.lang.resolve.calls.model.ResolvedValueArgument; import org.jetbrains.jet.lang.resolve.extension.InlineAnalyzerExtension; import org.jetbrains.jet.lang.resolve.java.JetFilesProvider; import org.jetbrains.jet.lang.resolve.java.JvmClassName; +import org.jetbrains.jet.lang.resolve.kotlin.PackagePartClassUtils; import org.jetbrains.jet.lang.resolve.name.FqName; import org.jetbrains.jet.lang.types.lang.InlineStrategy; import org.jetbrains.jet.lang.types.lang.InlineUtil; @@ -170,7 +170,7 @@ public class JetPositionManager implements PositionManager { } } - return PackageCodegen.getPackagePartInternalName(file); + return PackagePartClassUtils.getPackagePartInternalName(file); } diff --git a/jps-plugin/test/org/jetbrains/jet/jps/build/KotlinJpsBuildTest.java b/jps-plugin/test/org/jetbrains/jet/jps/build/KotlinJpsBuildTest.java index ac2b7d2e6c5..e78331d65bf 100644 --- a/jps-plugin/test/org/jetbrains/jet/jps/build/KotlinJpsBuildTest.java +++ b/jps-plugin/test/org/jetbrains/jet/jps/build/KotlinJpsBuildTest.java @@ -22,7 +22,9 @@ import com.intellij.testFramework.LightVirtualFile; import com.intellij.util.Function; import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.NotNull; +import org.jetbrains.jet.codegen.AsmUtil; import org.jetbrains.jet.codegen.PackageCodegen; +import org.jetbrains.jet.lang.resolve.kotlin.PackagePartClassUtils; import org.jetbrains.jet.lang.resolve.name.FqName; import org.jetbrains.jps.builders.BuildResult; import org.jetbrains.jps.model.java.JpsJavaDependencyScope; @@ -368,7 +370,9 @@ public class KotlinJpsBuildTest extends AbstractKotlinJpsBuildTestCase { return super.getPath().substring(1); } }; - return PackageCodegen.getPackagePartType(new FqName(packageClassFqName), fakeVirtualFile).getInternalName(); + + FqName packagePartFqName = PackagePartClassUtils.getPackagePartFqName(new FqName(packageClassFqName), fakeVirtualFile); + return AsmUtil.internalNameByFqNameWithoutInnerClasses(packagePartFqName); } private static enum Operation {