fixes after merge
(added module configuration parameter)
This commit is contained in:
@@ -24,6 +24,7 @@ import com.intellij.psi.PsiFile;
|
|||||||
import com.intellij.psi.util.PsiTreeUtil;
|
import com.intellij.psi.util.PsiTreeUtil;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.jet.di.InjectorForBodyResolve;
|
import org.jetbrains.jet.di.InjectorForBodyResolve;
|
||||||
|
import org.jetbrains.jet.lang.ModuleConfiguration;
|
||||||
import org.jetbrains.jet.lang.descriptors.*;
|
import org.jetbrains.jet.lang.descriptors.*;
|
||||||
import org.jetbrains.jet.lang.psi.*;
|
import org.jetbrains.jet.lang.psi.*;
|
||||||
import org.jetbrains.jet.lang.resolve.*;
|
import org.jetbrains.jet.lang.resolve.*;
|
||||||
@@ -136,7 +137,7 @@ public class ResolveSessionUtils {
|
|||||||
|
|
||||||
private static void propertyAdditionalResolve(final ResolveSession resolveSession, final JetProperty jetProperty, DelegatingBindingTrace trace, JetFile file) {
|
private static void propertyAdditionalResolve(final ResolveSession resolveSession, final JetProperty jetProperty, DelegatingBindingTrace trace, JetFile file) {
|
||||||
EmptyBodyResolveContext bodyResolveContext = new EmptyBodyResolveContext();
|
EmptyBodyResolveContext bodyResolveContext = new EmptyBodyResolveContext();
|
||||||
BodyResolver bodyResolver = createBodyResolver(trace, file, bodyResolveContext);
|
BodyResolver bodyResolver = createBodyResolver(trace, file, bodyResolveContext, resolveSession.getModuleConfiguration());
|
||||||
PropertyDescriptor descriptor = (PropertyDescriptor) resolveSession.resolveToDescriptor(jetProperty);
|
PropertyDescriptor descriptor = (PropertyDescriptor) resolveSession.resolveToDescriptor(jetProperty);
|
||||||
|
|
||||||
JetExpression propertyInitializer = jetProperty.getInitializer();
|
JetExpression propertyInitializer = jetProperty.getInitializer();
|
||||||
@@ -161,7 +162,7 @@ public class ResolveSessionUtils {
|
|||||||
DelegatingBindingTrace trace,
|
DelegatingBindingTrace trace,
|
||||||
JetFile file
|
JetFile file
|
||||||
) {
|
) {
|
||||||
BodyResolver bodyResolver = createBodyResolver(trace, file);
|
BodyResolver bodyResolver = createBodyResolver(trace, file, resolveSession.getModuleConfiguration());
|
||||||
JetScope scope = resolveSession.getResolutionScope(namedFunction);
|
JetScope scope = resolveSession.getResolutionScope(namedFunction);
|
||||||
FunctionDescriptor functionDescriptor = (FunctionDescriptor) resolveSession.resolveToDescriptor(namedFunction);
|
FunctionDescriptor functionDescriptor = (FunctionDescriptor) resolveSession.resolveToDescriptor(namedFunction);
|
||||||
bodyResolver.resolveFunctionBody(trace, namedFunction, functionDescriptor, scope);
|
bodyResolver.resolveFunctionBody(trace, namedFunction, functionDescriptor, scope);
|
||||||
@@ -173,7 +174,7 @@ public class ResolveSessionUtils {
|
|||||||
DelegatingBindingTrace trace,
|
DelegatingBindingTrace trace,
|
||||||
JetFile file
|
JetFile file
|
||||||
) {
|
) {
|
||||||
BodyResolver bodyResolver = createBodyResolver(trace, file);
|
BodyResolver bodyResolver = createBodyResolver(trace, file, resolveSession.getModuleConfiguration());
|
||||||
JetClassOrObject classOrObject = PsiTreeUtil.getParentOfType(classInitializer, JetClassOrObject.class);
|
JetClassOrObject classOrObject = PsiTreeUtil.getParentOfType(classInitializer, JetClassOrObject.class);
|
||||||
LazyClassDescriptor classOrObjectDescriptor = (LazyClassDescriptor) resolveSession.resolveToDescriptor(classOrObject);
|
LazyClassDescriptor classOrObjectDescriptor = (LazyClassDescriptor) resolveSession.resolveToDescriptor(classOrObject);
|
||||||
bodyResolver.resolveAnonymousInitializers(classOrObject, classOrObjectDescriptor.getUnsubstitutedPrimaryConstructor(),
|
bodyResolver.resolveAnonymousInitializers(classOrObject, classOrObjectDescriptor.getUnsubstitutedPrimaryConstructor(),
|
||||||
@@ -182,15 +183,16 @@ public class ResolveSessionUtils {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static BodyResolver createBodyResolver(DelegatingBindingTrace trace, JetFile file, EmptyBodyResolveContext bodyResolveContext) {
|
private static BodyResolver createBodyResolver(DelegatingBindingTrace trace, JetFile file, EmptyBodyResolveContext bodyResolveContext,
|
||||||
|
ModuleConfiguration moduleConfiguration) {
|
||||||
TopDownAnalysisParameters parameters = new TopDownAnalysisParameters(
|
TopDownAnalysisParameters parameters = new TopDownAnalysisParameters(
|
||||||
Predicates.<PsiFile>alwaysTrue(), false, true, Collections.<AnalyzerScriptParameter>emptyList());
|
Predicates.<PsiFile>alwaysTrue(), false, true, Collections.<AnalyzerScriptParameter>emptyList());
|
||||||
InjectorForBodyResolve bodyResolve = new InjectorForBodyResolve(file.getProject(), parameters, trace, bodyResolveContext);
|
InjectorForBodyResolve bodyResolve = new InjectorForBodyResolve(file.getProject(), parameters, trace, bodyResolveContext, moduleConfiguration);
|
||||||
return bodyResolve.getBodyResolver();
|
return bodyResolve.getBodyResolver();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static BodyResolver createBodyResolver(DelegatingBindingTrace trace, JetFile file) {
|
private static BodyResolver createBodyResolver(DelegatingBindingTrace trace, JetFile file, ModuleConfiguration moduleConfiguration) {
|
||||||
return createBodyResolver(trace, file, new EmptyBodyResolveContext());
|
return createBodyResolver(trace, file, new EmptyBodyResolveContext(), moduleConfiguration);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static JetScope getExpressionResolutionScope(@NotNull ResolveSession resolveSession, @NotNull JetExpression expression) {
|
private static JetScope getExpressionResolutionScope(@NotNull ResolveSession resolveSession, @NotNull JetExpression expression) {
|
||||||
|
|||||||
+1
-1
@@ -61,7 +61,7 @@ public class AnnotationJavaDescriptorResolverTest extends TestCaseWithTmpdir {
|
|||||||
public void testCustomAnnotationWithKotlinEnum() throws IOException {
|
public void testCustomAnnotationWithKotlinEnum() throws IOException {
|
||||||
File testFile = new File(PATH + "kotlinEnum.kt");
|
File testFile = new File(PATH + "kotlinEnum.kt");
|
||||||
|
|
||||||
LoadDescriptorUtil.compileKotlinToDirAndGetAnalyzeExhaust(testFile, tmpdir, myTestRootDisposable);
|
LoadDescriptorUtil.compileKotlinToDirAndGetAnalyzeExhaust(testFile, tmpdir, myTestRootDisposable, ConfigurationKind.JDK_ONLY);
|
||||||
|
|
||||||
StringBuilder builder = new StringBuilder(tmpdir.getAbsolutePath());
|
StringBuilder builder = new StringBuilder(tmpdir.getAbsolutePath());
|
||||||
builder.append(File.pathSeparator);
|
builder.append(File.pathSeparator);
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
package org.jetbrains.jet.jvm.compiler;
|
package org.jetbrains.jet.jvm.compiler;
|
||||||
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.jet.ConfigurationKind;
|
||||||
import org.jetbrains.jet.analyzer.AnalyzeExhaust;
|
import org.jetbrains.jet.analyzer.AnalyzeExhaust;
|
||||||
import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor;
|
import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor;
|
||||||
import org.jetbrains.jet.lang.resolve.BindingContext;
|
import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||||
@@ -45,14 +46,14 @@ public final class LoadKotlinCustomTest extends TestCaseWithTmpdir {
|
|||||||
private void loadDescriptorsFromCompiledAndCompareWithTxt(@NotNull File expectedFile, @NotNull File kotlinFile)
|
private void loadDescriptorsFromCompiledAndCompareWithTxt(@NotNull File expectedFile, @NotNull File kotlinFile)
|
||||||
throws Exception {
|
throws Exception {
|
||||||
NamespaceDescriptor namespaceFromClass =
|
NamespaceDescriptor namespaceFromClass =
|
||||||
compileKotlinAndLoadTestNamespaceDescriptorFromBinary(kotlinFile, tmpdir, myTestRootDisposable);
|
compileKotlinAndLoadTestNamespaceDescriptorFromBinary(kotlinFile, tmpdir, myTestRootDisposable, ConfigurationKind.JDK_ONLY);
|
||||||
|
|
||||||
compareNamespaces(namespaceFromClass, namespaceFromClass, DONT_INCLUDE_METHODS_OF_OBJECT, expectedFile);
|
compareNamespaces(namespaceFromClass, namespaceFromClass, DONT_INCLUDE_METHODS_OF_OBJECT, expectedFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void loadDescriptorsFromSourceAndCompareWithTxt(@NotNull File expectedFile, @NotNull File kotlinFile)
|
private void loadDescriptorsFromSourceAndCompareWithTxt(@NotNull File expectedFile, @NotNull File kotlinFile)
|
||||||
throws Exception {
|
throws Exception {
|
||||||
AnalyzeExhaust exhaust = compileKotlinToDirAndGetAnalyzeExhaust(kotlinFile, tmpdir, getTestRootDisposable());
|
AnalyzeExhaust exhaust = compileKotlinToDirAndGetAnalyzeExhaust(kotlinFile, tmpdir, getTestRootDisposable(), ConfigurationKind.JDK_ONLY);
|
||||||
NamespaceDescriptor namespaceFromSource = exhaust.getBindingContext().get(BindingContext.FQNAME_TO_NAMESPACE_DESCRIPTOR,
|
NamespaceDescriptor namespaceFromSource = exhaust.getBindingContext().get(BindingContext.FQNAME_TO_NAMESPACE_DESCRIPTOR,
|
||||||
TEST_PACKAGE_FQNAME);
|
TEST_PACKAGE_FQNAME);
|
||||||
assert namespaceFromSource != null;
|
assert namespaceFromSource != null;
|
||||||
|
|||||||
Reference in New Issue
Block a user