From 8d7e79c806352310b40376cffd8968117c8ac8e5 Mon Sep 17 00:00:00 2001 From: Evgeny Gerashchenko Date: Mon, 12 Nov 2012 17:23:03 +0400 Subject: [PATCH] Renamed & moved AllInjectorsGenerator. --- build.xml | 2 +- .../jet/di/InjectorForJvmCodegen.java | 2 +- .../di/InjectorForJavaDescriptorResolver.java | 2 +- .../di/InjectorForJavaSemanticServices.java | 2 +- .../di/InjectorForTopDownAnalyzerForJvm.java | 2 +- .../TypeTransformingVisitor.java | 8 +++-- .../jet/di/InjectorForBodyResolve.java | 2 +- .../jet/di/InjectorForLazyResolve.java | 2 +- .../jetbrains/jet/di/InjectorForMacros.java | 2 +- .../di/InjectorForTopDownAnalyzerBasic.java | 2 +- .../jetbrains/jet/di/InjectorForTests.java | 2 +- generators/generators.iml | 4 +++ .../jet/generators/GenerateInjectors.java | 30 +++++++++++-------- .../jet/di/DependencyInjectorGenerator.java | 5 ++-- .../src/org/jetbrains/jet/di/DiType.java | 2 +- .../org/jetbrains/jet/di/GivenExpression.java | 2 +- .../di/InjectorForTopDownAnalyzerForJs.java | 2 +- 17 files changed, 43 insertions(+), 30 deletions(-) rename injector-generator/src/org/jetbrains/jet/di/AllInjectorsGenerator.java => generators/org/jetbrains/jet/generators/GenerateInjectors.java (92%) diff --git a/build.xml b/build.xml index 9ce95864f2d..856726f97e9 100644 --- a/build.xml +++ b/build.xml @@ -91,7 +91,7 @@ - + diff --git a/compiler/backend/src/org/jetbrains/jet/di/InjectorForJvmCodegen.java b/compiler/backend/src/org/jetbrains/jet/di/InjectorForJvmCodegen.java index d623006cabd..4e1414fe621 100644 --- a/compiler/backend/src/org/jetbrains/jet/di/InjectorForJvmCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/di/InjectorForJvmCodegen.java @@ -33,7 +33,7 @@ import org.jetbrains.jet.codegen.ClassFileFactory; import org.jetbrains.annotations.NotNull; import javax.annotation.PreDestroy; -/* This file is generated by org.jetbrains.jet.di.AllInjectorsGenerator. DO NOT EDIT! */ +/* This file is generated by org.jetbrains.jet.generators.GenerateInjectors. DO NOT EDIT! */ public class InjectorForJvmCodegen { private final JetTypeMapper jetTypeMapper; diff --git a/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForJavaDescriptorResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForJavaDescriptorResolver.java index 141885c62db..cdb46b17d7d 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForJavaDescriptorResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForJavaDescriptorResolver.java @@ -40,7 +40,7 @@ import org.jetbrains.jet.lang.resolve.java.resolver.JavaPropertyResolver; import org.jetbrains.annotations.NotNull; import javax.annotation.PreDestroy; -/* This file is generated by org.jetbrains.jet.di.AllInjectorsGenerator. DO NOT EDIT! */ +/* This file is generated by org.jetbrains.jet.generators.GenerateInjectors. DO NOT EDIT! */ public class InjectorForJavaDescriptorResolver { private final Project project; diff --git a/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForJavaSemanticServices.java b/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForJavaSemanticServices.java index 1deddf71af0..424d9e66d19 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForJavaSemanticServices.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForJavaSemanticServices.java @@ -40,7 +40,7 @@ import org.jetbrains.jet.lang.resolve.java.resolver.JavaPropertyResolver; import org.jetbrains.annotations.NotNull; import javax.annotation.PreDestroy; -/* This file is generated by org.jetbrains.jet.di.AllInjectorsGenerator. DO NOT EDIT! */ +/* This file is generated by org.jetbrains.jet.generators.GenerateInjectors. DO NOT EDIT! */ public class InjectorForJavaSemanticServices { private JavaSemanticServices javaSemanticServices; diff --git a/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJvm.java b/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJvm.java index dbd534b965e..a16a5af5a6f 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJvm.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJvm.java @@ -62,7 +62,7 @@ import org.jetbrains.jet.lang.resolve.java.resolver.JavaPropertyResolver; import org.jetbrains.annotations.NotNull; import javax.annotation.PreDestroy; -/* This file is generated by org.jetbrains.jet.di.AllInjectorsGenerator. DO NOT EDIT! */ +/* This file is generated by org.jetbrains.jet.generators.GenerateInjectors. DO NOT EDIT! */ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnalyzer { private TopDownAnalyzer topDownAnalyzer; diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kotlinSignature/TypeTransformingVisitor.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kotlinSignature/TypeTransformingVisitor.java index 9dceb8119c8..6f79c65a2d0 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kotlinSignature/TypeTransformingVisitor.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kotlinSignature/TypeTransformingVisitor.java @@ -124,9 +124,9 @@ class TypeTransformingVisitor extends JetVisitor { TypeProjection argument = arguments.get(i); JetType alternativeType = computeType(argumentAlternativeTypeElement, argument.getType(), originalToAltTypeParameters); Variance variance = argument.getProjectionKind(); + Variance altVariance; if (type instanceof JetUserType) { JetTypeProjection typeProjection = ((JetUserType) type).getTypeArguments().get(i); - Variance altVariance = Variance.INVARIANT; switch (typeProjection.getProjectionKind()) { case IN: altVariance = Variance.IN_VARIANCE; @@ -137,12 +137,16 @@ class TypeTransformingVisitor extends JetVisitor { case STAR: throw new AlternativeSignatureMismatchException("Star projection is not available in alternative signatures"); default: + altVariance = Variance.INVARIANT; } if (altVariance != variance && variance != Variance.INVARIANT) { throw new AlternativeSignatureMismatchException("Variance mismatch, actual: %s, in alternative signature: %s", variance, altVariance); } } - altArguments.add(new TypeProjection(variance, alternativeType)); + else { + altVariance = variance; + } + altArguments.add(new TypeProjection(altVariance, alternativeType)); } TypeConstructor typeConstructor; diff --git a/compiler/frontend/src/org/jetbrains/jet/di/InjectorForBodyResolve.java b/compiler/frontend/src/org/jetbrains/jet/di/InjectorForBodyResolve.java index c52e7bbdcd3..bfb08b2b459 100644 --- a/compiler/frontend/src/org/jetbrains/jet/di/InjectorForBodyResolve.java +++ b/compiler/frontend/src/org/jetbrains/jet/di/InjectorForBodyResolve.java @@ -37,7 +37,7 @@ import org.jetbrains.jet.lang.resolve.TopDownAnalysisContext; import org.jetbrains.annotations.NotNull; import javax.annotation.PreDestroy; -/* This file is generated by org.jetbrains.jet.di.AllInjectorsGenerator. DO NOT EDIT! */ +/* This file is generated by org.jetbrains.jet.generators.GenerateInjectors. DO NOT EDIT! */ public class InjectorForBodyResolve { private BodyResolver bodyResolver; diff --git a/compiler/frontend/src/org/jetbrains/jet/di/InjectorForLazyResolve.java b/compiler/frontend/src/org/jetbrains/jet/di/InjectorForLazyResolve.java index 5b34b27fbdd..5bcda25876a 100644 --- a/compiler/frontend/src/org/jetbrains/jet/di/InjectorForLazyResolve.java +++ b/compiler/frontend/src/org/jetbrains/jet/di/InjectorForLazyResolve.java @@ -32,7 +32,7 @@ import org.jetbrains.jet.lang.resolve.calls.CandidateResolver; import org.jetbrains.annotations.NotNull; import javax.annotation.PreDestroy; -/* This file is generated by org.jetbrains.jet.di.AllInjectorsGenerator. DO NOT EDIT! */ +/* This file is generated by org.jetbrains.jet.generators.GenerateInjectors. DO NOT EDIT! */ public class InjectorForLazyResolve { private final Project project; diff --git a/compiler/frontend/src/org/jetbrains/jet/di/InjectorForMacros.java b/compiler/frontend/src/org/jetbrains/jet/di/InjectorForMacros.java index 6a96c927c3c..d0d1bde0019 100644 --- a/compiler/frontend/src/org/jetbrains/jet/di/InjectorForMacros.java +++ b/compiler/frontend/src/org/jetbrains/jet/di/InjectorForMacros.java @@ -29,7 +29,7 @@ import org.jetbrains.jet.lang.resolve.QualifiedExpressionResolver; import org.jetbrains.annotations.NotNull; import javax.annotation.PreDestroy; -/* This file is generated by org.jetbrains.jet.di.AllInjectorsGenerator. DO NOT EDIT! */ +/* This file is generated by org.jetbrains.jet.generators.GenerateInjectors. DO NOT EDIT! */ public class InjectorForMacros { private ExpressionTypingServices expressionTypingServices; diff --git a/compiler/frontend/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerBasic.java b/compiler/frontend/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerBasic.java index dab311eb30a..95938cda6e8 100644 --- a/compiler/frontend/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerBasic.java +++ b/compiler/frontend/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerBasic.java @@ -46,7 +46,7 @@ import org.jetbrains.jet.lang.resolve.ScriptBodyResolver; import org.jetbrains.annotations.NotNull; import javax.annotation.PreDestroy; -/* This file is generated by org.jetbrains.jet.di.AllInjectorsGenerator. DO NOT EDIT! */ +/* This file is generated by org.jetbrains.jet.generators.GenerateInjectors. DO NOT EDIT! */ public class InjectorForTopDownAnalyzerBasic { private TopDownAnalyzer topDownAnalyzer; diff --git a/compiler/tests/org/jetbrains/jet/di/InjectorForTests.java b/compiler/tests/org/jetbrains/jet/di/InjectorForTests.java index 27fd8cf9ae8..312150136c7 100644 --- a/compiler/tests/org/jetbrains/jet/di/InjectorForTests.java +++ b/compiler/tests/org/jetbrains/jet/di/InjectorForTests.java @@ -30,7 +30,7 @@ import org.jetbrains.jet.lang.resolve.calls.CandidateResolver; import org.jetbrains.annotations.NotNull; import javax.annotation.PreDestroy; -/* This file is generated by org.jetbrains.jet.di.AllInjectorsGenerator. DO NOT EDIT! */ +/* This file is generated by org.jetbrains.jet.generators.GenerateInjectors. DO NOT EDIT! */ public class InjectorForTests { private DescriptorResolver descriptorResolver; diff --git a/generators/generators.iml b/generators/generators.iml index 36207032c22..a02cc242438 100644 --- a/generators/generators.iml +++ b/generators/generators.iml @@ -10,6 +10,10 @@ + + + + diff --git a/injector-generator/src/org/jetbrains/jet/di/AllInjectorsGenerator.java b/generators/org/jetbrains/jet/generators/GenerateInjectors.java similarity index 92% rename from injector-generator/src/org/jetbrains/jet/di/AllInjectorsGenerator.java rename to generators/org/jetbrains/jet/generators/GenerateInjectors.java index 955119eeafd..7483bb71985 100644 --- a/injector-generator/src/org/jetbrains/jet/di/AllInjectorsGenerator.java +++ b/generators/org/jetbrains/jet/generators/GenerateInjectors.java @@ -14,13 +14,14 @@ * limitations under the License. */ -package org.jetbrains.jet.di; +package org.jetbrains.jet.generators; import com.intellij.openapi.project.Project; import org.jetbrains.jet.codegen.*; import org.jetbrains.jet.codegen.intrinsics.IntrinsicMethods; import org.jetbrains.jet.codegen.state.GenerationState; import org.jetbrains.jet.codegen.state.JetTypeMapper; +import org.jetbrains.jet.di.*; import org.jetbrains.jet.lang.ModuleConfiguration; import org.jetbrains.jet.lang.descriptors.ModuleDescriptor; import org.jetbrains.jet.lang.psi.JetFile; @@ -43,9 +44,9 @@ import java.io.IOException; */ // NOTE: After making changes, you need to re-generate the injectors. // To do that, you can run either this class, or /build.xml/generateInjectors task -public class AllInjectorsGenerator { +public class GenerateInjectors { - private AllInjectorsGenerator() { + private GenerateInjectors() { } public static void main(String[] args) throws IOException { @@ -73,7 +74,7 @@ public class AllInjectorsGenerator { generator.addPublicField(ScopeProvider.class); generator.addPublicField(AnnotationResolver.class); generator.addPublicField(QualifiedExpressionResolver.class); - generator.generate("compiler/frontend/src", "org.jetbrains.jet.di", "InjectorForLazyResolve"); + generator.generate("compiler/frontend/src", "org.jetbrains.jet.di", "InjectorForLazyResolve", GenerateInjectors.class); } private static void generateInjectorForTopDownAnalyzerBasic() throws IOException { @@ -82,7 +83,7 @@ public class AllInjectorsGenerator { generator.addParameter(ModuleConfiguration.class); generator.addField(DependencyClassByQualifiedNameResolverDummyImpl.class); generator.addField(NamespaceFactoryImpl.class); - generator.generate("compiler/frontend/src", "org.jetbrains.jet.di", "InjectorForTopDownAnalyzerBasic"); + generator.generate("compiler/frontend/src", "org.jetbrains.jet.di", "InjectorForTopDownAnalyzerBasic", GenerateInjectors.class); } private static void generateInjectorForTopDownAnalyzerForJs() throws IOException { @@ -91,7 +92,7 @@ public class AllInjectorsGenerator { generator.addPublicParameter(ModuleConfiguration.class); generator.addField(DependencyClassByQualifiedNameResolverDummyImpl.class); generator.addField(NamespaceFactoryImpl.class); - generator.generate("js/js.translator/src", "org.jetbrains.jet.di", "InjectorForTopDownAnalyzerForJs"); + generator.generate("js/js.translator/src", "org.jetbrains.jet.di", "InjectorForTopDownAnalyzerForJs", GenerateInjectors.class); } private static void generateInjectorForTopDownAnalyzerForJvm() throws IOException { @@ -102,7 +103,8 @@ public class AllInjectorsGenerator { generator.addField(JavaDescriptorResolver.class); generator.addField(PsiClassFinderImpl.class); generator.addPublicField(NamespaceFactoryImpl.class); - generator.generate("compiler/frontend.java/src", "org.jetbrains.jet.di", "InjectorForTopDownAnalyzerForJvm"); + generator.generate("compiler/frontend.java/src", "org.jetbrains.jet.di", "InjectorForTopDownAnalyzerForJvm", + GenerateInjectors.class); } private static void generateInjectorForJavaDescriptorResolver() throws IOException { @@ -119,7 +121,8 @@ public class AllInjectorsGenerator { generator.addPublicField(JavaDescriptorResolver.class); generator.addPublicField(PsiClassFinderImpl.class); - generator.generate("compiler/frontend.java/src", "org.jetbrains.jet.di", "InjectorForJavaDescriptorResolver"); + generator.generate("compiler/frontend.java/src", "org.jetbrains.jet.di", "InjectorForJavaDescriptorResolver", + GenerateInjectors.class); } private static void generateInjectorForTopDownAnalyzerCommon(DependencyInjectorGenerator generator) { @@ -148,7 +151,7 @@ public class AllInjectorsGenerator { generator.addPublicParameter(Project.class); generator.addParameter(ModuleConfiguration.class); - generator.generate("compiler/frontend/src", "org.jetbrains.jet.di", "InjectorForMacros"); + generator.generate("compiler/frontend/src", "org.jetbrains.jet.di", "InjectorForMacros", GenerateInjectors.class); } private static void generateTestInjector() throws IOException { @@ -165,7 +168,7 @@ public class AllInjectorsGenerator { // Parameters generator.addPublicParameter(Project.class); - generator.generate("compiler/tests", "org.jetbrains.jet.di", "InjectorForTests"); + generator.generate("compiler/tests", "org.jetbrains.jet.di", "InjectorForTests", GenerateInjectors.class); } private static void generateInjectorForJavaSemanticServices() throws IOException { @@ -185,7 +188,8 @@ public class AllInjectorsGenerator { // Parameters generator.addPublicParameter(Project.class); - generator.generate("compiler/frontend.java/src", "org.jetbrains.jet.di", "InjectorForJavaSemanticServices"); + generator.generate("compiler/frontend.java/src", "org.jetbrains.jet.di", "InjectorForJavaSemanticServices", + GenerateInjectors.class); } private static void generateInjectorForJvmCodegen() throws IOException { @@ -210,7 +214,7 @@ public class AllInjectorsGenerator { generator.addField(true, IntrinsicMethods.class, "intrinsics", null); generator.addPublicField(ClassFileFactory.class); - generator.generate("compiler/backend/src", "org.jetbrains.jet.di", "InjectorForJvmCodegen"); + generator.generate("compiler/backend/src", "org.jetbrains.jet.di", "InjectorForJvmCodegen", GenerateInjectors.class); } private static void generateInjectorForBodyResolve() throws IOException { @@ -224,6 +228,6 @@ public class AllInjectorsGenerator { generator.addPublicParameter(BindingTrace.class); generator.addPublicParameter(BodiesResolveContext.class); generator.addParameter(ModuleConfiguration.class); - generator.generate("compiler/frontend/src", "org.jetbrains.jet.di", "InjectorForBodyResolve"); + generator.generate("compiler/frontend/src", "org.jetbrains.jet.di", "InjectorForBodyResolve", GenerateInjectors.class); } } diff --git a/injector-generator/src/org/jetbrains/jet/di/DependencyInjectorGenerator.java b/injector-generator/src/org/jetbrains/jet/di/DependencyInjectorGenerator.java index cadd63e0f0e..33273053cc8 100644 --- a/injector-generator/src/org/jetbrains/jet/di/DependencyInjectorGenerator.java +++ b/injector-generator/src/org/jetbrains/jet/di/DependencyInjectorGenerator.java @@ -62,7 +62,8 @@ public class DependencyInjectorGenerator { this.lazy = lazy; } - public void generate(String targetSourceRoot, String injectorPackageName, String injectorClassName) throws IOException { + public void generate(String targetSourceRoot, String injectorPackageName, String injectorClassName, Class generatorClass) + throws IOException { String outputFileName = targetSourceRoot + "/" + injectorPackageName.replace(".", "/") + "/" + injectorClassName + ".java"; File file = new File(outputFileName); @@ -101,7 +102,7 @@ public class DependencyInjectorGenerator { generateImports(out, injectorPackageName); out.println(); - out.println("/* This file is generated by " + AllInjectorsGenerator.class.getName() + ". DO NOT EDIT! */"); + out.println("/* This file is generated by " + generatorClass.getName() + ". DO NOT EDIT! */"); out.print("public class " + injectorClassName); generateImplementsList(out); out.println(" {"); diff --git a/injector-generator/src/org/jetbrains/jet/di/DiType.java b/injector-generator/src/org/jetbrains/jet/di/DiType.java index b75c32414bc..dd9afd27a2e 100644 --- a/injector-generator/src/org/jetbrains/jet/di/DiType.java +++ b/injector-generator/src/org/jetbrains/jet/di/DiType.java @@ -29,7 +29,7 @@ import java.util.List; /** * @author Stepan Koltsov */ -class DiType { +public class DiType { @NotNull private final Class clazz; @NotNull diff --git a/injector-generator/src/org/jetbrains/jet/di/GivenExpression.java b/injector-generator/src/org/jetbrains/jet/di/GivenExpression.java index 5ff4617ca8a..950d9f1ca3f 100644 --- a/injector-generator/src/org/jetbrains/jet/di/GivenExpression.java +++ b/injector-generator/src/org/jetbrains/jet/di/GivenExpression.java @@ -26,7 +26,7 @@ import java.util.Collections; /** * @author abreslav */ -class GivenExpression implements Expression { +public class GivenExpression implements Expression { private final String expression; private final Collection typesToImport; diff --git a/js/js.translator/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJs.java b/js/js.translator/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJs.java index 42e607c59ff..d0b7742ad6b 100644 --- a/js/js.translator/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJs.java +++ b/js/js.translator/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJs.java @@ -46,7 +46,7 @@ import org.jetbrains.jet.lang.resolve.ScriptBodyResolver; import org.jetbrains.annotations.NotNull; import javax.annotation.PreDestroy; -/* This file is generated by org.jetbrains.jet.di.AllInjectorsGenerator. DO NOT EDIT! */ +/* This file is generated by org.jetbrains.jet.generators.GenerateInjectors. DO NOT EDIT! */ public class InjectorForTopDownAnalyzerForJs { private TopDownAnalyzer topDownAnalyzer;