Drop JetTypeName and related code
This commit is contained in:
@@ -18,24 +18,21 @@ package org.jetbrains.jet.cli.jvm.compiler;
|
|||||||
|
|
||||||
import org.jetbrains.jet.lang.resolve.AnalyzerScriptParameter;
|
import org.jetbrains.jet.lang.resolve.AnalyzerScriptParameter;
|
||||||
import org.jetbrains.jet.lang.resolve.name.Name;
|
import org.jetbrains.jet.lang.resolve.name.Name;
|
||||||
import org.jetbrains.jet.lang.types.ref.JetTypeName;
|
import org.jetbrains.jet.lang.types.JetType;
|
||||||
|
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static org.jetbrains.jet.lang.types.lang.KotlinBuiltIns.BUILT_INS_PACKAGE_FQ_NAME;
|
|
||||||
|
|
||||||
public class CommandLineScriptUtils {
|
public class CommandLineScriptUtils {
|
||||||
private static final Name ARGS_NAME = Name.identifier("args");
|
private static final Name ARGS_NAME = Name.identifier("args");
|
||||||
|
|
||||||
private static final JetTypeName ARGS_TYPE =
|
|
||||||
JetTypeName.parse(BUILT_INS_PACKAGE_FQ_NAME + ".Array<" + BUILT_INS_PACKAGE_FQ_NAME + ".String>");
|
|
||||||
|
|
||||||
private CommandLineScriptUtils() {
|
private CommandLineScriptUtils() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static List<AnalyzerScriptParameter> scriptParameters() {
|
public static List<AnalyzerScriptParameter> scriptParameters() {
|
||||||
AnalyzerScriptParameter argsParameter = new AnalyzerScriptParameter(ARGS_NAME, ARGS_TYPE);
|
JetType arrayOfStrings = KotlinBuiltIns.getInstance().getArrayType(KotlinBuiltIns.getInstance().getStringType());
|
||||||
|
AnalyzerScriptParameter argsParameter = new AnalyzerScriptParameter(ARGS_NAME, arrayOfStrings);
|
||||||
return Collections.singletonList(argsParameter);
|
return Collections.singletonList(argsParameter);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -53,7 +53,6 @@ import org.jetbrains.jet.lang.resolve.calls.CandidateResolver;
|
|||||||
import org.jetbrains.jet.lang.psi.JetImportsFactory;
|
import org.jetbrains.jet.lang.psi.JetImportsFactory;
|
||||||
import org.jetbrains.jet.lang.resolve.lazy.ScopeProvider;
|
import org.jetbrains.jet.lang.resolve.lazy.ScopeProvider;
|
||||||
import org.jetbrains.jet.lang.resolve.ScriptBodyResolver;
|
import org.jetbrains.jet.lang.resolve.ScriptBodyResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.ScriptParameterResolver;
|
|
||||||
import org.jetbrains.jet.lang.resolve.java.lazy.LazyJavaPackageFragmentProvider;
|
import org.jetbrains.jet.lang.resolve.java.lazy.LazyJavaPackageFragmentProvider;
|
||||||
import org.jetbrains.jet.lang.resolve.java.lazy.GlobalJavaResolverContext;
|
import org.jetbrains.jet.lang.resolve.java.lazy.GlobalJavaResolverContext;
|
||||||
import org.jetbrains.jet.lang.resolve.kotlin.DeserializedDescriptorResolver;
|
import org.jetbrains.jet.lang.resolve.kotlin.DeserializedDescriptorResolver;
|
||||||
@@ -105,7 +104,6 @@ public class InjectorForLazyResolveWithJava {
|
|||||||
private final JetImportsFactory jetImportsFactory;
|
private final JetImportsFactory jetImportsFactory;
|
||||||
private final ScopeProvider scopeProvider;
|
private final ScopeProvider scopeProvider;
|
||||||
private final ScriptBodyResolver scriptBodyResolver;
|
private final ScriptBodyResolver scriptBodyResolver;
|
||||||
private final ScriptParameterResolver scriptParameterResolver;
|
|
||||||
private final LazyJavaPackageFragmentProvider lazyJavaPackageFragmentProvider;
|
private final LazyJavaPackageFragmentProvider lazyJavaPackageFragmentProvider;
|
||||||
private final GlobalJavaResolverContext globalJavaResolverContext;
|
private final GlobalJavaResolverContext globalJavaResolverContext;
|
||||||
private final DeserializedDescriptorResolver deserializedDescriptorResolver;
|
private final DeserializedDescriptorResolver deserializedDescriptorResolver;
|
||||||
@@ -160,7 +158,6 @@ public class InjectorForLazyResolveWithJava {
|
|||||||
this.jetImportsFactory = new JetImportsFactory();
|
this.jetImportsFactory = new JetImportsFactory();
|
||||||
this.scopeProvider = new ScopeProvider(getResolveSession());
|
this.scopeProvider = new ScopeProvider(getResolveSession());
|
||||||
this.scriptBodyResolver = new ScriptBodyResolver();
|
this.scriptBodyResolver = new ScriptBodyResolver();
|
||||||
this.scriptParameterResolver = new ScriptParameterResolver();
|
|
||||||
this.descriptorDeserializers = new DescriptorDeserializers();
|
this.descriptorDeserializers = new DescriptorDeserializers();
|
||||||
this.annotationDescriptorDeserializer = new AnnotationDescriptorDeserializer();
|
this.annotationDescriptorDeserializer = new AnnotationDescriptorDeserializer();
|
||||||
this.descriptorDeserializersStorage = new DescriptorDeserializersStorage(lockBasedStorageManager);
|
this.descriptorDeserializersStorage = new DescriptorDeserializersStorage(lockBasedStorageManager);
|
||||||
@@ -172,7 +169,6 @@ public class InjectorForLazyResolveWithJava {
|
|||||||
this.resolveSession.setQualifiedExpressionResolver(qualifiedExpressionResolver);
|
this.resolveSession.setQualifiedExpressionResolver(qualifiedExpressionResolver);
|
||||||
this.resolveSession.setScopeProvider(scopeProvider);
|
this.resolveSession.setScopeProvider(scopeProvider);
|
||||||
this.resolveSession.setScriptBodyResolver(scriptBodyResolver);
|
this.resolveSession.setScriptBodyResolver(scriptBodyResolver);
|
||||||
this.resolveSession.setScriptParameterResolver(scriptParameterResolver);
|
|
||||||
this.resolveSession.setTypeResolver(typeResolver);
|
this.resolveSession.setTypeResolver(typeResolver);
|
||||||
|
|
||||||
javaClassFinder.setProject(project);
|
javaClassFinder.setProject(project);
|
||||||
@@ -242,8 +238,6 @@ public class InjectorForLazyResolveWithJava {
|
|||||||
|
|
||||||
scriptBodyResolver.setExpressionTypingServices(expressionTypingServices);
|
scriptBodyResolver.setExpressionTypingServices(expressionTypingServices);
|
||||||
|
|
||||||
scriptParameterResolver.setDependencyClassByQualifiedNameResolver(javaDescriptorResolver);
|
|
||||||
|
|
||||||
deserializedDescriptorResolver.setDeserializers(descriptorDeserializers);
|
deserializedDescriptorResolver.setDeserializers(descriptorDeserializers);
|
||||||
deserializedDescriptorResolver.setErrorReporter(traceBasedErrorReporter);
|
deserializedDescriptorResolver.setErrorReporter(traceBasedErrorReporter);
|
||||||
deserializedDescriptorResolver.setJavaDescriptorResolver(javaDescriptorResolver);
|
deserializedDescriptorResolver.setJavaDescriptorResolver(javaDescriptorResolver);
|
||||||
|
|||||||
@@ -60,7 +60,6 @@ import org.jetbrains.jet.lang.resolve.DeclarationResolver;
|
|||||||
import org.jetbrains.jet.lang.resolve.ImportsResolver;
|
import org.jetbrains.jet.lang.resolve.ImportsResolver;
|
||||||
import org.jetbrains.jet.lang.psi.JetImportsFactory;
|
import org.jetbrains.jet.lang.psi.JetImportsFactory;
|
||||||
import org.jetbrains.jet.lang.resolve.ScriptHeaderResolver;
|
import org.jetbrains.jet.lang.resolve.ScriptHeaderResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.ScriptParameterResolver;
|
|
||||||
import org.jetbrains.jet.lang.resolve.OverloadResolver;
|
import org.jetbrains.jet.lang.resolve.OverloadResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.OverrideResolver;
|
import org.jetbrains.jet.lang.resolve.OverrideResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.TypeHierarchyResolver;
|
import org.jetbrains.jet.lang.resolve.TypeHierarchyResolver;
|
||||||
@@ -122,7 +121,6 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
|
|||||||
private final ImportsResolver importsResolver;
|
private final ImportsResolver importsResolver;
|
||||||
private final JetImportsFactory jetImportsFactory;
|
private final JetImportsFactory jetImportsFactory;
|
||||||
private final ScriptHeaderResolver scriptHeaderResolver;
|
private final ScriptHeaderResolver scriptHeaderResolver;
|
||||||
private final ScriptParameterResolver scriptParameterResolver;
|
|
||||||
private final OverloadResolver overloadResolver;
|
private final OverloadResolver overloadResolver;
|
||||||
private final OverrideResolver overrideResolver;
|
private final OverrideResolver overrideResolver;
|
||||||
private final TypeHierarchyResolver typeHierarchyResolver;
|
private final TypeHierarchyResolver typeHierarchyResolver;
|
||||||
@@ -188,7 +186,6 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
|
|||||||
this.importsResolver = new ImportsResolver();
|
this.importsResolver = new ImportsResolver();
|
||||||
this.jetImportsFactory = new JetImportsFactory();
|
this.jetImportsFactory = new JetImportsFactory();
|
||||||
this.scriptHeaderResolver = new ScriptHeaderResolver();
|
this.scriptHeaderResolver = new ScriptHeaderResolver();
|
||||||
this.scriptParameterResolver = new ScriptParameterResolver();
|
|
||||||
this.overloadResolver = new OverloadResolver();
|
this.overloadResolver = new OverloadResolver();
|
||||||
this.overrideResolver = new OverrideResolver();
|
this.overrideResolver = new OverrideResolver();
|
||||||
this.typeHierarchyResolver = new TypeHierarchyResolver();
|
this.typeHierarchyResolver = new TypeHierarchyResolver();
|
||||||
@@ -311,11 +308,8 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
|
|||||||
jetImportsFactory.setProject(project);
|
jetImportsFactory.setProject(project);
|
||||||
|
|
||||||
scriptHeaderResolver.setPackageFragmentProvider(mutablePackageFragmentProvider);
|
scriptHeaderResolver.setPackageFragmentProvider(mutablePackageFragmentProvider);
|
||||||
scriptHeaderResolver.setScriptParameterResolver(scriptParameterResolver);
|
|
||||||
scriptHeaderResolver.setTrace(bindingTrace);
|
scriptHeaderResolver.setTrace(bindingTrace);
|
||||||
|
|
||||||
scriptParameterResolver.setDependencyClassByQualifiedNameResolver(javaDescriptorResolver);
|
|
||||||
|
|
||||||
overloadResolver.setTrace(bindingTrace);
|
overloadResolver.setTrace(bindingTrace);
|
||||||
|
|
||||||
overrideResolver.setTrace(bindingTrace);
|
overrideResolver.setTrace(bindingTrace);
|
||||||
|
|||||||
@@ -24,7 +24,6 @@ import org.jetbrains.jet.lang.PlatformToKotlinClassMap;
|
|||||||
import org.jetbrains.jet.lang.resolve.lazy.declarations.DeclarationProviderFactory;
|
import org.jetbrains.jet.lang.resolve.lazy.declarations.DeclarationProviderFactory;
|
||||||
import org.jetbrains.jet.lang.resolve.BindingTrace;
|
import org.jetbrains.jet.lang.resolve.BindingTrace;
|
||||||
import org.jetbrains.jet.lang.resolve.lazy.ResolveSession;
|
import org.jetbrains.jet.lang.resolve.lazy.ResolveSession;
|
||||||
import org.jetbrains.jet.lang.types.DependencyClassByQualifiedNameResolverDummyImpl;
|
|
||||||
import org.jetbrains.jet.lang.resolve.AnnotationResolver;
|
import org.jetbrains.jet.lang.resolve.AnnotationResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.calls.CallResolver;
|
import org.jetbrains.jet.lang.resolve.calls.CallResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.calls.ArgumentTypeResolver;
|
import org.jetbrains.jet.lang.resolve.calls.ArgumentTypeResolver;
|
||||||
@@ -44,7 +43,6 @@ import org.jetbrains.jet.lang.resolve.calls.CandidateResolver;
|
|||||||
import org.jetbrains.jet.lang.psi.JetImportsFactory;
|
import org.jetbrains.jet.lang.psi.JetImportsFactory;
|
||||||
import org.jetbrains.jet.lang.resolve.lazy.ScopeProvider;
|
import org.jetbrains.jet.lang.resolve.lazy.ScopeProvider;
|
||||||
import org.jetbrains.jet.lang.resolve.ScriptBodyResolver;
|
import org.jetbrains.jet.lang.resolve.ScriptBodyResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.ScriptParameterResolver;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import javax.annotation.PreDestroy;
|
import javax.annotation.PreDestroy;
|
||||||
|
|
||||||
@@ -60,7 +58,6 @@ public class InjectorForLazyResolve {
|
|||||||
private final DeclarationProviderFactory declarationProviderFactory;
|
private final DeclarationProviderFactory declarationProviderFactory;
|
||||||
private final BindingTrace bindingTrace;
|
private final BindingTrace bindingTrace;
|
||||||
private final ResolveSession resolveSession;
|
private final ResolveSession resolveSession;
|
||||||
private final DependencyClassByQualifiedNameResolverDummyImpl dependencyClassByQualifiedNameResolverDummy;
|
|
||||||
private final AnnotationResolver annotationResolver;
|
private final AnnotationResolver annotationResolver;
|
||||||
private final CallResolver callResolver;
|
private final CallResolver callResolver;
|
||||||
private final ArgumentTypeResolver argumentTypeResolver;
|
private final ArgumentTypeResolver argumentTypeResolver;
|
||||||
@@ -80,7 +77,6 @@ public class InjectorForLazyResolve {
|
|||||||
private final JetImportsFactory jetImportsFactory;
|
private final JetImportsFactory jetImportsFactory;
|
||||||
private final ScopeProvider scopeProvider;
|
private final ScopeProvider scopeProvider;
|
||||||
private final ScriptBodyResolver scriptBodyResolver;
|
private final ScriptBodyResolver scriptBodyResolver;
|
||||||
private final ScriptParameterResolver scriptParameterResolver;
|
|
||||||
|
|
||||||
public InjectorForLazyResolve(
|
public InjectorForLazyResolve(
|
||||||
@NotNull Project project,
|
@NotNull Project project,
|
||||||
@@ -97,7 +93,6 @@ public class InjectorForLazyResolve {
|
|||||||
this.declarationProviderFactory = declarationProviderFactory;
|
this.declarationProviderFactory = declarationProviderFactory;
|
||||||
this.bindingTrace = bindingTrace;
|
this.bindingTrace = bindingTrace;
|
||||||
this.resolveSession = new ResolveSession(project, globalContext, moduleDescriptor, declarationProviderFactory, bindingTrace);
|
this.resolveSession = new ResolveSession(project, globalContext, moduleDescriptor, declarationProviderFactory, bindingTrace);
|
||||||
this.dependencyClassByQualifiedNameResolverDummy = new DependencyClassByQualifiedNameResolverDummyImpl();
|
|
||||||
this.annotationResolver = new AnnotationResolver();
|
this.annotationResolver = new AnnotationResolver();
|
||||||
this.callResolver = new CallResolver();
|
this.callResolver = new CallResolver();
|
||||||
this.argumentTypeResolver = new ArgumentTypeResolver();
|
this.argumentTypeResolver = new ArgumentTypeResolver();
|
||||||
@@ -117,7 +112,6 @@ public class InjectorForLazyResolve {
|
|||||||
this.jetImportsFactory = new JetImportsFactory();
|
this.jetImportsFactory = new JetImportsFactory();
|
||||||
this.scopeProvider = new ScopeProvider(getResolveSession());
|
this.scopeProvider = new ScopeProvider(getResolveSession());
|
||||||
this.scriptBodyResolver = new ScriptBodyResolver();
|
this.scriptBodyResolver = new ScriptBodyResolver();
|
||||||
this.scriptParameterResolver = new ScriptParameterResolver();
|
|
||||||
|
|
||||||
this.resolveSession.setAnnotationResolve(annotationResolver);
|
this.resolveSession.setAnnotationResolve(annotationResolver);
|
||||||
this.resolveSession.setDescriptorResolver(descriptorResolver);
|
this.resolveSession.setDescriptorResolver(descriptorResolver);
|
||||||
@@ -125,7 +119,6 @@ public class InjectorForLazyResolve {
|
|||||||
this.resolveSession.setQualifiedExpressionResolver(qualifiedExpressionResolver);
|
this.resolveSession.setQualifiedExpressionResolver(qualifiedExpressionResolver);
|
||||||
this.resolveSession.setScopeProvider(scopeProvider);
|
this.resolveSession.setScopeProvider(scopeProvider);
|
||||||
this.resolveSession.setScriptBodyResolver(scriptBodyResolver);
|
this.resolveSession.setScriptBodyResolver(scriptBodyResolver);
|
||||||
this.resolveSession.setScriptParameterResolver(scriptParameterResolver);
|
|
||||||
this.resolveSession.setTypeResolver(typeResolver);
|
this.resolveSession.setTypeResolver(typeResolver);
|
||||||
|
|
||||||
annotationResolver.setCallResolver(callResolver);
|
annotationResolver.setCallResolver(callResolver);
|
||||||
@@ -182,8 +175,6 @@ public class InjectorForLazyResolve {
|
|||||||
|
|
||||||
scriptBodyResolver.setExpressionTypingServices(expressionTypingServices);
|
scriptBodyResolver.setExpressionTypingServices(expressionTypingServices);
|
||||||
|
|
||||||
scriptParameterResolver.setDependencyClassByQualifiedNameResolver(dependencyClassByQualifiedNameResolverDummy);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@PreDestroy
|
@PreDestroy
|
||||||
|
|||||||
@@ -25,7 +25,6 @@ import org.jetbrains.jet.lang.PlatformToKotlinClassMap;
|
|||||||
import org.jetbrains.jet.lang.resolve.TopDownAnalyzer;
|
import org.jetbrains.jet.lang.resolve.TopDownAnalyzer;
|
||||||
import org.jetbrains.jet.lang.resolve.LazyTopDownAnalyzer;
|
import org.jetbrains.jet.lang.resolve.LazyTopDownAnalyzer;
|
||||||
import org.jetbrains.jet.lang.resolve.MutablePackageFragmentProvider;
|
import org.jetbrains.jet.lang.resolve.MutablePackageFragmentProvider;
|
||||||
import org.jetbrains.jet.lang.types.DependencyClassByQualifiedNameResolverDummyImpl;
|
|
||||||
import org.jetbrains.jet.lang.resolve.BodyResolver;
|
import org.jetbrains.jet.lang.resolve.BodyResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.AnnotationResolver;
|
import org.jetbrains.jet.lang.resolve.AnnotationResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.calls.CallResolver;
|
import org.jetbrains.jet.lang.resolve.calls.CallResolver;
|
||||||
@@ -51,7 +50,6 @@ import org.jetbrains.jet.lang.resolve.DeclarationResolver;
|
|||||||
import org.jetbrains.jet.lang.resolve.ImportsResolver;
|
import org.jetbrains.jet.lang.resolve.ImportsResolver;
|
||||||
import org.jetbrains.jet.lang.psi.JetImportsFactory;
|
import org.jetbrains.jet.lang.psi.JetImportsFactory;
|
||||||
import org.jetbrains.jet.lang.resolve.ScriptHeaderResolver;
|
import org.jetbrains.jet.lang.resolve.ScriptHeaderResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.ScriptParameterResolver;
|
|
||||||
import org.jetbrains.jet.lang.resolve.OverloadResolver;
|
import org.jetbrains.jet.lang.resolve.OverloadResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.OverrideResolver;
|
import org.jetbrains.jet.lang.resolve.OverrideResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.TypeHierarchyResolver;
|
import org.jetbrains.jet.lang.resolve.TypeHierarchyResolver;
|
||||||
@@ -71,7 +69,6 @@ public class InjectorForTopDownAnalyzerBasic {
|
|||||||
private final TopDownAnalyzer topDownAnalyzer;
|
private final TopDownAnalyzer topDownAnalyzer;
|
||||||
private final LazyTopDownAnalyzer lazyTopDownAnalyzer;
|
private final LazyTopDownAnalyzer lazyTopDownAnalyzer;
|
||||||
private final MutablePackageFragmentProvider mutablePackageFragmentProvider;
|
private final MutablePackageFragmentProvider mutablePackageFragmentProvider;
|
||||||
private final DependencyClassByQualifiedNameResolverDummyImpl dependencyClassByQualifiedNameResolverDummy;
|
|
||||||
private final BodyResolver bodyResolver;
|
private final BodyResolver bodyResolver;
|
||||||
private final AnnotationResolver annotationResolver;
|
private final AnnotationResolver annotationResolver;
|
||||||
private final CallResolver callResolver;
|
private final CallResolver callResolver;
|
||||||
@@ -97,7 +94,6 @@ public class InjectorForTopDownAnalyzerBasic {
|
|||||||
private final ImportsResolver importsResolver;
|
private final ImportsResolver importsResolver;
|
||||||
private final JetImportsFactory jetImportsFactory;
|
private final JetImportsFactory jetImportsFactory;
|
||||||
private final ScriptHeaderResolver scriptHeaderResolver;
|
private final ScriptHeaderResolver scriptHeaderResolver;
|
||||||
private final ScriptParameterResolver scriptParameterResolver;
|
|
||||||
private final OverloadResolver overloadResolver;
|
private final OverloadResolver overloadResolver;
|
||||||
private final OverrideResolver overrideResolver;
|
private final OverrideResolver overrideResolver;
|
||||||
private final TypeHierarchyResolver typeHierarchyResolver;
|
private final TypeHierarchyResolver typeHierarchyResolver;
|
||||||
@@ -117,7 +113,6 @@ public class InjectorForTopDownAnalyzerBasic {
|
|||||||
this.topDownAnalyzer = new TopDownAnalyzer();
|
this.topDownAnalyzer = new TopDownAnalyzer();
|
||||||
this.lazyTopDownAnalyzer = new LazyTopDownAnalyzer();
|
this.lazyTopDownAnalyzer = new LazyTopDownAnalyzer();
|
||||||
this.mutablePackageFragmentProvider = new MutablePackageFragmentProvider(getModuleDescriptor());
|
this.mutablePackageFragmentProvider = new MutablePackageFragmentProvider(getModuleDescriptor());
|
||||||
this.dependencyClassByQualifiedNameResolverDummy = new DependencyClassByQualifiedNameResolverDummyImpl();
|
|
||||||
this.bodyResolver = new BodyResolver();
|
this.bodyResolver = new BodyResolver();
|
||||||
this.annotationResolver = new AnnotationResolver();
|
this.annotationResolver = new AnnotationResolver();
|
||||||
this.callResolver = new CallResolver();
|
this.callResolver = new CallResolver();
|
||||||
@@ -143,7 +138,6 @@ public class InjectorForTopDownAnalyzerBasic {
|
|||||||
this.importsResolver = new ImportsResolver();
|
this.importsResolver = new ImportsResolver();
|
||||||
this.jetImportsFactory = new JetImportsFactory();
|
this.jetImportsFactory = new JetImportsFactory();
|
||||||
this.scriptHeaderResolver = new ScriptHeaderResolver();
|
this.scriptHeaderResolver = new ScriptHeaderResolver();
|
||||||
this.scriptParameterResolver = new ScriptParameterResolver();
|
|
||||||
this.overloadResolver = new OverloadResolver();
|
this.overloadResolver = new OverloadResolver();
|
||||||
this.overrideResolver = new OverrideResolver();
|
this.overrideResolver = new OverrideResolver();
|
||||||
this.typeHierarchyResolver = new TypeHierarchyResolver();
|
this.typeHierarchyResolver = new TypeHierarchyResolver();
|
||||||
@@ -249,11 +243,8 @@ public class InjectorForTopDownAnalyzerBasic {
|
|||||||
jetImportsFactory.setProject(project);
|
jetImportsFactory.setProject(project);
|
||||||
|
|
||||||
scriptHeaderResolver.setPackageFragmentProvider(mutablePackageFragmentProvider);
|
scriptHeaderResolver.setPackageFragmentProvider(mutablePackageFragmentProvider);
|
||||||
scriptHeaderResolver.setScriptParameterResolver(scriptParameterResolver);
|
|
||||||
scriptHeaderResolver.setTrace(bindingTrace);
|
scriptHeaderResolver.setTrace(bindingTrace);
|
||||||
|
|
||||||
scriptParameterResolver.setDependencyClassByQualifiedNameResolver(dependencyClassByQualifiedNameResolverDummy);
|
|
||||||
|
|
||||||
overloadResolver.setTrace(bindingTrace);
|
overloadResolver.setTrace(bindingTrace);
|
||||||
|
|
||||||
overrideResolver.setTrace(bindingTrace);
|
overrideResolver.setTrace(bindingTrace);
|
||||||
|
|||||||
@@ -18,30 +18,26 @@ package org.jetbrains.jet.lang.resolve;
|
|||||||
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.jet.lang.resolve.name.Name;
|
import org.jetbrains.jet.lang.resolve.name.Name;
|
||||||
import org.jetbrains.jet.lang.types.ref.JetTypeName;
|
import org.jetbrains.jet.lang.types.JetType;
|
||||||
|
|
||||||
public class AnalyzerScriptParameter {
|
public class AnalyzerScriptParameter {
|
||||||
@NotNull
|
@NotNull
|
||||||
private final Name name;
|
private final Name name;
|
||||||
@NotNull
|
@NotNull
|
||||||
private final JetTypeName type;
|
private final JetType type;
|
||||||
|
|
||||||
public AnalyzerScriptParameter(@NotNull Name name, @NotNull JetTypeName type) {
|
public AnalyzerScriptParameter(@NotNull Name name, @NotNull JetType type) {
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.type = type;
|
this.type = type;
|
||||||
}
|
}
|
||||||
|
|
||||||
public AnalyzerScriptParameter(@NotNull String name, @NotNull String type) {
|
|
||||||
this(Name.identifier(name), JetTypeName.parse(type));
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public Name getName() {
|
public Name getName() {
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public JetTypeName getType() {
|
public JetType getType() {
|
||||||
return type;
|
return type;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,8 +42,6 @@ public class ScriptHeaderResolver {
|
|||||||
@NotNull
|
@NotNull
|
||||||
private MutablePackageFragmentProvider packageFragmentProvider;
|
private MutablePackageFragmentProvider packageFragmentProvider;
|
||||||
@NotNull
|
@NotNull
|
||||||
private ScriptParameterResolver scriptParameterResolver;
|
|
||||||
@NotNull
|
|
||||||
private BindingTrace trace;
|
private BindingTrace trace;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
@@ -51,11 +49,6 @@ public class ScriptHeaderResolver {
|
|||||||
this.packageFragmentProvider = packageFragmentProvider;
|
this.packageFragmentProvider = packageFragmentProvider;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Inject
|
|
||||||
public void setScriptParameterResolver(@NotNull ScriptParameterResolver scriptParameterResolver) {
|
|
||||||
this.scriptParameterResolver = scriptParameterResolver;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public void setTrace(@NotNull BindingTrace trace) {
|
public void setTrace(@NotNull BindingTrace trace) {
|
||||||
this.trace = trace;
|
this.trace = trace;
|
||||||
@@ -90,12 +83,12 @@ public class ScriptHeaderResolver {
|
|||||||
return priority == null ? 0 : priority;
|
return priority == null ? 0 : priority;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void resolveScriptDeclarations(@NotNull TopDownAnalysisContext c) {
|
public static void resolveScriptDeclarations(@NotNull TopDownAnalysisContext c) {
|
||||||
for (Map.Entry<JetScript, ScriptDescriptor> e : c.getScripts().entrySet()) {
|
for (Map.Entry<JetScript, ScriptDescriptor> e : c.getScripts().entrySet()) {
|
||||||
JetScript declaration = e.getKey();
|
JetScript declaration = e.getKey();
|
||||||
ScriptDescriptorImpl descriptor = (ScriptDescriptorImpl) e.getValue();
|
ScriptDescriptorImpl descriptor = (ScriptDescriptorImpl) e.getValue();
|
||||||
|
|
||||||
List<ValueParameterDescriptor> valueParameters = scriptParameterResolver.resolveScriptParameters(
|
List<ValueParameterDescriptor> valueParameters = ScriptParameterResolver.resolveScriptParameters(
|
||||||
declaration,
|
declaration,
|
||||||
descriptor
|
descriptor
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ package org.jetbrains.jet.lang.resolve;
|
|||||||
|
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
|
|
||||||
import org.jetbrains.jet.lang.descriptors.ScriptDescriptor;
|
import org.jetbrains.jet.lang.descriptors.ScriptDescriptor;
|
||||||
import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor;
|
import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor;
|
||||||
import org.jetbrains.jet.lang.descriptors.annotations.Annotations;
|
import org.jetbrains.jet.lang.descriptors.annotations.Annotations;
|
||||||
@@ -27,28 +26,13 @@ import org.jetbrains.jet.lang.parsing.JetScriptDefinition;
|
|||||||
import org.jetbrains.jet.lang.parsing.JetScriptDefinitionProvider;
|
import org.jetbrains.jet.lang.parsing.JetScriptDefinitionProvider;
|
||||||
import org.jetbrains.jet.lang.psi.JetFile;
|
import org.jetbrains.jet.lang.psi.JetFile;
|
||||||
import org.jetbrains.jet.lang.psi.JetScript;
|
import org.jetbrains.jet.lang.psi.JetScript;
|
||||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
|
||||||
import org.jetbrains.jet.lang.types.DependencyClassByQualifiedNameResolver;
|
|
||||||
import org.jetbrains.jet.lang.types.JetType;
|
|
||||||
import org.jetbrains.jet.lang.types.TypeUtils;
|
|
||||||
import org.jetbrains.jet.lang.types.ref.JetTypeName;
|
|
||||||
|
|
||||||
import javax.inject.Inject;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
// SCRIPT: Resolve script parameters
|
// SCRIPT: Resolve script parameters
|
||||||
public class ScriptParameterResolver {
|
public final class ScriptParameterResolver {
|
||||||
@NotNull
|
@NotNull
|
||||||
private DependencyClassByQualifiedNameResolver dependencyClassByQualifiedNameResolver;
|
public static List<ValueParameterDescriptor> resolveScriptParameters(
|
||||||
|
|
||||||
@Inject
|
|
||||||
public void setDependencyClassByQualifiedNameResolver(@NotNull DependencyClassByQualifiedNameResolver dependencyClassByQualifiedNameResolver) {
|
|
||||||
this.dependencyClassByQualifiedNameResolver = dependencyClassByQualifiedNameResolver;
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
|
||||||
public List<ValueParameterDescriptor> resolveScriptParameters(
|
|
||||||
@NotNull JetScript declaration,
|
@NotNull JetScript declaration,
|
||||||
@NotNull ScriptDescriptor scriptDescriptor
|
@NotNull ScriptDescriptor scriptDescriptor
|
||||||
) {
|
) {
|
||||||
@@ -67,31 +51,15 @@ public class ScriptParameterResolver {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
private ClassDescriptor resolveClass(@NotNull FqName className) {
|
private static ValueParameterDescriptor resolveScriptParameter(
|
||||||
ClassDescriptor classDescriptor = dependencyClassByQualifiedNameResolver.resolveClass(className);
|
|
||||||
if (classDescriptor == null) {
|
|
||||||
throw new IllegalStateException("dependency class not found by name: " + className);
|
|
||||||
}
|
|
||||||
return classDescriptor;
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
|
||||||
public JetType resolveTypeName(@NotNull JetTypeName typeName) {
|
|
||||||
List<JetType> typeArguments = new ArrayList<JetType>();
|
|
||||||
for (JetTypeName typeArgumentName : typeName.getArguments()) {
|
|
||||||
typeArguments.add(resolveTypeName(typeArgumentName));
|
|
||||||
}
|
|
||||||
ClassDescriptor classDescriptor = resolveClass(typeName.getClassName());
|
|
||||||
return TypeUtils.substituteParameters(classDescriptor, typeArguments);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@NotNull
|
|
||||||
private ValueParameterDescriptor resolveScriptParameter(
|
|
||||||
@NotNull AnalyzerScriptParameter scriptParameter,
|
@NotNull AnalyzerScriptParameter scriptParameter,
|
||||||
int index,
|
int index,
|
||||||
@NotNull ScriptDescriptor script) {
|
@NotNull ScriptDescriptor script
|
||||||
JetType type = resolveTypeName(scriptParameter.getType());
|
) {
|
||||||
return new ValueParameterDescriptorImpl(script, null, index, Annotations.EMPTY, scriptParameter.getName(), type, false, null);
|
return new ValueParameterDescriptorImpl(script, null, index, Annotations.EMPTY, scriptParameter.getName(),
|
||||||
|
scriptParameter.getType(), false, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
private ScriptParameterResolver() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -80,7 +80,6 @@ public class ResolveSession implements KotlinCodeAnalyzer {
|
|||||||
private DescriptorResolver descriptorResolver;
|
private DescriptorResolver descriptorResolver;
|
||||||
private TypeResolver typeResolver;
|
private TypeResolver typeResolver;
|
||||||
private QualifiedExpressionResolver qualifiedExpressionResolver;
|
private QualifiedExpressionResolver qualifiedExpressionResolver;
|
||||||
private ScriptParameterResolver scriptParameterResolver;
|
|
||||||
private ScriptBodyResolver scriptBodyResolver;
|
private ScriptBodyResolver scriptBodyResolver;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
@@ -113,11 +112,6 @@ public class ResolveSession implements KotlinCodeAnalyzer {
|
|||||||
this.scopeProvider = scopeProvider;
|
this.scopeProvider = scopeProvider;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Inject
|
|
||||||
public void setScriptParameterResolver(ScriptParameterResolver scriptParameterResolver) {
|
|
||||||
this.scriptParameterResolver = scriptParameterResolver;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public void setScriptBodyResolver(ScriptBodyResolver scriptBodyResolver) {
|
public void setScriptBodyResolver(ScriptBodyResolver scriptBodyResolver) {
|
||||||
this.scriptBodyResolver = scriptBodyResolver;
|
this.scriptBodyResolver = scriptBodyResolver;
|
||||||
@@ -177,7 +171,6 @@ public class ResolveSession implements KotlinCodeAnalyzer {
|
|||||||
public LazyScriptDescriptor invoke(JetScript script) {
|
public LazyScriptDescriptor invoke(JetScript script) {
|
||||||
return new LazyScriptDescriptor(
|
return new LazyScriptDescriptor(
|
||||||
ResolveSession.this,
|
ResolveSession.this,
|
||||||
scriptParameterResolver,
|
|
||||||
scriptBodyResolver,
|
scriptBodyResolver,
|
||||||
script,
|
script,
|
||||||
ScriptHeaderResolver.getScriptPriority(script)
|
ScriptHeaderResolver.getScriptPriority(script)
|
||||||
|
|||||||
+1
-13
@@ -26,15 +26,9 @@ import org.jetbrains.jet.lang.resolve.scopes.receivers.ScriptReceiver
|
|||||||
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns
|
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns
|
||||||
import org.jetbrains.jet.lang.descriptors.impl.ReceiverParameterDescriptorImpl
|
import org.jetbrains.jet.lang.descriptors.impl.ReceiverParameterDescriptorImpl
|
||||||
import org.jetbrains.jet.lang.resolve.BindingContext
|
import org.jetbrains.jet.lang.resolve.BindingContext
|
||||||
import org.jetbrains.jet.lang.psi.JetFile
|
|
||||||
import org.jetbrains.kotlin.util.sure
|
import org.jetbrains.kotlin.util.sure
|
||||||
import org.jetbrains.jet.lang.resolve.ScriptParameterResolver
|
import org.jetbrains.jet.lang.resolve.ScriptParameterResolver
|
||||||
import org.jetbrains.jet.lang.resolve.TopDownAnalysisParameters
|
|
||||||
import org.jetbrains.jet.lang.resolve.ScriptBodyResolver
|
import org.jetbrains.jet.lang.resolve.ScriptBodyResolver
|
||||||
import org.jetbrains.jet.lang.resolve.lazy.data.JetClassLikeInfo
|
|
||||||
import org.jetbrains.jet.lang.resolve.ScriptNameUtil
|
|
||||||
import org.jetbrains.jet.lang.descriptors.ClassKind
|
|
||||||
import org.jetbrains.jet.lang.descriptors.ClassDescriptor
|
|
||||||
import org.jetbrains.jet.lang.descriptors.impl.ScriptCodeDescriptor
|
import org.jetbrains.jet.lang.descriptors.impl.ScriptCodeDescriptor
|
||||||
import org.jetbrains.jet.lang.types.DeferredType
|
import org.jetbrains.jet.lang.types.DeferredType
|
||||||
import org.jetbrains.jet.lang.resolve.scopes.JetScope
|
import org.jetbrains.jet.lang.resolve.scopes.JetScope
|
||||||
@@ -43,17 +37,11 @@ import org.jetbrains.jet.lang.resolve.scopes.ChainedScope
|
|||||||
import org.jetbrains.jet.lang.resolve.lazy.ForceResolveUtil
|
import org.jetbrains.jet.lang.resolve.lazy.ForceResolveUtil
|
||||||
import org.jetbrains.jet.lang.types.TypeSubstitutor
|
import org.jetbrains.jet.lang.types.TypeSubstitutor
|
||||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptorVisitor
|
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptorVisitor
|
||||||
import org.jetbrains.jet.lang.psi.JetParameter
|
|
||||||
import org.jetbrains.jet.lang.psi.JetTypeParameter
|
|
||||||
import org.jetbrains.jet.lang.resolve.scopes.RedeclarationHandler
|
import org.jetbrains.jet.lang.resolve.scopes.RedeclarationHandler
|
||||||
import org.jetbrains.jet.lang.psi.JetCallableDeclaration
|
|
||||||
import org.jetbrains.jet.lang.resolve.scopes.WritableScope
|
import org.jetbrains.jet.lang.resolve.scopes.WritableScope
|
||||||
import org.jetbrains.jet.lang.resolve.BindingTrace
|
|
||||||
import org.jetbrains.jet.lang.resolve.TemporaryBindingTrace
|
|
||||||
|
|
||||||
public class LazyScriptDescriptor(
|
public class LazyScriptDescriptor(
|
||||||
val resolveSession: ResolveSession,
|
val resolveSession: ResolveSession,
|
||||||
scriptParameterResolver: ScriptParameterResolver,
|
|
||||||
scriptBodyResolver: ScriptBodyResolver,
|
scriptBodyResolver: ScriptBodyResolver,
|
||||||
val jetScript: JetScript,
|
val jetScript: JetScript,
|
||||||
val _priority: Int
|
val _priority: Int
|
||||||
@@ -82,7 +70,7 @@ public class LazyScriptDescriptor(
|
|||||||
val result = ScriptCodeDescriptor(this)
|
val result = ScriptCodeDescriptor(this)
|
||||||
result.initialize(
|
result.initialize(
|
||||||
_implicitReceiver,
|
_implicitReceiver,
|
||||||
scriptParameterResolver.resolveScriptParameters(jetScript, this),
|
ScriptParameterResolver.resolveScriptParameters(jetScript, this),
|
||||||
DeferredType.create(resolveSession.getStorageManager(), resolveSession.getTrace()) {
|
DeferredType.create(resolveSession.getStorageManager(), resolveSession.getTrace()) {
|
||||||
scriptBodyResolver.resolveScriptReturnType(jetScript, this, resolveSession.getTrace())
|
scriptBodyResolver.resolveScriptReturnType(jetScript, this, resolveSession.getTrace())
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,63 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2010-2013 JetBrains s.r.o.
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.jetbrains.jet.lang.types.ref;
|
|
||||||
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
|
||||||
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class JetTypeName {
|
|
||||||
// generic types one day
|
|
||||||
private final FqName className;
|
|
||||||
private final List<JetTypeName> arguments;
|
|
||||||
|
|
||||||
public JetTypeName(@NotNull FqName className, @NotNull List<JetTypeName> arguments) {
|
|
||||||
this.className = className;
|
|
||||||
this.arguments = arguments;
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
|
||||||
public FqName getClassName() {
|
|
||||||
return className;
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
|
||||||
public List<JetTypeName> getArguments() {
|
|
||||||
return arguments;
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
|
||||||
public static JetTypeName fromJavaClass(@NotNull Class<?> clazz) {
|
|
||||||
if (clazz.getTypeParameters().length != 0) {
|
|
||||||
throw new IllegalArgumentException("cannot create type reference: actual type parameters unknown: " + clazz);
|
|
||||||
}
|
|
||||||
FqName fqName = new FqName(clazz.getName());
|
|
||||||
return withoutParameters(fqName);
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
|
||||||
public static JetTypeName withoutParameters(@NotNull FqName fqName) {
|
|
||||||
return new JetTypeName(fqName, Collections.<JetTypeName>emptyList());
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
|
||||||
public static JetTypeName parse(@NotNull String value) {
|
|
||||||
return JetTypeNameParser.parse(value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,71 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2010-2013 JetBrains s.r.o.
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.jetbrains.jet.lang.types.ref;
|
|
||||||
|
|
||||||
import com.google.common.collect.Lists;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
|
||||||
import org.jetbrains.jet.lang.resolve.name.Name;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.regex.Pattern;
|
|
||||||
|
|
||||||
class JetTypeNameParser extends SimpleParser {
|
|
||||||
public JetTypeNameParser(String input) {
|
|
||||||
super(input);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private static final Pattern namePattern = Pattern.compile("(?i)[a-z][a-z0-9]*");
|
|
||||||
|
|
||||||
@NotNull
|
|
||||||
public Name parseName() {
|
|
||||||
return Name.identifier(consume(namePattern));
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
|
||||||
public FqName parseFqName() {
|
|
||||||
FqName fqName = FqName.topLevel(parseName());
|
|
||||||
while (consumeIfLookingAt('.')) {
|
|
||||||
fqName = fqName.child(parseName());
|
|
||||||
}
|
|
||||||
return fqName;
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
|
||||||
public JetTypeName parse() {
|
|
||||||
FqName fqName = parseFqName();
|
|
||||||
List<JetTypeName> typeArguments = Lists.newArrayList();
|
|
||||||
if (consumeIfLookingAt('<')) {
|
|
||||||
typeArguments.add(parse());
|
|
||||||
while (consumeIfLookingAt(',')) {
|
|
||||||
typeArguments.add(parse());
|
|
||||||
}
|
|
||||||
consume('>');
|
|
||||||
}
|
|
||||||
return new JetTypeName(fqName, typeArguments);
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
|
||||||
public static JetTypeName parse(@NotNull String string) {
|
|
||||||
JetTypeNameParser parser = new JetTypeNameParser(string);
|
|
||||||
JetTypeName typeName = parser.parse();
|
|
||||||
parser.checkEof();
|
|
||||||
return typeName;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,90 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2010-2013 JetBrains s.r.o.
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.jetbrains.jet.lang.types.ref;
|
|
||||||
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
|
|
||||||
import java.util.regex.Matcher;
|
|
||||||
import java.util.regex.Pattern;
|
|
||||||
|
|
||||||
class SimpleParser {
|
|
||||||
|
|
||||||
private final String input;
|
|
||||||
private int position = 0;
|
|
||||||
|
|
||||||
public SimpleParser(@NotNull String input) {
|
|
||||||
this.input = input;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void checkEof() {
|
|
||||||
if (!lookingAtEof()) {
|
|
||||||
throw new IllegalStateException("expecting EOF");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void checkNotEof() {
|
|
||||||
if (lookingAtEof()) {
|
|
||||||
throw new IllegalStateException("unexpected EOF");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean lookingAtEof() {
|
|
||||||
return position == input.length();
|
|
||||||
}
|
|
||||||
|
|
||||||
public char peek() {
|
|
||||||
checkNotEof();
|
|
||||||
return input.charAt(position);
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean lookingAt(char c) {
|
|
||||||
return !lookingAtEof() && peek() == c;
|
|
||||||
}
|
|
||||||
|
|
||||||
public char next() {
|
|
||||||
checkNotEof();
|
|
||||||
return input.charAt(position++);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void consume(char c) {
|
|
||||||
char next = next();
|
|
||||||
if (next != c) {
|
|
||||||
throw new IllegalStateException("invalid next, expecting " + c + ", actual " + next);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean consumeIfLookingAt(char c) {
|
|
||||||
if (lookingAt(c)) {
|
|
||||||
consume(c);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
|
||||||
public String consume(@NotNull Pattern pattern) {
|
|
||||||
Matcher matcher = pattern.matcher(input.substring(position));
|
|
||||||
if (!matcher.lookingAt()) {
|
|
||||||
throw new IllegalStateException("expecting " + pattern + " at pos " + position);
|
|
||||||
}
|
|
||||||
String r = matcher.group();
|
|
||||||
position += r.length();
|
|
||||||
return r;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -33,7 +33,7 @@ import org.jetbrains.jet.lang.parsing.JetScriptDefinition;
|
|||||||
import org.jetbrains.jet.lang.parsing.JetScriptDefinitionProvider;
|
import org.jetbrains.jet.lang.parsing.JetScriptDefinitionProvider;
|
||||||
import org.jetbrains.jet.lang.resolve.AnalyzerScriptParameter;
|
import org.jetbrains.jet.lang.resolve.AnalyzerScriptParameter;
|
||||||
import org.jetbrains.jet.lang.resolve.name.Name;
|
import org.jetbrains.jet.lang.resolve.name.Name;
|
||||||
import org.jetbrains.jet.lang.types.ref.JetTypeName;
|
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
|
||||||
import org.jetbrains.jet.utils.KotlinPaths;
|
import org.jetbrains.jet.utils.KotlinPaths;
|
||||||
import org.jetbrains.jet.utils.PathUtil;
|
import org.jetbrains.jet.utils.PathUtil;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
@@ -106,6 +106,6 @@ public class ScriptTest {
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
private static List<AnalyzerScriptParameter> numIntParam() {
|
private static List<AnalyzerScriptParameter> numIntParam() {
|
||||||
return Collections.singletonList(new AnalyzerScriptParameter(Name.identifier("num"), JetTypeName.parse("kotlin.Int")));
|
return Collections.singletonList(new AnalyzerScriptParameter(Name.identifier("num"), KotlinBuiltIns.getInstance().getIntType()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,7 +28,8 @@ import org.jetbrains.jet.lang.parsing.JetScriptDefinitionProvider;
|
|||||||
import org.jetbrains.jet.lang.psi.JetFile;
|
import org.jetbrains.jet.lang.psi.JetFile;
|
||||||
import org.jetbrains.jet.lang.resolve.AnalyzerScriptParameter;
|
import org.jetbrains.jet.lang.resolve.AnalyzerScriptParameter;
|
||||||
import org.jetbrains.jet.lang.resolve.name.Name;
|
import org.jetbrains.jet.lang.resolve.name.Name;
|
||||||
import org.jetbrains.jet.lang.types.ref.JetTypeName;
|
import org.jetbrains.jet.lang.types.JetType;
|
||||||
|
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -121,23 +122,29 @@ public class CodegenTestFiles {
|
|||||||
String valueString = scriptParametersMatcher.group(3);
|
String valueString = scriptParametersMatcher.group(3);
|
||||||
Object value;
|
Object value;
|
||||||
|
|
||||||
|
JetType jetType;
|
||||||
|
KotlinBuiltIns builtIns = KotlinBuiltIns.getInstance();
|
||||||
if (type.equals("kotlin.String")) {
|
if (type.equals("kotlin.String")) {
|
||||||
value = valueString;
|
value = valueString;
|
||||||
|
jetType = builtIns.getStringType();
|
||||||
}
|
}
|
||||||
else if (type.equals("kotlin.Long")) {
|
else if (type.equals("kotlin.Long")) {
|
||||||
value = Long.parseLong(valueString);
|
value = Long.parseLong(valueString);
|
||||||
|
jetType = builtIns.getLongType();
|
||||||
}
|
}
|
||||||
else if (type.equals("kotlin.Int")) {
|
else if (type.equals("kotlin.Int")) {
|
||||||
value = Integer.parseInt(valueString);
|
value = Integer.parseInt(valueString);
|
||||||
|
jetType = builtIns.getIntType();
|
||||||
}
|
}
|
||||||
else if (type.equals("kotlin.Array<kotlin.String>")) {
|
else if (type.equals("kotlin.Array<kotlin.String>")) {
|
||||||
value = valueString.split(" ");
|
value = valueString.split(" ");
|
||||||
|
jetType = builtIns.getArrayType(builtIns.getStringType());
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
throw new AssertionError("TODO: " + type);
|
throw new AssertionError("TODO: " + type);
|
||||||
}
|
}
|
||||||
|
|
||||||
scriptParameterTypes.add(new AnalyzerScriptParameter(Name.identifier(name), JetTypeName.parse(type)));
|
scriptParameterTypes.add(new AnalyzerScriptParameter(Name.identifier(name), jetType));
|
||||||
scriptParameterValues.add(value);
|
scriptParameterValues.add(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -24,6 +24,8 @@ import org.jetbrains.jet.lang.parsing.JetScriptDefinitionProvider;
|
|||||||
import org.jetbrains.jet.lang.resolve.AnalyzerScriptParameter;
|
import org.jetbrains.jet.lang.resolve.AnalyzerScriptParameter;
|
||||||
import org.jetbrains.jet.lang.resolve.ScriptNameUtil;
|
import org.jetbrains.jet.lang.resolve.ScriptNameUtil;
|
||||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||||
|
import org.jetbrains.jet.lang.resolve.name.Name;
|
||||||
|
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
|
||||||
import org.jetbrains.jet.utils.UtilsPackage;
|
import org.jetbrains.jet.utils.UtilsPackage;
|
||||||
import org.jetbrains.org.objectweb.asm.Opcodes;
|
import org.jetbrains.org.objectweb.asm.Opcodes;
|
||||||
|
|
||||||
@@ -35,7 +37,8 @@ public class ScriptGenTest extends CodegenTestCase {
|
|||||||
protected Object scriptInstance;
|
protected Object scriptInstance;
|
||||||
|
|
||||||
public static final JetScriptDefinition FIB_SCRIPT_DEFINITION =
|
public static final JetScriptDefinition FIB_SCRIPT_DEFINITION =
|
||||||
new JetScriptDefinition(".lang.kt", new AnalyzerScriptParameter("num", "kotlin.Int"));
|
new JetScriptDefinition(".lang.kt",
|
||||||
|
new AnalyzerScriptParameter(Name.identifier("num"), KotlinBuiltIns.getInstance().getIntType()));
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void setUp() throws Exception {
|
protected void setUp() throws Exception {
|
||||||
|
|||||||
@@ -25,7 +25,6 @@ import org.jetbrains.jet.lang.PlatformToKotlinClassMap;
|
|||||||
import org.jetbrains.jet.lang.resolve.TopDownAnalyzer;
|
import org.jetbrains.jet.lang.resolve.TopDownAnalyzer;
|
||||||
import org.jetbrains.jet.lang.resolve.LazyTopDownAnalyzer;
|
import org.jetbrains.jet.lang.resolve.LazyTopDownAnalyzer;
|
||||||
import org.jetbrains.jet.lang.resolve.MutablePackageFragmentProvider;
|
import org.jetbrains.jet.lang.resolve.MutablePackageFragmentProvider;
|
||||||
import org.jetbrains.jet.lang.types.DependencyClassByQualifiedNameResolverDummyImpl;
|
|
||||||
import org.jetbrains.jet.lang.resolve.BodyResolver;
|
import org.jetbrains.jet.lang.resolve.BodyResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.AnnotationResolver;
|
import org.jetbrains.jet.lang.resolve.AnnotationResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.calls.CallResolver;
|
import org.jetbrains.jet.lang.resolve.calls.CallResolver;
|
||||||
@@ -51,7 +50,6 @@ import org.jetbrains.jet.lang.resolve.DeclarationResolver;
|
|||||||
import org.jetbrains.jet.lang.resolve.ImportsResolver;
|
import org.jetbrains.jet.lang.resolve.ImportsResolver;
|
||||||
import org.jetbrains.jet.lang.psi.JetImportsFactory;
|
import org.jetbrains.jet.lang.psi.JetImportsFactory;
|
||||||
import org.jetbrains.jet.lang.resolve.ScriptHeaderResolver;
|
import org.jetbrains.jet.lang.resolve.ScriptHeaderResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.ScriptParameterResolver;
|
|
||||||
import org.jetbrains.jet.lang.resolve.OverloadResolver;
|
import org.jetbrains.jet.lang.resolve.OverloadResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.OverrideResolver;
|
import org.jetbrains.jet.lang.resolve.OverrideResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.TypeHierarchyResolver;
|
import org.jetbrains.jet.lang.resolve.TypeHierarchyResolver;
|
||||||
@@ -71,7 +69,6 @@ public class InjectorForTopDownAnalyzerForJs {
|
|||||||
private final TopDownAnalyzer topDownAnalyzer;
|
private final TopDownAnalyzer topDownAnalyzer;
|
||||||
private final LazyTopDownAnalyzer lazyTopDownAnalyzer;
|
private final LazyTopDownAnalyzer lazyTopDownAnalyzer;
|
||||||
private final MutablePackageFragmentProvider mutablePackageFragmentProvider;
|
private final MutablePackageFragmentProvider mutablePackageFragmentProvider;
|
||||||
private final DependencyClassByQualifiedNameResolverDummyImpl dependencyClassByQualifiedNameResolverDummy;
|
|
||||||
private final BodyResolver bodyResolver;
|
private final BodyResolver bodyResolver;
|
||||||
private final AnnotationResolver annotationResolver;
|
private final AnnotationResolver annotationResolver;
|
||||||
private final CallResolver callResolver;
|
private final CallResolver callResolver;
|
||||||
@@ -97,7 +94,6 @@ public class InjectorForTopDownAnalyzerForJs {
|
|||||||
private final ImportsResolver importsResolver;
|
private final ImportsResolver importsResolver;
|
||||||
private final JetImportsFactory jetImportsFactory;
|
private final JetImportsFactory jetImportsFactory;
|
||||||
private final ScriptHeaderResolver scriptHeaderResolver;
|
private final ScriptHeaderResolver scriptHeaderResolver;
|
||||||
private final ScriptParameterResolver scriptParameterResolver;
|
|
||||||
private final OverloadResolver overloadResolver;
|
private final OverloadResolver overloadResolver;
|
||||||
private final OverrideResolver overrideResolver;
|
private final OverrideResolver overrideResolver;
|
||||||
private final TypeHierarchyResolver typeHierarchyResolver;
|
private final TypeHierarchyResolver typeHierarchyResolver;
|
||||||
@@ -117,7 +113,6 @@ public class InjectorForTopDownAnalyzerForJs {
|
|||||||
this.topDownAnalyzer = new TopDownAnalyzer();
|
this.topDownAnalyzer = new TopDownAnalyzer();
|
||||||
this.lazyTopDownAnalyzer = new LazyTopDownAnalyzer();
|
this.lazyTopDownAnalyzer = new LazyTopDownAnalyzer();
|
||||||
this.mutablePackageFragmentProvider = new MutablePackageFragmentProvider(getModuleDescriptor());
|
this.mutablePackageFragmentProvider = new MutablePackageFragmentProvider(getModuleDescriptor());
|
||||||
this.dependencyClassByQualifiedNameResolverDummy = new DependencyClassByQualifiedNameResolverDummyImpl();
|
|
||||||
this.bodyResolver = new BodyResolver();
|
this.bodyResolver = new BodyResolver();
|
||||||
this.annotationResolver = new AnnotationResolver();
|
this.annotationResolver = new AnnotationResolver();
|
||||||
this.callResolver = new CallResolver();
|
this.callResolver = new CallResolver();
|
||||||
@@ -143,7 +138,6 @@ public class InjectorForTopDownAnalyzerForJs {
|
|||||||
this.importsResolver = new ImportsResolver();
|
this.importsResolver = new ImportsResolver();
|
||||||
this.jetImportsFactory = new JetImportsFactory();
|
this.jetImportsFactory = new JetImportsFactory();
|
||||||
this.scriptHeaderResolver = new ScriptHeaderResolver();
|
this.scriptHeaderResolver = new ScriptHeaderResolver();
|
||||||
this.scriptParameterResolver = new ScriptParameterResolver();
|
|
||||||
this.overloadResolver = new OverloadResolver();
|
this.overloadResolver = new OverloadResolver();
|
||||||
this.overrideResolver = new OverrideResolver();
|
this.overrideResolver = new OverrideResolver();
|
||||||
this.typeHierarchyResolver = new TypeHierarchyResolver();
|
this.typeHierarchyResolver = new TypeHierarchyResolver();
|
||||||
@@ -249,11 +243,8 @@ public class InjectorForTopDownAnalyzerForJs {
|
|||||||
jetImportsFactory.setProject(project);
|
jetImportsFactory.setProject(project);
|
||||||
|
|
||||||
scriptHeaderResolver.setPackageFragmentProvider(mutablePackageFragmentProvider);
|
scriptHeaderResolver.setPackageFragmentProvider(mutablePackageFragmentProvider);
|
||||||
scriptHeaderResolver.setScriptParameterResolver(scriptParameterResolver);
|
|
||||||
scriptHeaderResolver.setTrace(bindingTrace);
|
scriptHeaderResolver.setTrace(bindingTrace);
|
||||||
|
|
||||||
scriptParameterResolver.setDependencyClassByQualifiedNameResolver(dependencyClassByQualifiedNameResolverDummy);
|
|
||||||
|
|
||||||
overloadResolver.setTrace(bindingTrace);
|
overloadResolver.setTrace(bindingTrace);
|
||||||
|
|
||||||
overrideResolver.setTrace(bindingTrace);
|
overrideResolver.setTrace(bindingTrace);
|
||||||
|
|||||||
Reference in New Issue
Block a user