From 8623361e226d7ef7361695397ca38633ff352cf1 Mon Sep 17 00:00:00 2001 From: Stepan Koltsov Date: Sat, 7 Apr 2012 06:32:19 +0400 Subject: [PATCH] more FqName instead of String --- .../jetbrains/jet/codegen/JetTypeMapper.java | 6 ++--- .../resolve/java/JavaDescriptorResolver.java | 10 ++++---- .../resolve/java/JavaTypeTransformer.java | 17 +++++++------- .../java/JetTypeJetSignatureReader.java | 2 +- .../jet/lang/resolve/java/JvmClassName.java | 23 +++++++++++++------ .../resolve/java/kt/JetClassAnnotation.java | 2 +- .../java/kt/JetConstructorAnnotation.java | 2 +- .../resolve/java/kt/JetMethodAnnotation.java | 2 +- .../java/kt/JetTypeParameterAnnotation.java | 2 +- .../java/kt/JetValueParameterAnnotation.java | 2 +- 10 files changed, 38 insertions(+), 30 deletions(-) diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/JetTypeMapper.java b/compiler/backend/src/org/jetbrains/jet/codegen/JetTypeMapper.java index f75eb2d3bd6..fb31dc547ee 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/JetTypeMapper.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/JetTypeMapper.java @@ -865,9 +865,9 @@ public class JetTypeMapper { private boolean isForceReal(JvmClassName className) { return JvmPrimitiveType.getByWrapperClass(className) != null - || className.getFqName().equals("java.lang.String") - || className.getFqName().equals("java.lang.CharSequence") - || className.getFqName().equals("java.lang.Object"); + || className.getFqName().getFqName().equals("java.lang.String") + || className.getFqName().getFqName().equals("java.lang.CharSequence") + || className.getFqName().getFqName().equals("java.lang.Object"); } public boolean isGenericsArray(JetType type) { 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 76f3bb4c30b..c6fecba284a 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 @@ -763,7 +763,7 @@ public class JavaDescriptorResolver { private void transformSupertypeList(List result, PsiClassType[] extendsListTypes, TypeVariableResolver typeVariableResolver, boolean annotation) { for (PsiClassType type : extendsListTypes) { PsiClass resolved = type.resolve(); - if (resolved != null && resolved.getQualifiedName().equals(JvmStdlibNames.JET_OBJECT.getFqName())) { + if (resolved != null && resolved.getQualifiedName().equals(JvmStdlibNames.JET_OBJECT.getFqName().getFqName())) { continue; } if (annotation && resolved.getQualifiedName().equals("java.lang.annotation.Annotation")) { @@ -961,7 +961,7 @@ public class JavaDescriptorResolver { JetType transformedType; if (parameter.getJetValueParameter().nullable()) { transformedType = TypeUtils.makeNullableAsSpecified(outType, parameter.getJetValueParameter().nullable()); - } else if (parameter.getPsiParameter().getModifierList().findAnnotation(JvmAbi.JETBRAINS_NOT_NULL_ANNOTATION.getFqName()) != null) { + } else if (parameter.getPsiParameter().getModifierList().findAnnotation(JvmAbi.JETBRAINS_NOT_NULL_ANNOTATION.getFqName().getFqName()) != null) { transformedType = TypeUtils.makeNullableAsSpecified(outType, false); } else { transformedType = outType; @@ -1208,7 +1208,7 @@ public class JavaDescriptorResolver { propertyType = semanticServices.getTypeTransformer().transformToType(anyMember.getType().getTypeString(), typeVariableResolverForPropertyInternals); } else { propertyType = semanticServices.getTypeTransformer().transformToType(anyMember.getType().getPsiType(), typeVariableResolverForPropertyInternals); - if (anyMember.getType().getPsiNotNullOwner().getModifierList().findAnnotation(JvmAbi.JETBRAINS_NOT_NULL_ANNOTATION.getFqName()) != null) { + if (anyMember.getType().getPsiNotNullOwner().getModifierList().findAnnotation(JvmAbi.JETBRAINS_NOT_NULL_ANNOTATION.getFqName().getFqName()) != null) { propertyType = TypeUtils.makeNullableAsSpecified(propertyType, false); } } @@ -1507,7 +1507,7 @@ public class JavaDescriptorResolver { AnnotationDescriptor annotation = new AnnotationDescriptor(); String qname = psiAnnotation.getQualifiedName(); - if (qname.startsWith("java.lang.annotation.") || qname.startsWith("jet.runtime.typeinfo.") || qname.equals(JvmAbi.JETBRAINS_NOT_NULL_ANNOTATION.getFqName())) { + if (qname.startsWith("java.lang.annotation.") || qname.startsWith("jet.runtime.typeinfo.") || qname.equals(JvmAbi.JETBRAINS_NOT_NULL_ANNOTATION.getFqName().getFqName())) { // TODO return null; } @@ -1634,7 +1634,7 @@ public class JavaDescriptorResolver { } if (method.getJetMethod().returnTypeNullable()) { return TypeUtils.makeNullableAsSpecified(transformedType, true); - } else if (method.getPsiMethod().getModifierList().findAnnotation(JvmAbi.JETBRAINS_NOT_NULL_ANNOTATION.getFqName()) != null) { + } else if (method.getPsiMethod().getModifierList().findAnnotation(JvmAbi.JETBRAINS_NOT_NULL_ANNOTATION.getFqName().getFqName()) != null) { return TypeUtils.makeNullableAsSpecified(transformedType, false); } else { return transformedType; diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaTypeTransformer.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaTypeTransformer.java index ce5c0fee2d2..3177975c88c 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaTypeTransformer.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaTypeTransformer.java @@ -57,7 +57,7 @@ public class JavaTypeTransformer { private Map primitiveTypesMap; private Map classTypesMap; - private Map classDescriptorMap; + private HashMap classDescriptorMap; @@ -215,7 +215,7 @@ public class JavaTypeTransformer { PrimitiveType primitiveType = jvmPrimitiveType.getPrimitiveType(); primitiveTypesMap.put(jvmPrimitiveType.getName(), JetStandardLibrary.getInstance().getPrimitiveJetType(primitiveType)); primitiveTypesMap.put("[" + jvmPrimitiveType.getName(), JetStandardLibrary.getInstance().getPrimitiveArrayJetType(primitiveType)); - primitiveTypesMap.put(jvmPrimitiveType.getWrapper().getFqName(), JetStandardLibrary.getInstance().getNullablePrimitiveJetType(primitiveType)); + primitiveTypesMap.put(jvmPrimitiveType.getWrapper().getFqName().getFqName(), JetStandardLibrary.getInstance().getNullablePrimitiveJetType(primitiveType)); } primitiveTypesMap.put("void", JetStandardClasses.getUnitType()); } @@ -227,8 +227,7 @@ public class JavaTypeTransformer { classTypesMap = new HashMap(); for (JvmPrimitiveType jvmPrimitiveType : JvmPrimitiveType.values()) { PrimitiveType primitiveType = jvmPrimitiveType.getPrimitiveType(); - classTypesMap.put(jvmPrimitiveType.getWrapper().getFqName(), JetStandardLibrary.getInstance().getNullablePrimitiveJetType( - primitiveType)); + classTypesMap.put(jvmPrimitiveType.getWrapper().getFqName().getFqName(), JetStandardLibrary.getInstance().getNullablePrimitiveJetType(primitiveType)); } classTypesMap.put("java.lang.Object", JetStandardClasses.getNullableAnyType()); classTypesMap.put("java.lang.String", JetStandardLibrary.getInstance().getNullableStringType()); @@ -238,16 +237,16 @@ public class JavaTypeTransformer { return classTypesMap; } - public Map getPrimitiveWrappersClassDescriptorMap() { + public Map getPrimitiveWrappersClassDescriptorMap() { if (classDescriptorMap == null) { - classDescriptorMap = new HashMap(); + classDescriptorMap = new HashMap(); for (JvmPrimitiveType jvmPrimitiveType : JvmPrimitiveType.values()) { PrimitiveType primitiveType = jvmPrimitiveType.getPrimitiveType(); classDescriptorMap.put(jvmPrimitiveType.getWrapper().getFqName(), JetStandardLibrary.getInstance().getPrimitiveClassDescriptor(primitiveType)); } - classDescriptorMap.put("java.lang.String", JetStandardLibrary.getInstance().getString()); - classDescriptorMap.put("java.lang.CharSequence", JetStandardLibrary.getInstance().getCharSequence()); - classDescriptorMap.put("java.lang.Throwable", JetStandardLibrary.getInstance().getThrowable()); + classDescriptorMap.put(new FqName("java.lang.String"), JetStandardLibrary.getInstance().getString()); + classDescriptorMap.put(new FqName("java.lang.CharSequence"), JetStandardLibrary.getInstance().getCharSequence()); + classDescriptorMap.put(new FqName("java.lang.Throwable"), JetStandardLibrary.getInstance().getThrowable()); } return classDescriptorMap; } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JetTypeJetSignatureReader.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JetTypeJetSignatureReader.java index 089d4c83324..aa57aad2033 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JetTypeJetSignatureReader.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JetTypeJetSignatureReader.java @@ -93,7 +93,7 @@ public abstract class JetTypeJetSignatureReader extends JetSignatureExceptionsAd this.classDescriptor = null; if (this.classDescriptor == null && !forceReal) { - this.classDescriptor = this.javaSemanticServices.getTypeTransformer().getPrimitiveWrappersClassDescriptorMap().get(ourName.getFqName()); + this.classDescriptor = this.javaSemanticServices.getTypeTransformer().getPrimitiveWrappersClassDescriptorMap().get(ourName); } if (this.classDescriptor == null && ourName.equals(new FqName("java.lang.Object")) && !forceReal) { diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JvmClassName.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JvmClassName.java index c733043b23c..4d630efd16f 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JvmClassName.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JvmClassName.java @@ -17,29 +17,38 @@ package org.jetbrains.jet.lang.resolve.java; import org.jetbrains.annotations.NotNull; +import org.jetbrains.jet.lang.resolve.FqName; import org.objectweb.asm.Type; /** * @author Stepan Koltsov */ public class JvmClassName { - - private final String fqName; + + @NotNull + private final FqName fqName; public JvmClassName(@NotNull String fqName) { + this(new FqName(fqName)); + } + + public JvmClassName(@NotNull FqName fqName) { this.fqName = fqName; } - + public static JvmClassName byInternalName(@NotNull String internalName) { JvmClassName r = new JvmClassName(internalName.replace('/', '.')); r.internalName = internalName; return r; } - public String getFqName() { + @NotNull + public FqName getFqName() { return fqName; } - + + + private String internalName; public String getInternalName() { @@ -54,9 +63,9 @@ public class JvmClassName { public String getDescriptor() { if (descriptor == null) { - StringBuilder sb = new StringBuilder(fqName.length() + 2); + StringBuilder sb = new StringBuilder(fqName.getFqName().length() + 2); sb.append('L'); - sb.append(fqName.replace('.', '/')); + sb.append(fqName.getFqName().replace('.', '/')); sb.append(';'); descriptor = sb.toString(); } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kt/JetClassAnnotation.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kt/JetClassAnnotation.java index c580531a833..dd9600e33f2 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kt/JetClassAnnotation.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kt/JetClassAnnotation.java @@ -41,6 +41,6 @@ public class JetClassAnnotation extends PsiAnnotationWrapper { @NotNull public static JetClassAnnotation get(PsiClass psiClass) { - return new JetClassAnnotation(psiClass.getModifierList().findAnnotation(JvmStdlibNames.JET_CLASS.getFqName())); + return new JetClassAnnotation(psiClass.getModifierList().findAnnotation(JvmStdlibNames.JET_CLASS.getFqName().getFqName())); } } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kt/JetConstructorAnnotation.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kt/JetConstructorAnnotation.java index ebfd04a6b8b..efececbde06 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kt/JetConstructorAnnotation.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kt/JetConstructorAnnotation.java @@ -42,6 +42,6 @@ public class JetConstructorAnnotation extends PsiAnnotationWrapper { } public static JetConstructorAnnotation get(PsiMethod constructor) { - return new JetConstructorAnnotation(constructor.getModifierList().findAnnotation(JvmStdlibNames.JET_CONSTRUCTOR.getFqName())); + return new JetConstructorAnnotation(constructor.getModifierList().findAnnotation(JvmStdlibNames.JET_CONSTRUCTOR.getFqName().getFqName())); } } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kt/JetMethodAnnotation.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kt/JetMethodAnnotation.java index d65010a081c..78aab02ac81 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kt/JetMethodAnnotation.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kt/JetMethodAnnotation.java @@ -80,6 +80,6 @@ public class JetMethodAnnotation extends PsiAnnotationWrapper { } public static JetMethodAnnotation get(PsiMethod psiMethod) { - return new JetMethodAnnotation(psiMethod.getModifierList().findAnnotation(JvmStdlibNames.JET_METHOD.getFqName())); + return new JetMethodAnnotation(psiMethod.getModifierList().findAnnotation(JvmStdlibNames.JET_METHOD.getFqName().getFqName())); } } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kt/JetTypeParameterAnnotation.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kt/JetTypeParameterAnnotation.java index 85fcb0ca335..8950403d545 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kt/JetTypeParameterAnnotation.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kt/JetTypeParameterAnnotation.java @@ -33,6 +33,6 @@ public class JetTypeParameterAnnotation extends PsiAnnotationWrapper { @NotNull public static JetTypeParameterAnnotation get(@NotNull PsiParameter psiParameter) { - return new JetTypeParameterAnnotation(psiParameter.getModifierList().findAnnotation(JvmStdlibNames.JET_TYPE_PARAMETER.getFqName())); + return new JetTypeParameterAnnotation(psiParameter.getModifierList().findAnnotation(JvmStdlibNames.JET_TYPE_PARAMETER.getFqName().getFqName())); } } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kt/JetValueParameterAnnotation.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kt/JetValueParameterAnnotation.java index 52e1e5cfb38..8b2800f6850 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kt/JetValueParameterAnnotation.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kt/JetValueParameterAnnotation.java @@ -80,7 +80,7 @@ public class JetValueParameterAnnotation extends PsiAnnotationWrapper { } public static JetValueParameterAnnotation get(PsiParameter psiParameter) { - return new JetValueParameterAnnotation(psiParameter.getModifierList().findAnnotation(JvmStdlibNames.JET_VALUE_PARAMETER.getFqName())); + return new JetValueParameterAnnotation(psiParameter.getModifierList().findAnnotation(JvmStdlibNames.JET_VALUE_PARAMETER.getFqName().getFqName())); } }