From 6af6f2827db5617b5144cb4a5f102f8449cbbe4b Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Mon, 27 Aug 2012 20:04:01 +0400 Subject: [PATCH] get rid of JdkNames --- .../codegen/ImplementationBodyCodegen.java | 3 +- .../jetbrains/jet/codegen/ScriptCodegen.java | 5 ++- .../resolve/java/JavaDescriptorResolver.java | 12 ++++--- .../jet/lang/resolve/java/JdkNames.java | 31 ------------------- 4 files changed, 10 insertions(+), 41 deletions(-) delete mode 100644 compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JdkNames.java diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java index fa2f4f13910..08863f67142 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ImplementationBodyCodegen.java @@ -39,7 +39,6 @@ import org.jetbrains.jet.lang.resolve.BindingContextUtils; import org.jetbrains.jet.lang.resolve.OverridingUtil; import org.jetbrains.jet.lang.resolve.calls.ResolvedCall; import org.jetbrains.jet.lang.resolve.constants.CompileTimeConstant; -import org.jetbrains.jet.lang.resolve.java.JdkNames; import org.jetbrains.jet.lang.resolve.java.JvmAbi; import org.jetbrains.jet.lang.resolve.java.JvmClassName; import org.jetbrains.jet.lang.resolve.java.JvmStdlibNames; @@ -99,7 +98,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen { isAbstract = true; isInterface = true; isAnnotation = true; - signature.getInterfaces().add(JdkNames.JLA_ANNOTATION.getInternalName()); + signature.getInterfaces().add("java/lang/annotation/Annotation"); } else if (jetClass.hasModifier(JetTokens.ENUM_KEYWORD)) { isEnum = true; diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ScriptCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ScriptCodegen.java index 828c291a64c..5fecfad0608 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ScriptCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ScriptCodegen.java @@ -34,7 +34,6 @@ import org.jetbrains.jet.lang.psi.JetScript; import org.jetbrains.jet.lang.psi.JetTypeParameterListOwner; import org.jetbrains.jet.lang.resolve.BindingContext; import org.jetbrains.jet.lang.resolve.ScriptNameUtil; -import org.jetbrains.jet.lang.resolve.java.JdkNames; import org.jetbrains.jet.lang.resolve.java.JvmClassName; import javax.inject.Inject; @@ -113,7 +112,7 @@ public class ScriptCodegen { Opcodes.ACC_PUBLIC, className.getInternalName(), null, - JdkNames.JL_OBJECT.getInternalName(), + "java/lang/Object", new String[0]); genMembers(scriptDeclaration, context, classBuilder); @@ -154,7 +153,7 @@ public class ScriptCodegen { JvmClassName className = codegenAnnotator.classNameForClassDescriptor(classDescriptorForScript); instructionAdapter.load(0, className.getAsmType()); - instructionAdapter.invokespecial(JdkNames.JL_OBJECT.getInternalName(), "", "()V"); + instructionAdapter.invokespecial("java/lang/Object", "", "()V"); instructionAdapter.load(0, className.getAsmType()); diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java index 840d98b1430..d7e1a634a70 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java @@ -64,7 +64,9 @@ import static org.jetbrains.jet.lang.resolve.DescriptorUtils.getClassObjectName; * @author abreslav */ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameResolver { - + + private static final FqName OBJECT_FQ_NAME = new FqName("java.lang.Object"); + public static final Name JAVA_ROOT = Name.special(""); public static final ModuleDescriptor FAKE_ROOT_MODULE = new ModuleDescriptor(JAVA_ROOT); @@ -305,7 +307,7 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes @Nullable private ClassDescriptor resolveJavaLangObject() { - ClassDescriptor clazz = resolveClass(JdkNames.JL_OBJECT.getFqName(), DescriptorSearchRule.IGNORE_IF_FOUND_IN_KOTLIN); + ClassDescriptor clazz = resolveClass(OBJECT_FQ_NAME, DescriptorSearchRule.IGNORE_IF_FOUND_IN_KOTLIN); if (clazz == null) { // TODO: warning } @@ -641,7 +643,7 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes static boolean isJavaLangObject(JetType type) { ClassifierDescriptor classifierDescriptor = type.getConstructor().getDeclarationDescriptor(); return classifierDescriptor instanceof ClassDescriptor && - DescriptorUtils.getFQName(classifierDescriptor).equalsTo(JdkNames.JL_OBJECT.getFqName()); + DescriptorUtils.getFQName(classifierDescriptor).equalsTo(OBJECT_FQ_NAME); } @@ -715,7 +717,7 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes if (result.isEmpty()) { if (classData.kotlin - || JdkNames.JL_OBJECT.getFqName().equalsTo(psiClass.getQualifiedName()) + || OBJECT_FQ_NAME.equalsTo(psiClass.getQualifiedName()) // TODO: annotations || classDescriptor.getKind() == ClassKind.ANNOTATION_CLASS) { result.add(JetStandardClasses.getAnyType()); @@ -1498,7 +1500,7 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes if (scopeData.kotlin) { // TODO: unless maybe class explicitly extends Object String ownerClassName = method.getPsiMethod().getContainingClass().getQualifiedName(); - if (JdkNames.JL_OBJECT.getFqName().getFqName().equals(ownerClassName)) { + if (OBJECT_FQ_NAME.getFqName().equals(ownerClassName)) { return null; } } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JdkNames.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JdkNames.java deleted file mode 100644 index 3aaeaacbafd..00000000000 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JdkNames.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright 2010-2012 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.java; - -/** - * @author Stepan Koltsov - */ -public class JdkNames { - - public static final JvmClassName JL_OBJECT = JvmClassName.byInternalName("java/lang/Object"); - public static final JvmClassName JL_STRING = JvmClassName.byInternalName("java/lang/String"); - public static final JvmClassName JLA_ANNOTATION = JvmClassName.byInternalName("java/lang/annotation/Annotation"); - public static final JvmClassName JLA_ENUM = JvmClassName.byInternalName("java/lang/Enum"); - - private JdkNames() { - } -}