Got rid of "namespace" word in backend.
This commit is contained in:
@@ -44,7 +44,7 @@ import static org.jetbrains.jet.lang.resolve.java.PackageClassUtils.getPackageCl
|
||||
public final class ClassFileFactory extends GenerationStateAware implements OutputFileCollection {
|
||||
@NotNull private ClassBuilderFactory builderFactory;
|
||||
|
||||
private final Map<FqName, NamespaceCodegen> ns2codegen = new HashMap<FqName, NamespaceCodegen>();
|
||||
private final Map<FqName, PackageCodegen> package2codegen = new HashMap<FqName, PackageCodegen>();
|
||||
private final Map<String, ClassBuilderAndSourceFileList> generators = new LinkedHashMap<String, ClassBuilderAndSourceFileList>();
|
||||
private boolean isDone = false;
|
||||
|
||||
@@ -74,7 +74,7 @@ public final class ClassFileFactory extends GenerationStateAware implements Outp
|
||||
private void done() {
|
||||
if (!isDone) {
|
||||
isDone = true;
|
||||
for (NamespaceCodegen codegen : ns2codegen.values()) {
|
||||
for (PackageCodegen codegen : package2codegen.values()) {
|
||||
codegen.done();
|
||||
}
|
||||
}
|
||||
@@ -110,9 +110,9 @@ public final class ClassFileFactory extends GenerationStateAware implements Outp
|
||||
return answer.toString();
|
||||
}
|
||||
|
||||
public NamespaceCodegen forNamespace(final FqName fqName, final Collection<JetFile> files) {
|
||||
public PackageCodegen forPackage(final FqName fqName, final Collection<JetFile> files) {
|
||||
assert !isDone : "Already done!";
|
||||
NamespaceCodegen codegen = ns2codegen.get(fqName);
|
||||
PackageCodegen codegen = package2codegen.get(fqName);
|
||||
if (codegen == null) {
|
||||
ClassBuilderOnDemand onDemand = new ClassBuilderOnDemand() {
|
||||
@NotNull
|
||||
@@ -121,8 +121,8 @@ public final class ClassFileFactory extends GenerationStateAware implements Outp
|
||||
return newVisitor(asmTypeByFqNameWithoutInnerClasses(getPackageClassFqName(fqName)), files);
|
||||
}
|
||||
};
|
||||
codegen = new NamespaceCodegen(onDemand, fqName, state, files);
|
||||
ns2codegen.put(fqName, codegen);
|
||||
codegen = new PackageCodegen(onDemand, fqName, state, files);
|
||||
package2codegen.put(fqName, codegen);
|
||||
}
|
||||
|
||||
return codegen;
|
||||
|
||||
@@ -246,7 +246,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
|
||||
}
|
||||
else {
|
||||
assert isObjectLiteral
|
||||
: "Function descriptor could be null only for object literal in package namespace: " + descriptor.getName();
|
||||
: "Function descriptor could be null only for object literal in package: " + descriptor.getName();
|
||||
v.visitOuterClass(outerClassName, null, null);
|
||||
}
|
||||
}
|
||||
@@ -261,7 +261,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
|
||||
|
||||
JetFile containingFile = BindingContextUtils.getContainingFile(typeMapper.getBindingContext(), classDescriptor);
|
||||
assert containingFile != null : "Containing file should be present for " + classDescriptor;
|
||||
return NamespaceCodegen.getNamespacePartInternalName(containingFile);
|
||||
return PackageCodegen.getPackagePartInternalName(containingFile);
|
||||
}
|
||||
|
||||
private void writeInnerClasses() {
|
||||
|
||||
@@ -16,12 +16,10 @@
|
||||
|
||||
package org.jetbrains.jet.codegen;
|
||||
|
||||
import com.intellij.openapi.util.Pair;
|
||||
import com.intellij.util.containers.MultiMap;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.asm4.Type;
|
||||
import org.jetbrains.jet.codegen.state.GenerationState;
|
||||
import org.jetbrains.jet.lang.descriptors.ScriptDescriptor;
|
||||
import org.jetbrains.jet.lang.psi.JetFile;
|
||||
import org.jetbrains.jet.lang.psi.JetPsiUtil;
|
||||
import org.jetbrains.jet.lang.psi.JetScript;
|
||||
@@ -29,7 +27,6 @@ import org.jetbrains.jet.lang.resolve.ScriptNameUtil;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.Map;
|
||||
|
||||
import static org.jetbrains.jet.codegen.binding.CodegenBinding.registerClassNameForScript;
|
||||
@@ -50,25 +47,25 @@ public class KotlinCodegenFacade {
|
||||
|
||||
state.beforeCompile();
|
||||
|
||||
MultiMap<FqName, JetFile> namespaceGrouping = new MultiMap<FqName, JetFile>();
|
||||
MultiMap<FqName, JetFile> packageFqNameToFiles = new MultiMap<FqName, JetFile>();
|
||||
for (JetFile file : state.getFiles()) {
|
||||
if (file == null) throw new IllegalArgumentException("A null file given for compilation");
|
||||
namespaceGrouping.putValue(JetPsiUtil.getFQName(file), file);
|
||||
packageFqNameToFiles.putValue(JetPsiUtil.getFQName(file), file);
|
||||
}
|
||||
|
||||
for (Map.Entry<FqName, Collection<JetFile>> entry : namespaceGrouping.entrySet()) {
|
||||
generateNamespace(state, entry.getKey(), entry.getValue(), errorHandler);
|
||||
for (Map.Entry<FqName, Collection<JetFile>> entry : packageFqNameToFiles.entrySet()) {
|
||||
generatePackage(state, entry.getKey(), entry.getValue(), errorHandler);
|
||||
}
|
||||
}
|
||||
|
||||
public static void generateNamespace(
|
||||
public static void generatePackage(
|
||||
@NotNull GenerationState state,
|
||||
@NotNull FqName fqName,
|
||||
@NotNull Collection<JetFile> jetFiles,
|
||||
@NotNull CompilationErrorHandler errorHandler
|
||||
) {
|
||||
NamespaceCodegen codegen = state.getFactory().forNamespace(fqName, jetFiles);
|
||||
codegen.generate(errorHandler);
|
||||
PackageCodegen codegen = state.getFactory().forPackage(fqName, jetFiles);
|
||||
codegen.generate(errorHandler);
|
||||
}
|
||||
|
||||
private KotlinCodegenFacade() {}
|
||||
|
||||
+23
-23
@@ -53,7 +53,7 @@ import static org.jetbrains.jet.codegen.AsmUtil.asmTypeByFqNameWithoutInnerClass
|
||||
import static org.jetbrains.jet.descriptors.serialization.NameSerializationUtil.createNameResolver;
|
||||
import static org.jetbrains.jet.lang.resolve.java.PackageClassUtils.getPackageClassFqName;
|
||||
|
||||
public class NamespaceCodegen extends MemberCodegen {
|
||||
public class PackageCodegen extends MemberCodegen {
|
||||
private final ClassBuilderOnDemand v;
|
||||
|
||||
@NotNull
|
||||
@@ -63,25 +63,25 @@ public class NamespaceCodegen extends MemberCodegen {
|
||||
private final Collection<JetFile> files;
|
||||
private final Set<PackageFragmentDescriptor> packageFragments;
|
||||
|
||||
public NamespaceCodegen(
|
||||
public PackageCodegen(
|
||||
@NotNull ClassBuilderOnDemand v,
|
||||
@NotNull final FqName fqName,
|
||||
@NotNull GenerationState state,
|
||||
@NotNull Collection<JetFile> namespaceFiles
|
||||
@NotNull Collection<JetFile> packageFiles
|
||||
) {
|
||||
super(state, null);
|
||||
checkAllFilesHaveSameNamespace(namespaceFiles);
|
||||
checkAllFilesHaveSamePackage(packageFiles);
|
||||
|
||||
this.v = v;
|
||||
name = fqName;
|
||||
this.files = namespaceFiles;
|
||||
this.files = packageFiles;
|
||||
|
||||
packageFragments = Sets.newHashSet();
|
||||
for (JetFile file : namespaceFiles) {
|
||||
for (JetFile file : packageFiles) {
|
||||
packageFragments.add(getPackageFragment(file));
|
||||
}
|
||||
|
||||
final PsiFile sourceFile = namespaceFiles.size() == 1 ? namespaceFiles.iterator().next().getContainingFile() : null;
|
||||
final PsiFile sourceFile = packageFiles.size() == 1 ? packageFiles.iterator().next().getContainingFile() : null;
|
||||
|
||||
v.addOptionalDeclaration(new ClassBuilderOnDemand.ClassBuilderCallback() {
|
||||
@Override
|
||||
@@ -93,7 +93,7 @@ public class NamespaceCodegen extends MemberCodegen {
|
||||
"java/lang/Object",
|
||||
ArrayUtil.EMPTY_STRING_ARRAY
|
||||
);
|
||||
//We don't generate any source information for namespace with multiple files
|
||||
//We don't generate any source information for package with multiple files
|
||||
if (sourceFile != null) {
|
||||
v.visitSource(sourceFile.getName(), null);
|
||||
}
|
||||
@@ -103,7 +103,7 @@ public class NamespaceCodegen extends MemberCodegen {
|
||||
|
||||
public void generate(@NotNull CompilationErrorHandler errorHandler) {
|
||||
List<JvmSerializationBindings> bindings = new ArrayList<JvmSerializationBindings>(files.size() + 1);
|
||||
boolean shouldGeneratePackageClass = shouldGenerateNSClass(files);
|
||||
boolean shouldGeneratePackageClass = shouldGeneratePackageClass(files);
|
||||
if (shouldGeneratePackageClass) {
|
||||
bindings.add(v.getClassBuilder().getSerializationBindings());
|
||||
}
|
||||
@@ -134,7 +134,7 @@ public class NamespaceCodegen extends MemberCodegen {
|
||||
}
|
||||
|
||||
assert v.isActivated() == shouldGeneratePackageClass :
|
||||
"Different algorithms for generating namespace class and for heuristics for: " + name.asString();
|
||||
"Different algorithms for generating package class and for heuristics for: " + name.asString();
|
||||
}
|
||||
|
||||
private void writeKotlinPackageAnnotationIfNeeded(@NotNull JvmSerializationBindings bindings) {
|
||||
@@ -185,16 +185,16 @@ public class NamespaceCodegen extends MemberCodegen {
|
||||
|
||||
if (!generateSrcClass) return null;
|
||||
|
||||
Type packagePartType = getNamespacePartType(getPackageClassFqName(name), file.getVirtualFile());
|
||||
Type packagePartType = getPackagePartType(getPackageClassFqName(name), file.getVirtualFile());
|
||||
ClassBuilder builder = state.getFactory().forPackageFragment(packagePartType, file);
|
||||
|
||||
new NamespacePartCodegen(builder, file, packagePartType, packagePartContext, state).generate();
|
||||
new PackagePartCodegen(builder, file, packagePartType, packagePartContext, state).generate();
|
||||
|
||||
FieldOwnerContext namespaceFacade = CodegenContext.STATIC.intoPackageFacade(packagePartType, getPackageFragment(file));
|
||||
FieldOwnerContext packageFacade = CodegenContext.STATIC.intoPackageFacade(packagePartType, getPackageFragment(file));
|
||||
|
||||
for (JetDeclaration declaration : file.getDeclarations()) {
|
||||
if (declaration instanceof JetNamedFunction || declaration instanceof JetProperty) {
|
||||
genFunctionOrProperty(namespaceFacade, (JetTypeParameterListOwner) declaration, v.getClassBuilder());
|
||||
genFunctionOrProperty(packageFacade, (JetTypeParameterListOwner) declaration, v.getClassBuilder());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -214,13 +214,13 @@ public class NamespaceCodegen extends MemberCodegen {
|
||||
}
|
||||
|
||||
/**
|
||||
* @param namespaceFiles all files should have same package name
|
||||
* @param packageFiles all files should have same package name
|
||||
* @return
|
||||
*/
|
||||
public static boolean shouldGenerateNSClass(@NotNull Collection<JetFile> namespaceFiles) {
|
||||
checkAllFilesHaveSameNamespace(namespaceFiles);
|
||||
public static boolean shouldGeneratePackageClass(@NotNull Collection<JetFile> packageFiles) {
|
||||
checkAllFilesHaveSamePackage(packageFiles);
|
||||
|
||||
for (JetFile file : namespaceFiles) {
|
||||
for (JetFile file : packageFiles) {
|
||||
for (JetDeclaration declaration : file.getDeclarations()) {
|
||||
if (declaration instanceof JetProperty || declaration instanceof JetNamedFunction) {
|
||||
return true;
|
||||
@@ -231,9 +231,9 @@ public class NamespaceCodegen extends MemberCodegen {
|
||||
return false;
|
||||
}
|
||||
|
||||
private static void checkAllFilesHaveSameNamespace(Collection<JetFile> namespaceFiles) {
|
||||
private static void checkAllFilesHaveSamePackage(Collection<JetFile> packageFiles) {
|
||||
FqName commonFqName = null;
|
||||
for (JetFile file : namespaceFiles) {
|
||||
for (JetFile file : packageFiles) {
|
||||
FqName fqName = JetPsiUtil.getFQName(file);
|
||||
if (commonFqName != null) {
|
||||
if (!commonFqName.equals(fqName)) {
|
||||
@@ -251,7 +251,7 @@ public class NamespaceCodegen extends MemberCodegen {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static Type getNamespacePartType(@NotNull FqName facadeFqName, @NotNull VirtualFile file) {
|
||||
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
|
||||
@@ -269,8 +269,8 @@ public class NamespaceCodegen extends MemberCodegen {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static String getNamespacePartInternalName(@NotNull JetFile file) {
|
||||
public static String getPackagePartInternalName(@NotNull JetFile file) {
|
||||
FqName packageFqName = JetPsiUtil.getFQName(file);
|
||||
return getNamespacePartType(getPackageClassFqName(packageFqName), file.getVirtualFile()).getInternalName();
|
||||
return getPackagePartType(getPackageClassFqName(packageFqName), file.getVirtualFile()).getInternalName();
|
||||
}
|
||||
}
|
||||
+8
-8
@@ -39,7 +39,7 @@ import java.util.List;
|
||||
import static org.jetbrains.asm4.Opcodes.*;
|
||||
import static org.jetbrains.jet.codegen.AsmUtil.asmDescByFqNameWithoutInnerClasses;
|
||||
|
||||
public class NamespacePartCodegen extends MemberCodegen {
|
||||
public class PackagePartCodegen extends MemberCodegen {
|
||||
|
||||
private final ClassBuilder v;
|
||||
|
||||
@@ -47,30 +47,30 @@ public class NamespacePartCodegen extends MemberCodegen {
|
||||
|
||||
private final JetFile jetFile;
|
||||
|
||||
private final Type namespacePartName;
|
||||
private final Type packagePartName;
|
||||
|
||||
private final FieldOwnerContext context;
|
||||
|
||||
public NamespacePartCodegen(
|
||||
public PackagePartCodegen(
|
||||
@NotNull ClassBuilder v,
|
||||
@NotNull JetFile jetFile,
|
||||
@NotNull Type namespacePartName,
|
||||
@NotNull Type packagePartName,
|
||||
@NotNull FieldOwnerContext context,
|
||||
@NotNull GenerationState state
|
||||
) {
|
||||
super(state, null);
|
||||
this.v = v;
|
||||
this.jetFile = jetFile;
|
||||
this.namespacePartName = namespacePartName;
|
||||
this.packagePartName = packagePartName;
|
||||
this.context = context;
|
||||
descriptor = state.getBindingContext().get(BindingContext.FILE_TO_PACKAGE_FRAGMENT, jetFile);
|
||||
assert descriptor != null : "No namespace found for jetFile " + jetFile + " declared package: " + jetFile.getPackageName();
|
||||
assert descriptor != null : "No package fragment found for jetFile " + jetFile + " declared package: " + jetFile.getPackageName();
|
||||
}
|
||||
|
||||
public void generate() {
|
||||
v.defineClass(jetFile, V1_6,
|
||||
ACC_PUBLIC | ACC_FINAL,
|
||||
namespacePartName.getInternalName(),
|
||||
packagePartName.getInternalName(),
|
||||
null,
|
||||
"java/lang/Object",
|
||||
ArrayUtil.EMPTY_STRING_ARRAY
|
||||
@@ -122,7 +122,7 @@ public class NamespacePartCodegen extends MemberCodegen {
|
||||
}
|
||||
|
||||
mv.visitInsn(RETURN);
|
||||
FunctionCodegen.endVisit(mv, "static initializer for namespace", jetFile);
|
||||
FunctionCodegen.endVisit(mv, "static initializer for package", jetFile);
|
||||
mv.visitEnd();
|
||||
}
|
||||
}
|
||||
+7
-7
@@ -333,9 +333,9 @@ class CodegenAnnotatingVisitor extends JetVisitorVoid {
|
||||
// working around a problem with shallow analysis
|
||||
if (propertyDescriptor == null) return;
|
||||
|
||||
String nameForClassOrNamespaceMember = getNameForClassOrNamespaceMember(propertyDescriptor);
|
||||
if (nameForClassOrNamespaceMember != null) {
|
||||
nameStack.push(nameForClassOrNamespaceMember);
|
||||
String nameForClassOrPackageMember = getNameForClassOrPackageMember(propertyDescriptor);
|
||||
if (nameForClassOrPackageMember != null) {
|
||||
nameStack.push(nameForClassOrPackageMember);
|
||||
}
|
||||
else {
|
||||
nameStack.push(peekFromStack(nameStack) + '$' + property.getName());
|
||||
@@ -350,9 +350,9 @@ class CodegenAnnotatingVisitor extends JetVisitorVoid {
|
||||
// working around a problem with shallow analysis
|
||||
if (functionDescriptor == null) return;
|
||||
|
||||
String nameForClassOrNamespaceMember = getNameForClassOrNamespaceMember(functionDescriptor);
|
||||
if (nameForClassOrNamespaceMember != null) {
|
||||
nameStack.push(nameForClassOrNamespaceMember);
|
||||
String nameForClassOrPackageMember = getNameForClassOrPackageMember(functionDescriptor);
|
||||
if (nameForClassOrPackageMember != null) {
|
||||
nameStack.push(nameForClassOrPackageMember);
|
||||
super.visitNamedFunction(function);
|
||||
nameStack.pop();
|
||||
}
|
||||
@@ -371,7 +371,7 @@ class CodegenAnnotatingVisitor extends JetVisitorVoid {
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private String getNameForClassOrNamespaceMember(@NotNull DeclarationDescriptor descriptor) {
|
||||
private String getNameForClassOrPackageMember(@NotNull DeclarationDescriptor descriptor) {
|
||||
DeclarationDescriptor containingDeclaration = descriptor.getContainingDeclaration();
|
||||
|
||||
String peek = peekFromStack(nameStack);
|
||||
|
||||
@@ -61,7 +61,7 @@ public class CodegenBinding {
|
||||
|
||||
public static void initTrace(BindingTrace bindingTrace, Collection<JetFile> files) {
|
||||
CodegenAnnotatingVisitor visitor = new CodegenAnnotatingVisitor(bindingTrace);
|
||||
for (JetFile file : allFilesInNamespaces(bindingTrace.getBindingContext(), files)) {
|
||||
for (JetFile file : allFilesInPackages(bindingTrace.getBindingContext(), files)) {
|
||||
file.accept(visitor);
|
||||
}
|
||||
}
|
||||
@@ -223,7 +223,7 @@ public class CodegenBinding {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static Collection<JetFile> allFilesInNamespaces(BindingContext bindingContext, Collection<JetFile> files) {
|
||||
public static Collection<JetFile> allFilesInPackages(BindingContext bindingContext, Collection<JetFile> files) {
|
||||
// todo: we use Set and add given files but ignoring other scripts because something non-clear kept in binding
|
||||
// for scripts especially in case of REPL
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ import com.intellij.psi.util.PsiTreeUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.asm4.Type;
|
||||
import org.jetbrains.jet.codegen.NamespaceCodegen;
|
||||
import org.jetbrains.jet.codegen.PackageCodegen;
|
||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
||||
import org.jetbrains.jet.lang.psi.*;
|
||||
import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||
@@ -121,7 +121,7 @@ public final class PsiCodegenPredictor {
|
||||
}
|
||||
|
||||
// NOTE: looks like a bug - for class in getter of top level property class name will be $propertyName$ClassName but not
|
||||
// namespace$propertyName$ClassName
|
||||
// PackageClassName$propertyName$ClassName
|
||||
if (declaration instanceof JetProperty) {
|
||||
return parentInternalName + "$" + name.asString();
|
||||
}
|
||||
@@ -134,9 +134,9 @@ public final class PsiCodegenPredictor {
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static JetFile getFileForNamespacePartName(@NotNull Collection<JetFile> allNamespaceFiles, @NotNull JvmClassName className) {
|
||||
for (JetFile file : allNamespaceFiles) {
|
||||
String internalName = NamespaceCodegen.getNamespacePartInternalName(file);
|
||||
public static JetFile getFileForPackagePartName(@NotNull Collection<JetFile> allPackageFiles, @NotNull JvmClassName className) {
|
||||
for (JetFile file : allPackageFiles) {
|
||||
String internalName = PackageCodegen.getPackagePartInternalName(file);
|
||||
JvmClassName jvmClassName = JvmClassName.byInternalName(internalName);
|
||||
if (jvmClassName.equals(className)) {
|
||||
return file;
|
||||
@@ -148,7 +148,7 @@ public final class PsiCodegenPredictor {
|
||||
@Nullable
|
||||
public static JetFile getFileForCodegenNamedClass(
|
||||
@NotNull BindingContext context,
|
||||
@NotNull Collection<JetFile> allNamespaceFiles,
|
||||
@NotNull Collection<JetFile> allPackageFiles,
|
||||
@NotNull final String classInternalName
|
||||
) {
|
||||
final Ref<DeclarationDescriptor> resultingDescriptor = Ref.create();
|
||||
@@ -165,7 +165,7 @@ public final class PsiCodegenPredictor {
|
||||
}
|
||||
};
|
||||
|
||||
CodegenBinding.initTrace(trace, allNamespaceFiles);
|
||||
CodegenBinding.initTrace(trace, allPackageFiles);
|
||||
|
||||
return resultingDescriptor.isNull() ? null
|
||||
: BindingContextUtils.getContainingFile(trace.getBindingContext(), resultingDescriptor.get());
|
||||
|
||||
@@ -101,7 +101,7 @@ public abstract class CodegenContext<T extends DeclarationDescriptor> {
|
||||
return thisDescriptor != null;
|
||||
}
|
||||
|
||||
public DeclarationDescriptor getClassOrNamespaceDescriptor() {
|
||||
public DeclarationDescriptor getClassOrPackageDescriptor() {
|
||||
CodegenContext c = this;
|
||||
while (true) {
|
||||
assert c != null;
|
||||
@@ -408,7 +408,7 @@ public abstract class CodegenContext<T extends DeclarationDescriptor> {
|
||||
}
|
||||
|
||||
CodegenContext descriptorContext = null;
|
||||
if (!fromOutsideContext || getClassOrNamespaceDescriptor() != descriptor.getContainingDeclaration()) {
|
||||
if (!fromOutsideContext || getClassOrPackageDescriptor() != descriptor.getContainingDeclaration()) {
|
||||
DeclarationDescriptor enclosed = descriptor.getContainingDeclaration();
|
||||
boolean isClassObjectMember = DescriptorUtils.isClassObject(enclosed);
|
||||
//go upper
|
||||
|
||||
@@ -34,6 +34,6 @@ public class PackageContext extends FieldOwnerContext<PackageFragmentDescriptor>
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Namespace: " + getContextDescriptor().getName();
|
||||
return "Package: " + getContextDescriptor().getName();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -135,7 +135,7 @@ public class JetTypeMapper extends BindingTraceAware {
|
||||
// It's not a package created for Java class statics
|
||||
JetFile file = BindingContextUtils.getContainingFile(bindingContext, descriptor);
|
||||
if (insideModule && file != null) {
|
||||
return NamespaceCodegen.getNamespacePartInternalName(file);
|
||||
return PackageCodegen.getPackagePartInternalName(file);
|
||||
}
|
||||
else {
|
||||
return PackageClassUtils.getPackageClassFqName(packageFragment.getFqName()).asString().replace('.', '/');
|
||||
|
||||
@@ -149,8 +149,8 @@ public class CompileEnvironmentUtil {
|
||||
loader = new GeneratedClassLoader(factory, KotlinToJVMBytecodeCompiler.class.getClassLoader());
|
||||
}
|
||||
try {
|
||||
Class namespaceClass = loader.loadClass(PackageClassUtils.getPackageClassName(FqName.ROOT));
|
||||
Method method = namespaceClass.getDeclaredMethod("project");
|
||||
Class packageClass = loader.loadClass(PackageClassUtils.getPackageClassName(FqName.ROOT));
|
||||
Method method = packageClass.getDeclaredMethod("project");
|
||||
if (method == null) {
|
||||
throw new CompileEnvironmentException("Module script " + moduleFile + " must define project() function");
|
||||
}
|
||||
|
||||
@@ -284,12 +284,12 @@ public class ReplInterpreter {
|
||||
private ScriptDescriptor doAnalyze(@NotNull JetFile psiFile, @NotNull MessageCollector messageCollector) {
|
||||
WritableScope scope = new WritableScopeImpl(
|
||||
JetScope.EMPTY, module,
|
||||
new TraceBasedRedeclarationHandler(trace), "Root scope in analyzeNamespace");
|
||||
new TraceBasedRedeclarationHandler(trace), "Root scope in analyzePackage");
|
||||
|
||||
scope.changeLockLevel(WritableScope.LockLevel.BOTH);
|
||||
|
||||
// Import a scope that contains all top-level namespaces that come from dependencies
|
||||
// This makes the namespaces visible at all, does not import themselves
|
||||
// Import a scope that contains all top-level packages that come from dependencies
|
||||
// This makes the packages visible at all, does not import themselves
|
||||
scope.importScope(module.getPackage(FqName.ROOT).getMemberScope());
|
||||
|
||||
if (lastLineScope != null) {
|
||||
@@ -299,7 +299,7 @@ public class ReplInterpreter {
|
||||
scope.changeLockLevel(WritableScope.LockLevel.READING);
|
||||
|
||||
// dummy builder is used because "root" is module descriptor,
|
||||
// namespaces added to module explicitly in
|
||||
// packages added to module explicitly in
|
||||
injector.getTopDownAnalyzer().doProcess(scope, new PackageLikeBuilderDummy(), Collections.singletonList(psiFile));
|
||||
|
||||
boolean hasErrors = AnalyzerWithCompilerReport.reportDiagnostics(trace.getBindingContext(), messageCollector);
|
||||
@@ -349,7 +349,7 @@ public class ReplInterpreter {
|
||||
registerClassNameForScript(state.getBindingTrace(), script, classType);
|
||||
|
||||
state.beforeCompile();
|
||||
KotlinCodegenFacade.generateNamespace(
|
||||
KotlinCodegenFacade.generatePackage(
|
||||
state,
|
||||
JetPsiUtil.getFQName((JetFile) script.getContainingFile()),
|
||||
Collections.singleton((JetFile) script.getContainingFile()),
|
||||
|
||||
@@ -34,7 +34,7 @@ import com.intellij.util.SmartList;
|
||||
import com.intellij.util.containers.SLRUCache;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.codegen.NamespaceCodegen;
|
||||
import org.jetbrains.jet.codegen.PackageCodegen;
|
||||
import org.jetbrains.jet.lang.psi.JetClassOrObject;
|
||||
import org.jetbrains.jet.lang.psi.JetEnumEntry;
|
||||
import org.jetbrains.jet.lang.psi.JetFile;
|
||||
@@ -145,7 +145,7 @@ public class JavaElementFinder extends PsiElementFinder implements JavaPsiFacade
|
||||
private void findPackageClass(FqName qualifiedName, GlobalSearchScope scope, List<PsiClass> answer) {
|
||||
Collection<JetFile> filesForPackage = lightClassGenerationSupport.findFilesForPackage(qualifiedName, scope);
|
||||
|
||||
if (!filesForPackage.isEmpty() && NamespaceCodegen.shouldGenerateNSClass(filesForPackage)) {
|
||||
if (!filesForPackage.isEmpty() && PackageCodegen.shouldGeneratePackageClass(filesForPackage)) {
|
||||
KotlinLightClassForPackage lightClass = KotlinLightClassForPackage.create(psiManager, qualifiedName, scope, filesForPackage);
|
||||
if (lightClass != null) {
|
||||
answer.add(lightClass);
|
||||
|
||||
+4
-4
@@ -39,7 +39,7 @@ import com.intellij.util.containers.Stack;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.codegen.CompilationErrorHandler;
|
||||
import org.jetbrains.jet.codegen.NamespaceCodegen;
|
||||
import org.jetbrains.jet.codegen.PackageCodegen;
|
||||
import org.jetbrains.jet.codegen.binding.CodegenBinding;
|
||||
import org.jetbrains.jet.codegen.state.GenerationState;
|
||||
import org.jetbrains.jet.codegen.state.Progress;
|
||||
@@ -96,7 +96,7 @@ public class KotlinJavaFileStubProvider implements CachedValueProvider<LightClas
|
||||
|
||||
@Override
|
||||
public void generate(@NotNull GenerationState state, @NotNull Collection<JetFile> files) {
|
||||
NamespaceCodegen codegen = state.getFactory().forNamespace(packageFqName, files);
|
||||
PackageCodegen codegen = state.getFactory().forPackage(packageFqName, files);
|
||||
codegen.generate(CompilationErrorHandler.THROW_EXCEPTION);
|
||||
state.getFactory().asList();
|
||||
}
|
||||
@@ -169,8 +169,8 @@ public class KotlinJavaFileStubProvider implements CachedValueProvider<LightClas
|
||||
|
||||
@Override
|
||||
public void generate(@NotNull GenerationState state, @NotNull Collection<JetFile> files) {
|
||||
NamespaceCodegen namespaceCodegen = state.getFactory().forNamespace(getPackageFqName(), files);
|
||||
namespaceCodegen.generateClassOrObject(classOrObject);
|
||||
PackageCodegen packageCodegen = state.getFactory().forPackage(getPackageFqName(), files);
|
||||
packageCodegen.generateClassOrObject(classOrObject);
|
||||
state.getFactory().asList();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,7 +46,7 @@ public class AnnotationGenTest extends CodegenTestCase {
|
||||
}
|
||||
|
||||
private Class<?> getPackageSrcClass(@NotNull ClassLoader loader) throws ClassNotFoundException {
|
||||
return loader.loadClass(NamespaceCodegen.getNamespacePartInternalName(myFiles.getPsiFile()));
|
||||
return loader.loadClass(PackageCodegen.getPackagePartInternalName(myFiles.getPsiFile()));
|
||||
}
|
||||
|
||||
public void testPropField() throws Exception {
|
||||
|
||||
@@ -167,14 +167,14 @@ public abstract class CodegenTestCase extends UsefulTestCase {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
protected Class<?> generateNamespaceClass() {
|
||||
protected Class<?> generatePackageClass() {
|
||||
FqName packageFqName = JetPsiUtil.getFQName(myFiles.getPsiFile());
|
||||
return generateClass(getPackageClassFqName(packageFqName).asString());
|
||||
}
|
||||
|
||||
@NotNull
|
||||
protected Class<?> generateNamespaceSrcClass() {
|
||||
String name = NamespaceCodegen.getNamespacePartInternalName(myFiles.getPsiFile());
|
||||
protected Class<?> generatePackagePartClass() {
|
||||
String name = PackageCodegen.getPackagePartInternalName(myFiles.getPsiFile());
|
||||
return generateClass(name);
|
||||
}
|
||||
|
||||
@@ -263,7 +263,7 @@ public abstract class CodegenTestCase extends UsefulTestCase {
|
||||
|
||||
@NotNull
|
||||
protected Method generateFunction() {
|
||||
Class<?> aClass = generateNamespaceClass();
|
||||
Class<?> aClass = generatePackageClass();
|
||||
try {
|
||||
return findTheOnlyMethod(aClass);
|
||||
} catch (Error e) {
|
||||
@@ -274,7 +274,7 @@ public abstract class CodegenTestCase extends UsefulTestCase {
|
||||
|
||||
@NotNull
|
||||
protected Method generateFunction(@NotNull String name) {
|
||||
Class<?> aClass = generateNamespaceClass();
|
||||
Class<?> aClass = generatePackageClass();
|
||||
Method method = findDeclaredMethodByName(aClass, name);
|
||||
if (method == null) {
|
||||
throw new IllegalArgumentException("Couldn't find method " + name + " in class " + aClass);
|
||||
|
||||
@@ -47,7 +47,7 @@ public class JUnitUsageGenTest extends CodegenTestCase {
|
||||
|
||||
public void testKt1592() throws Exception {
|
||||
loadFile("junit/kt1592.kt");
|
||||
Class<?> namespaceClass = generateNamespaceClass();
|
||||
Class<?> namespaceClass = generatePackageClass();
|
||||
Method method = namespaceClass.getMethod("foo", Method.class);
|
||||
method.setAccessible(true);
|
||||
Annotation annotation = method.getAnnotation(getCorrespondingAnnotationClass(Test.class));
|
||||
|
||||
@@ -159,7 +159,7 @@ public class PrimitiveTypesTest extends CodegenTestCase {
|
||||
|
||||
public void testCastOnStack() throws Exception {
|
||||
loadText("fun foo(): Double = System.currentTimeMillis().toDouble()");
|
||||
Class<?> mainClass = generateNamespaceSrcClass();
|
||||
Class<?> mainClass = generatePackagePartClass();
|
||||
Method main = mainClass.getDeclaredMethod("foo");
|
||||
double currentTimeMillis = (double) System.currentTimeMillis();
|
||||
double result = (Double) main.invoke(null);
|
||||
|
||||
@@ -76,7 +76,7 @@ public class PropertyGenTest extends CodegenTestCase {
|
||||
|
||||
public void testPrivatePropertyInNamespace() throws Exception {
|
||||
loadText("private val x = 239");
|
||||
Class nsClass = generateNamespaceSrcClass();
|
||||
Class nsClass = generatePackagePartClass();
|
||||
Field[] fields = nsClass.getDeclaredFields();
|
||||
assertEquals(1, fields.length);
|
||||
Field field = fields[0];
|
||||
|
||||
@@ -37,7 +37,7 @@ import org.jetbrains.annotations.TestOnly;
|
||||
import org.jetbrains.asm4.Type;
|
||||
import org.jetbrains.jet.analyzer.AnalyzeExhaust;
|
||||
import org.jetbrains.jet.codegen.ClassBuilderMode;
|
||||
import org.jetbrains.jet.codegen.NamespaceCodegen;
|
||||
import org.jetbrains.jet.codegen.PackageCodegen;
|
||||
import org.jetbrains.jet.codegen.binding.CodegenBinding;
|
||||
import org.jetbrains.jet.codegen.state.JetTypeMapper;
|
||||
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
|
||||
@@ -154,7 +154,7 @@ public class JetPositionManager implements PositionManager {
|
||||
}
|
||||
|
||||
if (result.isNull()) {
|
||||
result.set(NamespaceCodegen.getNamespacePartInternalName(namespace));
|
||||
result.set(PackageCodegen.getPackagePartInternalName(namespace));
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -65,7 +65,7 @@ public class DebuggerUtils {
|
||||
}
|
||||
|
||||
Collection<JetFile> allNamespaceFiles = filesProvider.allNamespaceFiles().fun(anyFile);
|
||||
JetFile file = PsiCodegenPredictor.getFileForNamespacePartName(allNamespaceFiles, className);
|
||||
JetFile file = PsiCodegenPredictor.getFileForPackagePartName(allNamespaceFiles, className);
|
||||
if (file != null) {
|
||||
return file;
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.testFramework.LightVirtualFile;
|
||||
import com.intellij.util.Function;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import org.jetbrains.jet.codegen.NamespaceCodegen;
|
||||
import org.jetbrains.jet.codegen.PackageCodegen;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
import org.jetbrains.jps.builders.BuildResult;
|
||||
import org.jetbrains.jps.model.java.JpsJavaDependencyScope;
|
||||
@@ -323,7 +323,7 @@ public class KotlinJpsBuildTest extends AbstractKotlinJpsBuildTestCase {
|
||||
return super.getPath().substring(1);
|
||||
}
|
||||
};
|
||||
return NamespaceCodegen.getNamespacePartType(new FqName(packageClassFqName), fakeVirtualFile).getInternalName();
|
||||
return PackageCodegen.getPackagePartType(new FqName(packageClassFqName), fakeVirtualFile).getInternalName();
|
||||
}
|
||||
|
||||
private static enum Operation {
|
||||
|
||||
Reference in New Issue
Block a user