From 789e6f3fc6e5abaaf6e8d20c54da2aa2377f29cc Mon Sep 17 00:00:00 2001 From: Stepan Koltsov Date: Wed, 14 Dec 2011 19:07:49 +0400 Subject: [PATCH] move jet signature read/write utils into stdlib module --- .../jet/codegen/BothSignatureWriter.java | 18 ++++++++++++++---- .../lang/resolve/java/JavaTypeTransformer.java | 3 +-- .../java/JetTypeJetSignatureReader.java | 7 +++---- .../signature/JetSignatureAdapter.java | 6 +++--- .../signature/JetSignatureReader.java | 14 ++++++-------- .../signature/JetSignatureVisitor.java | 7 +++---- .../signature/JetSignatureWriter.java | 11 +++++------ 7 files changed, 35 insertions(+), 31 deletions(-) rename {compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java => stdlib/src/jet/typeinfo/internal}/signature/JetSignatureAdapter.java (89%) rename {compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java => stdlib/src/jet/typeinfo/internal}/signature/JetSignatureReader.java (93%) rename {compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java => stdlib/src/jet/typeinfo/internal}/signature/JetSignatureVisitor.java (94%) rename {compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java => stdlib/src/jet/typeinfo/internal}/signature/JetSignatureWriter.java (94%) diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/BothSignatureWriter.java b/compiler/backend/src/org/jetbrains/jet/codegen/BothSignatureWriter.java index df828641deb..153765f12d0 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/BothSignatureWriter.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/BothSignatureWriter.java @@ -1,10 +1,11 @@ package org.jetbrains.jet.codegen; +import jet.typeinfo.TypeInfoVariance; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.jetbrains.jet.lang.resolve.java.signature.JetSignatureAdapter; -import org.jetbrains.jet.lang.resolve.java.signature.JetSignatureReader; -import org.jetbrains.jet.lang.resolve.java.signature.JetSignatureWriter; +import jet.typeinfo.internal.signature.JetSignatureAdapter; +import jet.typeinfo.internal.signature.JetSignatureReader; +import jet.typeinfo.internal.signature.JetSignatureWriter; import org.jetbrains.jet.lang.types.Variance; import org.objectweb.asm.Type; import org.objectweb.asm.signature.SignatureVisitor; @@ -183,11 +184,20 @@ public class BothSignatureWriter { jetSignatureWriter.visitTypeVariable(name, nullable); } + private TypeInfoVariance translateVariance(Variance variance) { + switch (variance) { + case IN_VARIANCE: return TypeInfoVariance.IN; + case OUT_VARIANCE: return TypeInfoVariance.OUT; + case INVARIANT: return TypeInfoVariance.INVARIANT; + default: throw new IllegalStateException(); + } + } + public void writeFormalTypeParameter(final String name, Variance variance) { checkTopLevel(); signatureVisitor().visitFormalTypeParameter(name); - jetSignatureWriter.visitFormalTypeParameter(name, variance); + jetSignatureWriter.visitFormalTypeParameter(name, translateVariance(variance)); } public void writerFormalTypeParametersStart() { 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 82d25433ac1..fd74d3d4d1e 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 @@ -2,12 +2,11 @@ package org.jetbrains.jet.lang.resolve.java; import com.google.common.collect.Lists; import com.intellij.psi.*; +import jet.typeinfo.internal.signature.JetSignatureReader; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor; import org.jetbrains.jet.lang.descriptors.ClassDescriptor; import org.jetbrains.jet.lang.descriptors.TypeParameterDescriptor; -import org.jetbrains.jet.lang.resolve.java.signature.JetSignatureReader; -import org.jetbrains.jet.lang.resolve.java.signature.JetSignatureVisitor; import org.jetbrains.jet.lang.types.*; import java.util.Collections; 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 69f5e4b1444..7694f3eb8a2 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 @@ -1,11 +1,10 @@ package org.jetbrains.jet.lang.resolve.java; +import jet.typeinfo.TypeInfoVariance; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.lang.descriptors.ClassDescriptor; import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor; -import org.jetbrains.jet.lang.resolve.java.signature.JetSignatureReader; -import org.jetbrains.jet.lang.resolve.java.signature.JetSignatureVisitor; -import org.jetbrains.jet.lang.resolve.scopes.JetScope; +import jet.typeinfo.internal.signature.JetSignatureVisitor; import org.jetbrains.jet.lang.types.ErrorUtils; import org.jetbrains.jet.lang.types.JetStandardClasses; import org.jetbrains.jet.lang.types.JetStandardLibrary; @@ -34,7 +33,7 @@ public abstract class JetTypeJetSignatureReader implements JetSignatureVisitor { @Override - public void visitFormalTypeParameter(String name, Variance variance) { + public void visitFormalTypeParameter(String name, TypeInfoVariance variance) { throw new IllegalStateException(); } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/signature/JetSignatureAdapter.java b/stdlib/src/jet/typeinfo/internal/signature/JetSignatureAdapter.java similarity index 89% rename from compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/signature/JetSignatureAdapter.java rename to stdlib/src/jet/typeinfo/internal/signature/JetSignatureAdapter.java index a1c62a009ff..8e229360bc4 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/signature/JetSignatureAdapter.java +++ b/stdlib/src/jet/typeinfo/internal/signature/JetSignatureAdapter.java @@ -1,13 +1,13 @@ -package org.jetbrains.jet.lang.resolve.java.signature; +package jet.typeinfo.internal.signature; -import org.jetbrains.jet.lang.types.Variance; +import jet.typeinfo.TypeInfoVariance; /** * @author Stepan Koltsov */ public class JetSignatureAdapter implements JetSignatureVisitor { @Override - public void visitFormalTypeParameter(String name, Variance variance) { + public void visitFormalTypeParameter(String name, TypeInfoVariance variance) { } @Override diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/signature/JetSignatureReader.java b/stdlib/src/jet/typeinfo/internal/signature/JetSignatureReader.java similarity index 93% rename from compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/signature/JetSignatureReader.java rename to stdlib/src/jet/typeinfo/internal/signature/JetSignatureReader.java index f4c78b26a44..3922801bbee 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/signature/JetSignatureReader.java +++ b/stdlib/src/jet/typeinfo/internal/signature/JetSignatureReader.java @@ -1,8 +1,6 @@ -package org.jetbrains.jet.lang.resolve.java.signature; +package jet.typeinfo.internal.signature; -import org.jetbrains.jet.lang.types.Variance; -import org.objectweb.asm.signature.SignatureReader; -import org.objectweb.asm.signature.SignatureVisitor; +import jet.typeinfo.TypeInfoVariance; /** * @author Stepan Koltsov @@ -27,15 +25,15 @@ public class JetSignatureReader { if (signature.charAt(0) == '<') { pos = 2; do { - Variance variance; + TypeInfoVariance variance; if (signature.substring(pos).startsWith("in ")) { - variance = Variance.IN_VARIANCE; + variance = TypeInfoVariance.IN; pos += "in ".length(); } else if (signature.substring(pos).startsWith("out ")) { - variance = Variance.OUT_VARIANCE; + variance = TypeInfoVariance.OUT; pos += "out ".length(); } else { - variance = Variance.INVARIANT; + variance = TypeInfoVariance.INVARIANT; pos += "".length(); } int end = signature.indexOf(':', pos); diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/signature/JetSignatureVisitor.java b/stdlib/src/jet/typeinfo/internal/signature/JetSignatureVisitor.java similarity index 94% rename from compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/signature/JetSignatureVisitor.java rename to stdlib/src/jet/typeinfo/internal/signature/JetSignatureVisitor.java index 6995d8b7e86..4aa667d515a 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/signature/JetSignatureVisitor.java +++ b/stdlib/src/jet/typeinfo/internal/signature/JetSignatureVisitor.java @@ -1,7 +1,6 @@ -package org.jetbrains.jet.lang.resolve.java.signature; +package jet.typeinfo.internal.signature; -import org.jetbrains.jet.lang.types.Variance; -import org.objectweb.asm.signature.SignatureVisitor; +import jet.typeinfo.TypeInfoVariance; /** * @author Stepan Koltsov @@ -31,7 +30,7 @@ public interface JetSignatureVisitor { * * @param name the name of the formal parameter. */ - void visitFormalTypeParameter(String name, Variance variance); + void visitFormalTypeParameter(String name, TypeInfoVariance variance); /** * Visits the class bound of the last visited formal type parameter. diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/signature/JetSignatureWriter.java b/stdlib/src/jet/typeinfo/internal/signature/JetSignatureWriter.java similarity index 94% rename from compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/signature/JetSignatureWriter.java rename to stdlib/src/jet/typeinfo/internal/signature/JetSignatureWriter.java index 4755613ff2f..3ac43dba3fd 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/signature/JetSignatureWriter.java +++ b/stdlib/src/jet/typeinfo/internal/signature/JetSignatureWriter.java @@ -1,7 +1,6 @@ -package org.jetbrains.jet.lang.resolve.java.signature; +package jet.typeinfo.internal.signature; -import org.jetbrains.jet.lang.types.Variance; -import org.objectweb.asm.signature.SignatureWriter; +import jet.typeinfo.TypeInfoVariance; /** * @author Stepan Koltsov @@ -44,16 +43,16 @@ public class JetSignatureWriter implements JetSignatureVisitor { // ------------------------------------------------------------------------ @Override - public void visitFormalTypeParameter(final String name, Variance variance) { + public void visitFormalTypeParameter(final String name, TypeInfoVariance variance) { if (!hasFormals) { hasFormals = true; buf.append('<'); } switch (variance) { - case OUT_VARIANCE: + case OUT: buf.append("out "); break; - case IN_VARIANCE: + case IN: buf.append("in "); break; case INVARIANT: