diff --git a/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForLazyResolveWithJava.java b/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForLazyResolveWithJava.java index fc7b4a64883..33cbfa26a05 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForLazyResolveWithJava.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForLazyResolveWithJava.java @@ -47,6 +47,7 @@ import org.jetbrains.jet.lang.resolve.calls.ArgumentTypeResolver; import org.jetbrains.jet.lang.types.expressions.ExpressionTypingServices; import org.jetbrains.jet.lang.types.expressions.ExpressionTypingComponents; import org.jetbrains.jet.lang.types.expressions.ControlStructureTypingUtils; +import org.jetbrains.jet.lang.types.DynamicTypesSettings; import org.jetbrains.jet.lang.types.expressions.ExpressionTypingUtils; import org.jetbrains.jet.lang.types.expressions.ForLoopConventionsChecker; import org.jetbrains.jet.lang.reflect.ReflectionTypes; @@ -55,7 +56,6 @@ import org.jetbrains.jet.lang.resolve.DescriptorResolver; import org.jetbrains.jet.lang.resolve.DelegatedPropertyResolver; import org.jetbrains.jet.lang.resolve.TypeResolver; import org.jetbrains.jet.lang.resolve.QualifiedExpressionResolver; -import org.jetbrains.jet.lang.types.DynamicTypesSettings; import org.jetbrains.jet.lang.resolve.calls.CallResolverExtensionProvider; import org.jetbrains.jet.lang.resolve.PartialBodyResolveProvider; import org.jetbrains.jet.lang.resolve.calls.CallCompleter; @@ -109,6 +109,7 @@ public class InjectorForLazyResolveWithJava { private final ExpressionTypingServices expressionTypingServices; private final ExpressionTypingComponents expressionTypingComponents; private final ControlStructureTypingUtils controlStructureTypingUtils; + private final DynamicTypesSettings dynamicTypesSettings; private final ExpressionTypingUtils expressionTypingUtils; private final ForLoopConventionsChecker forLoopConventionsChecker; private final ReflectionTypes reflectionTypes; @@ -117,7 +118,6 @@ public class InjectorForLazyResolveWithJava { private final DelegatedPropertyResolver delegatedPropertyResolver; private final TypeResolver typeResolver; private final QualifiedExpressionResolver qualifiedExpressionResolver; - private final DynamicTypesSettings dynamicTypesSettings; private final CallResolverExtensionProvider callResolverExtensionProvider; private final PartialBodyResolveProvider partialBodyResolveProvider; private final CallCompleter callCompleter; @@ -177,6 +177,7 @@ public class InjectorForLazyResolveWithJava { this.expressionTypingComponents = new ExpressionTypingComponents(); this.expressionTypingServices = new ExpressionTypingServices(expressionTypingComponents); this.controlStructureTypingUtils = new ControlStructureTypingUtils(expressionTypingServices); + this.dynamicTypesSettings = new DynamicTypesSettings(); this.expressionTypingUtils = new ExpressionTypingUtils(expressionTypingServices, callResolver); this.forLoopConventionsChecker = new ForLoopConventionsChecker(); this.reflectionTypes = new ReflectionTypes(module); @@ -184,7 +185,6 @@ public class InjectorForLazyResolveWithJava { this.descriptorResolver = new DescriptorResolver(); this.delegatedPropertyResolver = new DelegatedPropertyResolver(); this.qualifiedExpressionResolver = new QualifiedExpressionResolver(); - this.dynamicTypesSettings = new DynamicTypesSettings(); this.typeResolver = new TypeResolver(annotationResolver, qualifiedExpressionResolver, module, javaFlexibleTypeCapabilitiesProvider, storageManager, lazyResolveToken, dynamicTypesSettings); this.callResolverExtensionProvider = new CallResolverExtensionProvider(); this.partialBodyResolveProvider = new PartialBodyResolveProvider(); @@ -252,6 +252,7 @@ public class InjectorForLazyResolveWithJava { expressionTypingComponents.setAdditionalCheckerProvider(additionalCheckerProvider); expressionTypingComponents.setCallResolver(callResolver); expressionTypingComponents.setControlStructureTypingUtils(controlStructureTypingUtils); + expressionTypingComponents.setDynamicTypesSettings(dynamicTypesSettings); expressionTypingComponents.setExpressionTypingServices(expressionTypingServices); expressionTypingComponents.setExpressionTypingUtils(expressionTypingUtils); expressionTypingComponents.setForLoopConventionsChecker(forLoopConventionsChecker); diff --git a/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForReplWithJava.java b/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForReplWithJava.java index 197b5cb7963..94b40443ebc 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForReplWithJava.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForReplWithJava.java @@ -50,6 +50,7 @@ import org.jetbrains.jet.lang.resolve.calls.ArgumentTypeResolver; import org.jetbrains.jet.lang.types.expressions.ExpressionTypingServices; import org.jetbrains.jet.lang.types.expressions.ExpressionTypingComponents; import org.jetbrains.jet.lang.types.expressions.ControlStructureTypingUtils; +import org.jetbrains.jet.lang.types.DynamicTypesSettings; import org.jetbrains.jet.lang.types.expressions.ExpressionTypingUtils; import org.jetbrains.jet.lang.types.expressions.ForLoopConventionsChecker; import org.jetbrains.jet.lang.reflect.ReflectionTypes; @@ -59,7 +60,6 @@ import org.jetbrains.jet.lang.resolve.DelegatedPropertyResolver; import org.jetbrains.jet.lang.resolve.TypeResolver; import org.jetbrains.jet.lang.resolve.QualifiedExpressionResolver; import org.jetbrains.jet.context.LazinessToken; -import org.jetbrains.jet.lang.types.DynamicTypesSettings; import org.jetbrains.jet.lang.resolve.calls.CallResolverExtensionProvider; import org.jetbrains.jet.lang.resolve.PartialBodyResolveProvider; import org.jetbrains.jet.lang.resolve.calls.CallCompleter; @@ -126,6 +126,7 @@ public class InjectorForReplWithJava { private final ExpressionTypingServices expressionTypingServices; private final ExpressionTypingComponents expressionTypingComponents; private final ControlStructureTypingUtils controlStructureTypingUtils; + private final DynamicTypesSettings dynamicTypesSettings; private final ExpressionTypingUtils expressionTypingUtils; private final ForLoopConventionsChecker forLoopConventionsChecker; private final ReflectionTypes reflectionTypes; @@ -135,7 +136,6 @@ public class InjectorForReplWithJava { private final TypeResolver typeResolver; private final QualifiedExpressionResolver qualifiedExpressionResolver; private final LazinessToken lazinessToken; - private final DynamicTypesSettings dynamicTypesSettings; private final CallResolverExtensionProvider callResolverExtensionProvider; private final PartialBodyResolveProvider partialBodyResolveProvider; private final CallCompleter callCompleter; @@ -210,6 +210,7 @@ public class InjectorForReplWithJava { this.expressionTypingComponents = new ExpressionTypingComponents(); this.expressionTypingServices = new ExpressionTypingServices(expressionTypingComponents); this.controlStructureTypingUtils = new ControlStructureTypingUtils(expressionTypingServices); + this.dynamicTypesSettings = new DynamicTypesSettings(); this.expressionTypingUtils = new ExpressionTypingUtils(expressionTypingServices, callResolver); this.forLoopConventionsChecker = new ForLoopConventionsChecker(); this.reflectionTypes = new ReflectionTypes(module); @@ -218,7 +219,6 @@ public class InjectorForReplWithJava { this.delegatedPropertyResolver = new DelegatedPropertyResolver(); this.qualifiedExpressionResolver = new QualifiedExpressionResolver(); this.lazinessToken = new LazinessToken(); - this.dynamicTypesSettings = new DynamicTypesSettings(); this.typeResolver = new TypeResolver(annotationResolver, qualifiedExpressionResolver, module, javaFlexibleTypeCapabilitiesProvider, storageManager, lazinessToken, dynamicTypesSettings); this.callResolverExtensionProvider = new CallResolverExtensionProvider(); this.partialBodyResolveProvider = new PartialBodyResolveProvider(); @@ -305,6 +305,7 @@ public class InjectorForReplWithJava { expressionTypingComponents.setAdditionalCheckerProvider(additionalCheckerProvider); expressionTypingComponents.setCallResolver(callResolver); expressionTypingComponents.setControlStructureTypingUtils(controlStructureTypingUtils); + expressionTypingComponents.setDynamicTypesSettings(dynamicTypesSettings); expressionTypingComponents.setExpressionTypingServices(expressionTypingServices); expressionTypingComponents.setExpressionTypingUtils(expressionTypingUtils); expressionTypingComponents.setForLoopConventionsChecker(forLoopConventionsChecker); 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 2b187907308..d1701729c8e 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJvm.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJvm.java @@ -49,6 +49,7 @@ import org.jetbrains.jet.lang.resolve.calls.ArgumentTypeResolver; import org.jetbrains.jet.lang.types.expressions.ExpressionTypingServices; import org.jetbrains.jet.lang.types.expressions.ExpressionTypingComponents; import org.jetbrains.jet.lang.types.expressions.ControlStructureTypingUtils; +import org.jetbrains.jet.lang.types.DynamicTypesSettings; import org.jetbrains.jet.lang.types.expressions.ExpressionTypingUtils; import org.jetbrains.jet.lang.types.expressions.ForLoopConventionsChecker; import org.jetbrains.jet.lang.reflect.ReflectionTypes; @@ -58,7 +59,6 @@ import org.jetbrains.jet.lang.resolve.DelegatedPropertyResolver; import org.jetbrains.jet.lang.resolve.TypeResolver; import org.jetbrains.jet.lang.resolve.QualifiedExpressionResolver; import org.jetbrains.jet.context.LazinessToken; -import org.jetbrains.jet.lang.types.DynamicTypesSettings; import org.jetbrains.jet.lang.resolve.calls.CallResolverExtensionProvider; import org.jetbrains.jet.lang.resolve.PartialBodyResolveProvider; import org.jetbrains.jet.lang.resolve.calls.CallCompleter; @@ -125,6 +125,7 @@ public class InjectorForTopDownAnalyzerForJvm { private final ExpressionTypingServices expressionTypingServices; private final ExpressionTypingComponents expressionTypingComponents; private final ControlStructureTypingUtils controlStructureTypingUtils; + private final DynamicTypesSettings dynamicTypesSettings; private final ExpressionTypingUtils expressionTypingUtils; private final ForLoopConventionsChecker forLoopConventionsChecker; private final ReflectionTypes reflectionTypes; @@ -134,7 +135,6 @@ public class InjectorForTopDownAnalyzerForJvm { private final TypeResolver typeResolver; private final QualifiedExpressionResolver qualifiedExpressionResolver; private final LazinessToken lazinessToken; - private final DynamicTypesSettings dynamicTypesSettings; private final CallResolverExtensionProvider callResolverExtensionProvider; private final PartialBodyResolveProvider partialBodyResolveProvider; private final CallCompleter callCompleter; @@ -208,6 +208,7 @@ public class InjectorForTopDownAnalyzerForJvm { this.expressionTypingComponents = new ExpressionTypingComponents(); this.expressionTypingServices = new ExpressionTypingServices(expressionTypingComponents); this.controlStructureTypingUtils = new ControlStructureTypingUtils(expressionTypingServices); + this.dynamicTypesSettings = new DynamicTypesSettings(); this.expressionTypingUtils = new ExpressionTypingUtils(expressionTypingServices, callResolver); this.forLoopConventionsChecker = new ForLoopConventionsChecker(); this.reflectionTypes = new ReflectionTypes(module); @@ -216,7 +217,6 @@ public class InjectorForTopDownAnalyzerForJvm { this.delegatedPropertyResolver = new DelegatedPropertyResolver(); this.qualifiedExpressionResolver = new QualifiedExpressionResolver(); this.lazinessToken = new LazinessToken(); - this.dynamicTypesSettings = new DynamicTypesSettings(); this.typeResolver = new TypeResolver(annotationResolver, qualifiedExpressionResolver, module, javaFlexibleTypeCapabilitiesProvider, storageManager, lazinessToken, dynamicTypesSettings); this.callResolverExtensionProvider = new CallResolverExtensionProvider(); this.partialBodyResolveProvider = new PartialBodyResolveProvider(); @@ -304,6 +304,7 @@ public class InjectorForTopDownAnalyzerForJvm { expressionTypingComponents.setAdditionalCheckerProvider(additionalCheckerProvider); expressionTypingComponents.setCallResolver(callResolver); expressionTypingComponents.setControlStructureTypingUtils(controlStructureTypingUtils); + expressionTypingComponents.setDynamicTypesSettings(dynamicTypesSettings); expressionTypingComponents.setExpressionTypingServices(expressionTypingServices); expressionTypingComponents.setExpressionTypingUtils(expressionTypingUtils); expressionTypingComponents.setForLoopConventionsChecker(forLoopConventionsChecker); diff --git a/compiler/frontend/src/org/jetbrains/jet/di/InjectorForBodyResolve.java b/compiler/frontend/src/org/jetbrains/jet/di/InjectorForBodyResolve.java index a890c68ed2d..8c59514bc65 100644 --- a/compiler/frontend/src/org/jetbrains/jet/di/InjectorForBodyResolve.java +++ b/compiler/frontend/src/org/jetbrains/jet/di/InjectorForBodyResolve.java @@ -31,6 +31,7 @@ import org.jetbrains.jet.lang.resolve.calls.ArgumentTypeResolver; import org.jetbrains.jet.lang.types.expressions.ExpressionTypingServices; import org.jetbrains.jet.lang.types.expressions.ExpressionTypingComponents; import org.jetbrains.jet.lang.types.expressions.ControlStructureTypingUtils; +import org.jetbrains.jet.lang.types.DynamicTypesSettings; import org.jetbrains.jet.lang.types.expressions.ExpressionTypingUtils; import org.jetbrains.jet.lang.types.expressions.ForLoopConventionsChecker; import org.jetbrains.jet.lang.reflect.ReflectionTypes; @@ -41,7 +42,6 @@ import org.jetbrains.jet.lang.resolve.TypeResolver; import org.jetbrains.jet.lang.resolve.QualifiedExpressionResolver; import org.jetbrains.jet.lang.resolve.TypeResolver.FlexibleTypeCapabilitiesProvider; import org.jetbrains.jet.context.LazinessToken; -import org.jetbrains.jet.lang.types.DynamicTypesSettings; import org.jetbrains.jet.lang.resolve.calls.CallResolverExtensionProvider; import org.jetbrains.jet.lang.resolve.calls.CallCompleter; import org.jetbrains.jet.lang.resolve.calls.CandidateResolver; @@ -73,6 +73,7 @@ public class InjectorForBodyResolve { private final ExpressionTypingServices expressionTypingServices; private final ExpressionTypingComponents expressionTypingComponents; private final ControlStructureTypingUtils controlStructureTypingUtils; + private final DynamicTypesSettings dynamicTypesSettings; private final ExpressionTypingUtils expressionTypingUtils; private final ForLoopConventionsChecker forLoopConventionsChecker; private final ReflectionTypes reflectionTypes; @@ -83,7 +84,6 @@ public class InjectorForBodyResolve { private final QualifiedExpressionResolver qualifiedExpressionResolver; private final FlexibleTypeCapabilitiesProvider flexibleTypeCapabilitiesProvider; private final LazinessToken lazinessToken; - private final DynamicTypesSettings dynamicTypesSettings; private final CallResolverExtensionProvider callResolverExtensionProvider; private final CallCompleter callCompleter; private final CandidateResolver candidateResolver; @@ -117,6 +117,7 @@ public class InjectorForBodyResolve { this.expressionTypingComponents = new ExpressionTypingComponents(); this.expressionTypingServices = new ExpressionTypingServices(expressionTypingComponents); this.controlStructureTypingUtils = new ControlStructureTypingUtils(expressionTypingServices); + this.dynamicTypesSettings = new DynamicTypesSettings(); this.expressionTypingUtils = new ExpressionTypingUtils(expressionTypingServices, callResolver); this.forLoopConventionsChecker = new ForLoopConventionsChecker(); this.reflectionTypes = new ReflectionTypes(moduleDescriptor); @@ -126,7 +127,6 @@ public class InjectorForBodyResolve { this.qualifiedExpressionResolver = new QualifiedExpressionResolver(); this.flexibleTypeCapabilitiesProvider = new FlexibleTypeCapabilitiesProvider(); this.lazinessToken = new LazinessToken(); - this.dynamicTypesSettings = new DynamicTypesSettings(); this.typeResolver = new TypeResolver(annotationResolver, qualifiedExpressionResolver, moduleDescriptor, flexibleTypeCapabilitiesProvider, storageManager, lazinessToken, dynamicTypesSettings); this.callResolverExtensionProvider = new CallResolverExtensionProvider(); this.candidateResolver = new CandidateResolver(); @@ -174,6 +174,7 @@ public class InjectorForBodyResolve { expressionTypingComponents.setAdditionalCheckerProvider(additionalCheckerProvider); expressionTypingComponents.setCallResolver(callResolver); expressionTypingComponents.setControlStructureTypingUtils(controlStructureTypingUtils); + expressionTypingComponents.setDynamicTypesSettings(dynamicTypesSettings); expressionTypingComponents.setExpressionTypingServices(expressionTypingServices); expressionTypingComponents.setExpressionTypingUtils(expressionTypingUtils); expressionTypingComponents.setForLoopConventionsChecker(forLoopConventionsChecker); diff --git a/compiler/frontend/src/org/jetbrains/jet/di/InjectorForLazyBodyResolve.java b/compiler/frontend/src/org/jetbrains/jet/di/InjectorForLazyBodyResolve.java index 914210ef777..1754d0d730f 100644 --- a/compiler/frontend/src/org/jetbrains/jet/di/InjectorForLazyBodyResolve.java +++ b/compiler/frontend/src/org/jetbrains/jet/di/InjectorForLazyBodyResolve.java @@ -32,6 +32,7 @@ import org.jetbrains.jet.lang.resolve.calls.ArgumentTypeResolver; import org.jetbrains.jet.lang.types.expressions.ExpressionTypingServices; import org.jetbrains.jet.lang.types.expressions.ExpressionTypingComponents; import org.jetbrains.jet.lang.types.expressions.ControlStructureTypingUtils; +import org.jetbrains.jet.lang.types.DynamicTypesSettings; import org.jetbrains.jet.lang.types.expressions.ExpressionTypingUtils; import org.jetbrains.jet.lang.types.expressions.ForLoopConventionsChecker; import org.jetbrains.jet.lang.reflect.ReflectionTypes; @@ -42,7 +43,6 @@ import org.jetbrains.jet.lang.resolve.TypeResolver; import org.jetbrains.jet.lang.resolve.QualifiedExpressionResolver; import org.jetbrains.jet.lang.resolve.TypeResolver.FlexibleTypeCapabilitiesProvider; import org.jetbrains.jet.context.LazinessToken; -import org.jetbrains.jet.lang.types.DynamicTypesSettings; import org.jetbrains.jet.lang.resolve.calls.CallResolverExtensionProvider; import org.jetbrains.jet.lang.resolve.PartialBodyResolveProvider; import org.jetbrains.jet.lang.resolve.calls.CallCompleter; @@ -85,6 +85,7 @@ public class InjectorForLazyBodyResolve { private final ExpressionTypingServices expressionTypingServices; private final ExpressionTypingComponents expressionTypingComponents; private final ControlStructureTypingUtils controlStructureTypingUtils; + private final DynamicTypesSettings dynamicTypesSettings; private final ExpressionTypingUtils expressionTypingUtils; private final ForLoopConventionsChecker forLoopConventionsChecker; private final ReflectionTypes reflectionTypes; @@ -95,7 +96,6 @@ public class InjectorForLazyBodyResolve { private final QualifiedExpressionResolver qualifiedExpressionResolver; private final FlexibleTypeCapabilitiesProvider flexibleTypeCapabilitiesProvider; private final LazinessToken lazinessToken; - private final DynamicTypesSettings dynamicTypesSettings; private final CallResolverExtensionProvider callResolverExtensionProvider; private final PartialBodyResolveProvider partialBodyResolveProvider; private final CallCompleter callCompleter; @@ -139,6 +139,7 @@ public class InjectorForLazyBodyResolve { this.expressionTypingComponents = new ExpressionTypingComponents(); this.expressionTypingServices = new ExpressionTypingServices(expressionTypingComponents); this.controlStructureTypingUtils = new ControlStructureTypingUtils(expressionTypingServices); + this.dynamicTypesSettings = new DynamicTypesSettings(); this.expressionTypingUtils = new ExpressionTypingUtils(expressionTypingServices, callResolver); this.forLoopConventionsChecker = new ForLoopConventionsChecker(); this.reflectionTypes = new ReflectionTypes(moduleDescriptor); @@ -148,7 +149,6 @@ public class InjectorForLazyBodyResolve { this.qualifiedExpressionResolver = new QualifiedExpressionResolver(); this.flexibleTypeCapabilitiesProvider = new FlexibleTypeCapabilitiesProvider(); this.lazinessToken = new LazinessToken(); - this.dynamicTypesSettings = new DynamicTypesSettings(); this.typeResolver = new TypeResolver(annotationResolver, qualifiedExpressionResolver, moduleDescriptor, flexibleTypeCapabilitiesProvider, storageManager, lazinessToken, dynamicTypesSettings); this.callResolverExtensionProvider = new CallResolverExtensionProvider(); this.partialBodyResolveProvider = new PartialBodyResolveProvider(); @@ -215,6 +215,7 @@ public class InjectorForLazyBodyResolve { expressionTypingComponents.setAdditionalCheckerProvider(additionalCheckerProvider); expressionTypingComponents.setCallResolver(callResolver); expressionTypingComponents.setControlStructureTypingUtils(controlStructureTypingUtils); + expressionTypingComponents.setDynamicTypesSettings(dynamicTypesSettings); expressionTypingComponents.setExpressionTypingServices(expressionTypingServices); expressionTypingComponents.setExpressionTypingUtils(expressionTypingUtils); expressionTypingComponents.setForLoopConventionsChecker(forLoopConventionsChecker); diff --git a/compiler/frontend/src/org/jetbrains/jet/di/InjectorForLazyResolve.java b/compiler/frontend/src/org/jetbrains/jet/di/InjectorForLazyResolve.java index 1b317012a67..d8aa816310b 100644 --- a/compiler/frontend/src/org/jetbrains/jet/di/InjectorForLazyResolve.java +++ b/compiler/frontend/src/org/jetbrains/jet/di/InjectorForLazyResolve.java @@ -32,6 +32,7 @@ import org.jetbrains.jet.lang.resolve.calls.ArgumentTypeResolver; import org.jetbrains.jet.lang.types.expressions.ExpressionTypingServices; import org.jetbrains.jet.lang.types.expressions.ExpressionTypingComponents; import org.jetbrains.jet.lang.types.expressions.ControlStructureTypingUtils; +import org.jetbrains.jet.lang.types.DynamicTypesSettings; import org.jetbrains.jet.lang.types.expressions.ExpressionTypingUtils; import org.jetbrains.jet.lang.types.expressions.ForLoopConventionsChecker; import org.jetbrains.jet.lang.reflect.ReflectionTypes; @@ -41,7 +42,6 @@ import org.jetbrains.jet.lang.resolve.DelegatedPropertyResolver; import org.jetbrains.jet.lang.resolve.TypeResolver; import org.jetbrains.jet.lang.resolve.QualifiedExpressionResolver; import org.jetbrains.jet.lang.resolve.TypeResolver.FlexibleTypeCapabilitiesProvider; -import org.jetbrains.jet.lang.types.DynamicTypesSettings; import org.jetbrains.jet.lang.resolve.calls.CallResolverExtensionProvider; import org.jetbrains.jet.lang.resolve.PartialBodyResolveProvider; import org.jetbrains.jet.lang.resolve.calls.CallCompleter; @@ -74,6 +74,7 @@ public class InjectorForLazyResolve { private final ExpressionTypingServices expressionTypingServices; private final ExpressionTypingComponents expressionTypingComponents; private final ControlStructureTypingUtils controlStructureTypingUtils; + private final DynamicTypesSettings dynamicTypesSettings; private final ExpressionTypingUtils expressionTypingUtils; private final ForLoopConventionsChecker forLoopConventionsChecker; private final ReflectionTypes reflectionTypes; @@ -83,7 +84,6 @@ public class InjectorForLazyResolve { private final TypeResolver typeResolver; private final QualifiedExpressionResolver qualifiedExpressionResolver; private final FlexibleTypeCapabilitiesProvider flexibleTypeCapabilitiesProvider; - private final DynamicTypesSettings dynamicTypesSettings; private final CallResolverExtensionProvider callResolverExtensionProvider; private final PartialBodyResolveProvider partialBodyResolveProvider; private final CallCompleter callCompleter; @@ -118,6 +118,7 @@ public class InjectorForLazyResolve { this.expressionTypingComponents = new ExpressionTypingComponents(); this.expressionTypingServices = new ExpressionTypingServices(expressionTypingComponents); this.controlStructureTypingUtils = new ControlStructureTypingUtils(expressionTypingServices); + this.dynamicTypesSettings = new DynamicTypesSettings(); this.expressionTypingUtils = new ExpressionTypingUtils(expressionTypingServices, callResolver); this.forLoopConventionsChecker = new ForLoopConventionsChecker(); this.reflectionTypes = new ReflectionTypes(moduleDescriptor); @@ -126,7 +127,6 @@ public class InjectorForLazyResolve { this.delegatedPropertyResolver = new DelegatedPropertyResolver(); this.qualifiedExpressionResolver = new QualifiedExpressionResolver(); this.flexibleTypeCapabilitiesProvider = new FlexibleTypeCapabilitiesProvider(); - this.dynamicTypesSettings = new DynamicTypesSettings(); this.typeResolver = new TypeResolver(annotationResolver, qualifiedExpressionResolver, moduleDescriptor, flexibleTypeCapabilitiesProvider, storageManager, lazyResolveToken, dynamicTypesSettings); this.callResolverExtensionProvider = new CallResolverExtensionProvider(); this.partialBodyResolveProvider = new PartialBodyResolveProvider(); @@ -172,6 +172,7 @@ public class InjectorForLazyResolve { expressionTypingComponents.setAdditionalCheckerProvider(additionalCheckerProvider); expressionTypingComponents.setCallResolver(callResolver); expressionTypingComponents.setControlStructureTypingUtils(controlStructureTypingUtils); + expressionTypingComponents.setDynamicTypesSettings(dynamicTypesSettings); expressionTypingComponents.setExpressionTypingServices(expressionTypingServices); expressionTypingComponents.setExpressionTypingUtils(expressionTypingUtils); expressionTypingComponents.setForLoopConventionsChecker(forLoopConventionsChecker); diff --git a/compiler/frontend/src/org/jetbrains/jet/di/InjectorForLazyTopDownAnalyzerBasic.java b/compiler/frontend/src/org/jetbrains/jet/di/InjectorForLazyTopDownAnalyzerBasic.java index fbd7a58334d..2fab49be566 100644 --- a/compiler/frontend/src/org/jetbrains/jet/di/InjectorForLazyTopDownAnalyzerBasic.java +++ b/compiler/frontend/src/org/jetbrains/jet/di/InjectorForLazyTopDownAnalyzerBasic.java @@ -32,6 +32,7 @@ import org.jetbrains.jet.lang.resolve.calls.ArgumentTypeResolver; import org.jetbrains.jet.lang.types.expressions.ExpressionTypingServices; import org.jetbrains.jet.lang.types.expressions.ExpressionTypingComponents; import org.jetbrains.jet.lang.types.expressions.ControlStructureTypingUtils; +import org.jetbrains.jet.lang.types.DynamicTypesSettings; import org.jetbrains.jet.lang.types.expressions.ExpressionTypingUtils; import org.jetbrains.jet.lang.types.expressions.ForLoopConventionsChecker; import org.jetbrains.jet.lang.reflect.ReflectionTypes; @@ -42,7 +43,6 @@ import org.jetbrains.jet.lang.resolve.TypeResolver; import org.jetbrains.jet.lang.resolve.QualifiedExpressionResolver; import org.jetbrains.jet.lang.resolve.TypeResolver.FlexibleTypeCapabilitiesProvider; import org.jetbrains.jet.context.LazinessToken; -import org.jetbrains.jet.lang.types.DynamicTypesSettings; import org.jetbrains.jet.lang.resolve.calls.CallResolverExtensionProvider; import org.jetbrains.jet.lang.resolve.PartialBodyResolveProvider; import org.jetbrains.jet.lang.resolve.calls.CallCompleter; @@ -88,6 +88,7 @@ public class InjectorForLazyTopDownAnalyzerBasic { private final ExpressionTypingServices expressionTypingServices; private final ExpressionTypingComponents expressionTypingComponents; private final ControlStructureTypingUtils controlStructureTypingUtils; + private final DynamicTypesSettings dynamicTypesSettings; private final ExpressionTypingUtils expressionTypingUtils; private final ForLoopConventionsChecker forLoopConventionsChecker; private final ReflectionTypes reflectionTypes; @@ -98,7 +99,6 @@ public class InjectorForLazyTopDownAnalyzerBasic { private final QualifiedExpressionResolver qualifiedExpressionResolver; private final FlexibleTypeCapabilitiesProvider flexibleTypeCapabilitiesProvider; private final LazinessToken lazinessToken; - private final DynamicTypesSettings dynamicTypesSettings; private final CallResolverExtensionProvider callResolverExtensionProvider; private final PartialBodyResolveProvider partialBodyResolveProvider; private final CallCompleter callCompleter; @@ -145,6 +145,7 @@ public class InjectorForLazyTopDownAnalyzerBasic { this.expressionTypingComponents = new ExpressionTypingComponents(); this.expressionTypingServices = new ExpressionTypingServices(expressionTypingComponents); this.controlStructureTypingUtils = new ControlStructureTypingUtils(expressionTypingServices); + this.dynamicTypesSettings = new DynamicTypesSettings(); this.expressionTypingUtils = new ExpressionTypingUtils(expressionTypingServices, callResolver); this.forLoopConventionsChecker = new ForLoopConventionsChecker(); this.reflectionTypes = new ReflectionTypes(module); @@ -154,7 +155,6 @@ public class InjectorForLazyTopDownAnalyzerBasic { this.qualifiedExpressionResolver = new QualifiedExpressionResolver(); this.flexibleTypeCapabilitiesProvider = new FlexibleTypeCapabilitiesProvider(); this.lazinessToken = new LazinessToken(); - this.dynamicTypesSettings = new DynamicTypesSettings(); this.typeResolver = new TypeResolver(annotationResolver, qualifiedExpressionResolver, module, flexibleTypeCapabilitiesProvider, storageManager, lazinessToken, dynamicTypesSettings); this.callResolverExtensionProvider = new CallResolverExtensionProvider(); this.partialBodyResolveProvider = new PartialBodyResolveProvider(); @@ -222,6 +222,7 @@ public class InjectorForLazyTopDownAnalyzerBasic { expressionTypingComponents.setAdditionalCheckerProvider(additionalCheckerProvider); expressionTypingComponents.setCallResolver(callResolver); expressionTypingComponents.setControlStructureTypingUtils(controlStructureTypingUtils); + expressionTypingComponents.setDynamicTypesSettings(dynamicTypesSettings); expressionTypingComponents.setExpressionTypingServices(expressionTypingServices); expressionTypingComponents.setExpressionTypingUtils(expressionTypingUtils); expressionTypingComponents.setForLoopConventionsChecker(forLoopConventionsChecker); diff --git a/compiler/frontend/src/org/jetbrains/jet/di/InjectorForMacros.java b/compiler/frontend/src/org/jetbrains/jet/di/InjectorForMacros.java index faf58ac5fd1..239252a306c 100644 --- a/compiler/frontend/src/org/jetbrains/jet/di/InjectorForMacros.java +++ b/compiler/frontend/src/org/jetbrains/jet/di/InjectorForMacros.java @@ -125,6 +125,7 @@ public class InjectorForMacros { this.expressionTypingComponents.setAdditionalCheckerProvider(additionalCheckerProvider); this.expressionTypingComponents.setCallResolver(callResolver); this.expressionTypingComponents.setControlStructureTypingUtils(controlStructureTypingUtils); + this.expressionTypingComponents.setDynamicTypesSettings(dynamicTypesSettings); this.expressionTypingComponents.setExpressionTypingServices(expressionTypingServices); this.expressionTypingComponents.setExpressionTypingUtils(expressionTypingUtils); this.expressionTypingComponents.setForLoopConventionsChecker(forLoopConventionsChecker); diff --git a/compiler/frontend/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerBasic.java b/compiler/frontend/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerBasic.java index adae5cee072..34ecc9ae7d8 100644 --- a/compiler/frontend/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerBasic.java +++ b/compiler/frontend/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerBasic.java @@ -25,6 +25,7 @@ import org.jetbrains.jet.lang.PlatformToKotlinClassMap; import org.jetbrains.jet.lang.resolve.TopDownAnalyzer; import org.jetbrains.jet.lang.resolve.MutablePackageFragmentProvider; import org.jetbrains.jet.lang.resolve.AdditionalCheckerProvider; +import org.jetbrains.jet.lang.types.DynamicTypesSettings; import org.jetbrains.jet.lang.resolve.BodyResolver; import org.jetbrains.jet.lang.resolve.AnnotationResolver; import org.jetbrains.jet.lang.resolve.calls.CallResolver; @@ -42,7 +43,6 @@ import org.jetbrains.jet.lang.resolve.TypeResolver; import org.jetbrains.jet.lang.resolve.QualifiedExpressionResolver; import org.jetbrains.jet.lang.resolve.TypeResolver.FlexibleTypeCapabilitiesProvider; import org.jetbrains.jet.context.LazinessToken; -import org.jetbrains.jet.lang.types.DynamicTypesSettings; import org.jetbrains.jet.lang.resolve.calls.CallResolverExtensionProvider; import org.jetbrains.jet.lang.resolve.PartialBodyResolveProvider; import org.jetbrains.jet.lang.resolve.calls.CallCompleter; @@ -76,6 +76,7 @@ public class InjectorForTopDownAnalyzerBasic { private final TopDownAnalyzer topDownAnalyzer; private final MutablePackageFragmentProvider mutablePackageFragmentProvider; private final AdditionalCheckerProvider additionalCheckerProvider; + private final DynamicTypesSettings dynamicTypesSettings; private final BodyResolver bodyResolver; private final AnnotationResolver annotationResolver; private final CallResolver callResolver; @@ -93,7 +94,6 @@ public class InjectorForTopDownAnalyzerBasic { private final QualifiedExpressionResolver qualifiedExpressionResolver; private final FlexibleTypeCapabilitiesProvider flexibleTypeCapabilitiesProvider; private final LazinessToken lazinessToken; - private final DynamicTypesSettings dynamicTypesSettings; private final CallResolverExtensionProvider callResolverExtensionProvider; private final PartialBodyResolveProvider partialBodyResolveProvider; private final CallCompleter callCompleter; @@ -117,7 +117,8 @@ public class InjectorForTopDownAnalyzerBasic { @NotNull GlobalContext globalContext, @NotNull BindingTrace bindingTrace, @NotNull ModuleDescriptor moduleDescriptor, - @NotNull AdditionalCheckerProvider additionalCheckerProvider + @NotNull AdditionalCheckerProvider additionalCheckerProvider, + @NotNull DynamicTypesSettings dynamicTypesSettings ) { this.project = project; this.globalContext = globalContext; @@ -128,6 +129,7 @@ public class InjectorForTopDownAnalyzerBasic { this.topDownAnalyzer = new TopDownAnalyzer(); this.mutablePackageFragmentProvider = new MutablePackageFragmentProvider(getModuleDescriptor()); this.additionalCheckerProvider = additionalCheckerProvider; + this.dynamicTypesSettings = dynamicTypesSettings; this.bodyResolver = new BodyResolver(); this.annotationResolver = new AnnotationResolver(); this.callResolver = new CallResolver(); @@ -144,7 +146,6 @@ public class InjectorForTopDownAnalyzerBasic { this.qualifiedExpressionResolver = new QualifiedExpressionResolver(); this.flexibleTypeCapabilitiesProvider = new FlexibleTypeCapabilitiesProvider(); this.lazinessToken = new LazinessToken(); - this.dynamicTypesSettings = new DynamicTypesSettings(); this.typeResolver = new TypeResolver(annotationResolver, qualifiedExpressionResolver, getModuleDescriptor(), flexibleTypeCapabilitiesProvider, storageManager, lazinessToken, dynamicTypesSettings); this.callResolverExtensionProvider = new CallResolverExtensionProvider(); this.partialBodyResolveProvider = new PartialBodyResolveProvider(); @@ -208,6 +209,7 @@ public class InjectorForTopDownAnalyzerBasic { expressionTypingComponents.setAdditionalCheckerProvider(additionalCheckerProvider); expressionTypingComponents.setCallResolver(callResolver); expressionTypingComponents.setControlStructureTypingUtils(controlStructureTypingUtils); + expressionTypingComponents.setDynamicTypesSettings(dynamicTypesSettings); expressionTypingComponents.setExpressionTypingServices(expressionTypingServices); expressionTypingComponents.setExpressionTypingUtils(expressionTypingUtils); expressionTypingComponents.setForLoopConventionsChecker(forLoopConventionsChecker); diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ClosureExpressionsTypingVisitor.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ClosureExpressionsTypingVisitor.java index dbf8374ddec..e6950100ef6 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ClosureExpressionsTypingVisitor.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ClosureExpressionsTypingVisitor.java @@ -91,7 +91,8 @@ public class ClosureExpressionsTypingVisitor extends ExpressionTypingVisitor { context.replaceBindingTrace(traceAdapter).replaceContextDependency(INDEPENDENT), context.scope.getContainingDeclaration(), expression.getObjectDeclaration(), - components.additionalCheckerProvider); + components.additionalCheckerProvider, + components.dynamicTypesSettings); DelegatingBindingTrace cloneDelta = new DelegatingBindingTrace( new BindingTraceContext().getBindingContext(), "cached delta trace for object literal expression resolve", expression); diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingComponents.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingComponents.java index b051fb0df46..96e897954b6 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingComponents.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingComponents.java @@ -22,6 +22,7 @@ import org.jetbrains.jet.lang.PlatformToKotlinClassMap; import org.jetbrains.jet.lang.reflect.ReflectionTypes; import org.jetbrains.jet.lang.resolve.AdditionalCheckerProvider; import org.jetbrains.jet.lang.resolve.calls.CallResolver; +import org.jetbrains.jet.lang.types.DynamicTypesSettings; import javax.inject.Inject; @@ -35,6 +36,7 @@ public class ExpressionTypingComponents { /*package*/ ForLoopConventionsChecker forLoopConventionsChecker; /*package*/ ReflectionTypes reflectionTypes; /*package*/ AdditionalCheckerProvider additionalCheckerProvider; + /*package*/ DynamicTypesSettings dynamicTypesSettings; @Inject public void setGlobalContext(@NotNull GlobalContext globalContext) { @@ -81,6 +83,11 @@ public class ExpressionTypingComponents { this.additionalCheckerProvider = additionalCheckerProvider; } + @Inject + public void setDynamicTypesSettings(@NotNull DynamicTypesSettings dynamicTypesSettings) { + this.dynamicTypesSettings = dynamicTypesSettings; + } + @NotNull public ForLoopConventionsChecker getForLoopConventionsChecker() { return forLoopConventionsChecker; diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingVisitorForStatements.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingVisitorForStatements.java index 2371d840695..ea35d6f8f82 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingVisitorForStatements.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingVisitorForStatements.java @@ -88,7 +88,8 @@ public class ExpressionTypingVisitorForStatements extends ExpressionTypingVisito LocalClassifierAnalyzer.processClassOrObject( components.globalContext, scope, context.replaceScope(scope).replaceContextDependency(INDEPENDENT), scope.getContainingDeclaration(), declaration, - components.additionalCheckerProvider); + components.additionalCheckerProvider, + components.dynamicTypesSettings); return DataFlowUtils.checkStatementType(declaration, context, context.dataFlowInfo); } @@ -185,7 +186,8 @@ public class ExpressionTypingVisitorForStatements extends ExpressionTypingVisito LocalClassifierAnalyzer.processClassOrObject( components.globalContext, scope, context.replaceScope(scope).replaceContextDependency(INDEPENDENT), scope.getContainingDeclaration(), klass, - components.additionalCheckerProvider); + components.additionalCheckerProvider, + components.dynamicTypesSettings); return DataFlowUtils.checkStatementType(klass, context, context.dataFlowInfo); } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/LocalClassifierAnalyzer.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/LocalClassifierAnalyzer.java index 0dccbfa443d..857b92ce749 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/LocalClassifierAnalyzer.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/LocalClassifierAnalyzer.java @@ -33,6 +33,7 @@ import org.jetbrains.jet.lang.resolve.DescriptorUtils; import org.jetbrains.jet.lang.resolve.TopDownAnalysisContext; import org.jetbrains.jet.lang.resolve.TopDownAnalysisParameters; import org.jetbrains.jet.lang.resolve.scopes.WritableScope; +import org.jetbrains.jet.lang.types.DynamicTypesSettings; import java.util.Collections; @@ -43,7 +44,8 @@ import java.util.Collections; @NotNull ExpressionTypingContext context, @NotNull final DeclarationDescriptor containingDeclaration, @NotNull JetClassOrObject object, - @NotNull AdditionalCheckerProvider additionalCheckerProvider + @NotNull AdditionalCheckerProvider additionalCheckerProvider, + @NotNull DynamicTypesSettings dynamicTypesSettings ) { TopDownAnalysisParameters topDownAnalysisParameters = TopDownAnalysisParameters.createForLocalDeclarations( @@ -57,7 +59,8 @@ import java.util.Collections; topDownAnalysisParameters, context.trace, DescriptorUtils.getContainingModule(containingDeclaration), - additionalCheckerProvider + additionalCheckerProvider, + dynamicTypesSettings ); TopDownAnalysisContext c = new TopDownAnalysisContext(topDownAnalysisParameters); diff --git a/compiler/testData/diagnostics/tests/dynamicTypes/unsupported.kt b/compiler/testData/diagnostics/tests/dynamicTypes/unsupported.kt index 138958f212a..11978b9846e 100644 --- a/compiler/testData/diagnostics/tests/dynamicTypes/unsupported.kt +++ b/compiler/testData/diagnostics/tests/dynamicTypes/unsupported.kt @@ -1 +1,21 @@ -val foo: dynamic = 1 \ No newline at end of file +// MODULE[jvm]: m1 +// FILE: k.kt + +val foo: dynamic = 1 + +fun foo() { + class C { + val foo: dynamic = 1 + } +} + +// MODULE[js]: m2 +// FILE: k.kt + +val foo: dynamic = 1 + +fun foo() { + class C { + val foo: dynamic = 1 + } +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/dynamicTypes/unsupported.txt b/compiler/testData/diagnostics/tests/dynamicTypes/unsupported.txt index b683ae4d819..7c82f932956 100644 --- a/compiler/testData/diagnostics/tests/dynamicTypes/unsupported.txt +++ b/compiler/testData/diagnostics/tests/dynamicTypes/unsupported.txt @@ -1,3 +1,14 @@ +// -- Module: -- package internal val foo: dynamic = 1 +internal fun foo(): kotlin.Unit + + +// -- Module: -- +package + +internal val foo: dynamic = 1 +internal fun foo(): kotlin.Unit + + diff --git a/compiler/tests/org/jetbrains/jet/di/InjectorForTests.java b/compiler/tests/org/jetbrains/jet/di/InjectorForTests.java index 08fba5b6ec2..b7db5e53a42 100644 --- a/compiler/tests/org/jetbrains/jet/di/InjectorForTests.java +++ b/compiler/tests/org/jetbrains/jet/di/InjectorForTests.java @@ -35,6 +35,7 @@ import org.jetbrains.jet.lang.resolve.calls.tasks.TaskPrioritizer; import org.jetbrains.jet.lang.resolve.DelegatedPropertyResolver; import org.jetbrains.jet.lang.types.expressions.ExpressionTypingComponents; import org.jetbrains.jet.lang.types.expressions.ControlStructureTypingUtils; +import org.jetbrains.jet.lang.types.DynamicTypesSettings; import org.jetbrains.jet.lang.types.expressions.ForLoopConventionsChecker; import org.jetbrains.jet.lang.reflect.ReflectionTypes; import org.jetbrains.jet.lang.resolve.calls.CallExpressionResolver; @@ -43,7 +44,6 @@ import org.jetbrains.jet.lang.resolve.PartialBodyResolveProvider; import org.jetbrains.jet.lang.resolve.QualifiedExpressionResolver; import org.jetbrains.jet.lang.resolve.TypeResolver.FlexibleTypeCapabilitiesProvider; import org.jetbrains.jet.context.LazinessToken; -import org.jetbrains.jet.lang.types.DynamicTypesSettings; import org.jetbrains.annotations.NotNull; import javax.annotation.PreDestroy; @@ -70,6 +70,7 @@ public class InjectorForTests { private final DelegatedPropertyResolver delegatedPropertyResolver; private final ExpressionTypingComponents expressionTypingComponents; private final ControlStructureTypingUtils controlStructureTypingUtils; + private final DynamicTypesSettings dynamicTypesSettings; private final ForLoopConventionsChecker forLoopConventionsChecker; private final ReflectionTypes reflectionTypes; private final CallExpressionResolver callExpressionResolver; @@ -78,7 +79,6 @@ public class InjectorForTests { private final QualifiedExpressionResolver qualifiedExpressionResolver; private final FlexibleTypeCapabilitiesProvider flexibleTypeCapabilitiesProvider; private final LazinessToken lazinessToken; - private final DynamicTypesSettings dynamicTypesSettings; public InjectorForTests( @NotNull Project project, @@ -150,6 +150,7 @@ public class InjectorForTests { expressionTypingComponents.setAdditionalCheckerProvider(additionalCheckerProvider); expressionTypingComponents.setCallResolver(callResolver); expressionTypingComponents.setControlStructureTypingUtils(controlStructureTypingUtils); + expressionTypingComponents.setDynamicTypesSettings(dynamicTypesSettings); expressionTypingComponents.setExpressionTypingServices(expressionTypingServices); expressionTypingComponents.setExpressionTypingUtils(expressionTypingUtils); expressionTypingComponents.setForLoopConventionsChecker(forLoopConventionsChecker); diff --git a/generators/src/org/jetbrains/jet/generators/injectors/GenerateInjectors.kt b/generators/src/org/jetbrains/jet/generators/injectors/GenerateInjectors.kt index f8e8d85787a..4174922cfb7 100644 --- a/generators/src/org/jetbrains/jet/generators/injectors/GenerateInjectors.kt +++ b/generators/src/org/jetbrains/jet/generators/injectors/GenerateInjectors.kt @@ -50,6 +50,7 @@ import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolverPostConstruct import org.jetbrains.jet.lang.resolve.lazy.ScopeProvider import org.jetbrains.k2js.resolve.KotlinJsDeclarationCheckerProvider import org.jetbrains.jet.lang.types.DynamicTypesAllowed +import org.jetbrains.jet.lang.types.DynamicTypesSettings // NOTE: After making changes, you need to re-generate the injectors. // To do that, you can run main in this file. @@ -95,6 +96,7 @@ private fun generatorForTopDownAnalyzerBasic() = field(javaClass()) parameter(javaClass()) + parameter(javaClass()) } private fun generatorForLazyTopDownAnalyzerBasic() = diff --git a/js/js.frontend/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJs.java b/js/js.frontend/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJs.java index af385f1e2ba..4d38016cd5a 100644 --- a/js/js.frontend/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJs.java +++ b/js/js.frontend/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJs.java @@ -222,6 +222,7 @@ public class InjectorForTopDownAnalyzerForJs { expressionTypingComponents.setAdditionalCheckerProvider(additionalCheckerProvider); expressionTypingComponents.setCallResolver(callResolver); expressionTypingComponents.setControlStructureTypingUtils(controlStructureTypingUtils); + expressionTypingComponents.setDynamicTypesSettings(dynamicTypesAllowed); expressionTypingComponents.setExpressionTypingServices(expressionTypingServices); expressionTypingComponents.setExpressionTypingUtils(expressionTypingUtils); expressionTypingComponents.setForLoopConventionsChecker(forLoopConventionsChecker);