diff --git a/.idea/ant.xml b/.idea/ant.xml index 82d39650097..f6d37890c2a 100644 --- a/.idea/ant.xml +++ b/.idea/ant.xml @@ -2,14 +2,6 @@ - - - - - - - - @@ -26,6 +18,14 @@ + + + + + + + + diff --git a/backend/src/org/jetbrains/jet/codegen/GenerationState.java b/backend/src/org/jetbrains/jet/codegen/GenerationState.java index 429b5bf66d2..c047f642d57 100644 --- a/backend/src/org/jetbrains/jet/codegen/GenerationState.java +++ b/backend/src/org/jetbrains/jet/codegen/GenerationState.java @@ -13,6 +13,7 @@ import org.jetbrains.jet.lang.descriptors.ClassDescriptor; import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.resolve.AnalyzingUtils; import org.jetbrains.jet.lang.resolve.BindingContext; +import org.jetbrains.jet.lang.resolve.java.JavaDefaultImports; import org.jetbrains.jet.lang.types.JetStandardLibrary; import org.objectweb.asm.ClassVisitor; import org.objectweb.asm.commons.Method; @@ -86,7 +87,7 @@ public class GenerationState { public void compile(JetFile psiFile) { final JetNamespace namespace = psiFile.getRootNamespace(); NamespaceCodegen codegen = forNamespace(namespace); - final BindingContext bindingContext = AnalyzingUtils.analyzeNamespace(namespace, JetControlFlowDataTraceFactory.EMPTY); + final BindingContext bindingContext = AnalyzingUtils.getInstance(JavaDefaultImports.JAVA_DEFAULT_IMPORTS).analyzeNamespace(namespace, JetControlFlowDataTraceFactory.EMPTY); bindingContexts.push(bindingContext); typeMapper = new JetTypeMapper(standardLibrary, bindingContext); try { diff --git a/confluence/buildConfluenceLexer.xml b/confluence/buildConfluenceLexer.xml index cc4c4742f1a..eb1897d655a 100644 --- a/confluence/buildConfluenceLexer.xml +++ b/confluence/buildConfluenceLexer.xml @@ -1,6 +1,6 @@ - + diff --git a/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDefaultImports.java b/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDefaultImports.java new file mode 100644 index 00000000000..47544d6f20b --- /dev/null +++ b/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDefaultImports.java @@ -0,0 +1,23 @@ +package org.jetbrains.jet.lang.resolve.java; + +import com.intellij.openapi.project.Project; +import org.jetbrains.jet.lang.JetSemanticServices; +import org.jetbrains.jet.lang.resolve.BindingTrace; +import org.jetbrains.jet.lang.resolve.ImportingStrategy; +import org.jetbrains.jet.lang.resolve.WritableScope; + +/** + * @author abreslav + */ +public class JavaDefaultImports { + public static final ImportingStrategy JAVA_DEFAULT_IMPORTS = new ImportingStrategy() { + @Override + public void addImports(Project project, JetSemanticServices semanticServices, BindingTrace trace, WritableScope rootScope) { +// scope.importScope(javaSemanticServices.getDescriptorResolver().resolveNamespace("").getMemberScope()); +// scope.importScope(javaSemanticServices.getDescriptorResolver().resolveNamespace("java.lang").getMemberScope()); + JavaSemanticServices javaSemanticServices = new JavaSemanticServices(project, semanticServices, trace); + rootScope.importScope(new JavaPackageScope("", null, javaSemanticServices)); + rootScope.importScope(new JavaPackageScope("java.lang", null, javaSemanticServices)); + } + }; +} diff --git a/idea/buildLexer.xml b/frontend/buildLexer.xml similarity index 100% rename from idea/buildLexer.xml rename to frontend/buildLexer.xml diff --git a/idea/src/org/jetbrains/jet/lang/resolve/AnalyzingUtils.java b/frontend/src/org/jetbrains/jet/lang/resolve/AnalyzingUtils.java similarity index 87% rename from idea/src/org/jetbrains/jet/lang/resolve/AnalyzingUtils.java rename to frontend/src/org/jetbrains/jet/lang/resolve/AnalyzingUtils.java index f1d84880f71..cd2b005ff16 100644 --- a/idea/src/org/jetbrains/jet/lang/resolve/AnalyzingUtils.java +++ b/frontend/src/org/jetbrains/jet/lang/resolve/AnalyzingUtils.java @@ -30,37 +30,31 @@ public class AnalyzingUtils { private final static Key> BINDING_CONTEXT = Key.create("BINDING_CONTEXT"); private static final Object lock = new Object(); - public static BindingContext analyzeFileWithCache(@NotNull final JetFile file) { - // TODO : Synchronization? - CachedValue bindingContextCachedValue = file.getUserData(BINDING_CONTEXT); - if (bindingContextCachedValue == null) { - bindingContextCachedValue = CachedValuesManager.getManager(file.getProject()).createCachedValue(new CachedValueProvider() { - @Override - public Result compute() { - synchronized (lock) { - try { - JetNamespace rootNamespace = file.getRootNamespace(); - BindingContext bindingContext = analyzeNamespace(rootNamespace, JetControlFlowDataTraceFactory.EMPTY); - return new Result(bindingContext, PsiModificationTracker.MODIFICATION_COUNT); - } - catch (ProcessCanceledException e) { - throw e; - } - catch (Throwable e) { - e.printStackTrace(); - BindingTraceContext bindingTraceContext = new BindingTraceContext(); - bindingTraceContext.getErrorHandler().genericError(file.getNode(), e.getClass().getSimpleName() + ": " + e.getMessage()); - return new Result(bindingTraceContext.getBindingContext(), PsiModificationTracker.MODIFICATION_COUNT); - } - } - } - }, false); - file.putUserData(BINDING_CONTEXT, bindingContextCachedValue); - } - return bindingContextCachedValue.getValue(); + public static AnalyzingUtils getInstance(@NotNull ImportingStrategy importingStrategy) { + return new AnalyzingUtils(importingStrategy); } - public static BindingContext analyzeNamespace(@NotNull JetNamespace namespace, @NotNull JetControlFlowDataTraceFactory flowDataTraceFactory) { + public static void checkForSyntacticErrors(@NotNull PsiElement root) { + root.acceptChildren(new PsiElementVisitor() { + @Override + public void visitElement(PsiElement element) { + element.acceptChildren(this); + } + + @Override + public void visitErrorElement(PsiErrorElement element) { + throw new IllegalArgumentException(element.getErrorDescription() + "; looking at " + element.getNode().getElementType() + " '" + element.getText() + ErrorHandler.atLocation(element)); + } + }); + } + + private final ImportingStrategy importingStrategy; + + private AnalyzingUtils(ImportingStrategy importingStrategy) { + this.importingStrategy = importingStrategy; + } + + public BindingContext analyzeNamespace(@NotNull JetNamespace namespace, @NotNull JetControlFlowDataTraceFactory flowDataTraceFactory) { Project project = namespace.getProject(); BindingTraceContext bindingTraceContext = new BindingTraceContext(); @@ -69,12 +63,7 @@ public class AnalyzingUtils { JetScope libraryScope = semanticServices.getStandardLibrary().getLibraryScope(); ModuleDescriptor owner = new ModuleDescriptor(""); final WritableScope scope = new WritableScopeImpl(libraryScope, owner, bindingTraceContext.getErrorHandler()).setDebugName("Root scope in analyzeNamespace"); -// scope.importScope(javaSemanticServices.getDescriptorResolver().resolveNamespace("").getMemberScope()); -// scope.importScope(javaSemanticServices.getDescriptorResolver().resolveNamespace("java.lang").getMemberScope()); - JavaSemanticServices javaSemanticServices = new JavaSemanticServices(project, semanticServices, bindingTraceContext); - scope.importScope(new JavaPackageScope("", null, javaSemanticServices)); - scope.importScope(new JavaPackageScope("java.lang", null, javaSemanticServices)); - + importingStrategy.addImports(project, semanticServices, bindingTraceContext, scope); TopDownAnalyzer.process(semanticServices, bindingTraceContext, scope, new NamespaceLike.Adapter(owner) { @Override @@ -110,17 +99,33 @@ public class AnalyzingUtils { return bindingTraceContext.getBindingContext(); } - public static void checkForSyntacticErrors(@NotNull PsiElement root) { - root.acceptChildren(new PsiElementVisitor() { - @Override - public void visitElement(PsiElement element) { - element.acceptChildren(this); - } - - @Override - public void visitErrorElement(PsiErrorElement element) { - throw new IllegalArgumentException(element.getErrorDescription() + "; looking at " + element.getNode().getElementType() + " '" + element.getText() + ErrorHandler.atLocation(element)); - } - }); + public BindingContext analyzeFileWithCache(@NotNull final JetFile file) { + // TODO : Synchronization? + CachedValue bindingContextCachedValue = file.getUserData(BINDING_CONTEXT); + if (bindingContextCachedValue == null) { + bindingContextCachedValue = CachedValuesManager.getManager(file.getProject()).createCachedValue(new CachedValueProvider() { + @Override + public Result compute() { + synchronized (lock) { + try { + JetNamespace rootNamespace = file.getRootNamespace(); + BindingContext bindingContext = analyzeNamespace(rootNamespace, JetControlFlowDataTraceFactory.EMPTY); + return new Result(bindingContext, PsiModificationTracker.MODIFICATION_COUNT); + } + catch (ProcessCanceledException e) { + throw e; + } + catch (Throwable e) { + e.printStackTrace(); + BindingTraceContext bindingTraceContext = new BindingTraceContext(); + bindingTraceContext.getErrorHandler().genericError(file.getNode(), e.getClass().getSimpleName() + ": " + e.getMessage()); + return new Result(bindingTraceContext.getBindingContext(), PsiModificationTracker.MODIFICATION_COUNT); + } + } + } + }, false); + file.putUserData(BINDING_CONTEXT, bindingContextCachedValue); + } + return bindingContextCachedValue.getValue(); } } diff --git a/frontend/src/org/jetbrains/jet/lang/resolve/ImportingStrategy.java b/frontend/src/org/jetbrains/jet/lang/resolve/ImportingStrategy.java new file mode 100644 index 00000000000..546545cc36a --- /dev/null +++ b/frontend/src/org/jetbrains/jet/lang/resolve/ImportingStrategy.java @@ -0,0 +1,18 @@ +package org.jetbrains.jet.lang.resolve; + +import com.intellij.openapi.project.Project; +import org.jetbrains.jet.lang.JetSemanticServices; + +/** +* @author abreslav +*/ +public interface ImportingStrategy { + ImportingStrategy NONE = new ImportingStrategy() { + @Override + public void addImports(Project project, JetSemanticServices semanticServices, BindingTrace trace, WritableScope rootScope) { + + } + }; + + void addImports(Project project, JetSemanticServices semanticServices, BindingTrace trace, WritableScope rootScope); +} diff --git a/frontend/src/org/jetbrains/jet/lexer/_JetLexer.java b/frontend/src/org/jetbrains/jet/lexer/_JetLexer.java index 2c8e40a8f8f..6045af4a830 100644 --- a/frontend/src/org/jetbrains/jet/lexer/_JetLexer.java +++ b/frontend/src/org/jetbrains/jet/lexer/_JetLexer.java @@ -1,4 +1,4 @@ -/* The following code was generated by JFlex 1.4.3 on 9/9/11 2:48 PM */ +/* The following code was generated by JFlex 1.4.3 on 9/9/11 9:32 PM */ /* It's an automatically generated code. Do not modify it. */ package org.jetbrains.jet.lexer; @@ -14,8 +14,8 @@ import org.jetbrains.jet.lexer.JetTokens; /** * This class is a scanner generated by * JFlex 1.4.3 - * on 9/9/11 2:48 PM from the specification file - * /Users/abreslav/work/jet/idea/src/org/jetbrains/jet/lexer/Jet.flex + * on 9/9/11 9:32 PM from the specification file + * /Users/abreslav/work/jet/frontend/src/org/jetbrains/jet/lexer/Jet.flex */ class _JetLexer implements FlexLexer { /** initial size of the lookahead buffer */ diff --git a/grammar/buildGrammarLexer.xml b/grammar/buildGrammarLexer.xml index ecf2cfdc4ce..5fefcb1f163 100644 --- a/grammar/buildGrammarLexer.xml +++ b/grammar/buildGrammarLexer.xml @@ -1,6 +1,6 @@ - + diff --git a/grammar/src/org/jetbrains/jet/grammar/_GrammarLexer.java b/grammar/src/org/jetbrains/jet/grammar/_GrammarLexer.java index f9007094888..b1348053be1 100644 --- a/grammar/src/org/jetbrains/jet/grammar/_GrammarLexer.java +++ b/grammar/src/org/jetbrains/jet/grammar/_GrammarLexer.java @@ -1,4 +1,4 @@ -/* The following code was generated by JFlex 1.4.3 on 6/28/11 5:58 PM */ +/* The following code was generated by JFlex 1.4.3 on 9/9/11 9:32 PM */ /* It's an automatically generated code. Do not modify it. */ package org.jetbrains.jet.grammar; @@ -13,7 +13,7 @@ package org.jetbrains.jet.grammar; /** * This class is a scanner generated by * JFlex 1.4.3 - * on 6/28/11 5:58 PM from the specification file + * on 9/9/11 9:32 PM from the specification file * /Users/abreslav/work/jet/grammar/src/org/jetbrains/jet/grammar/Grammar.flex */ class _GrammarLexer { diff --git a/idea/idea.iml b/idea/idea.iml index de42a3957d3..23b8c669d6e 100644 --- a/idea/idea.iml +++ b/idea/idea.iml @@ -19,6 +19,7 @@ + diff --git a/idea/src/org/jetbrains/jet/plugin/AnalyzerFacade.java b/idea/src/org/jetbrains/jet/plugin/AnalyzerFacade.java new file mode 100644 index 00000000000..ec376a187b8 --- /dev/null +++ b/idea/src/org/jetbrains/jet/plugin/AnalyzerFacade.java @@ -0,0 +1,24 @@ +package org.jetbrains.jet.plugin; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.jet.lang.cfg.pseudocode.JetControlFlowDataTraceFactory; +import org.jetbrains.jet.lang.psi.JetFile; +import org.jetbrains.jet.lang.psi.JetNamespace; +import org.jetbrains.jet.lang.resolve.AnalyzingUtils; +import org.jetbrains.jet.lang.resolve.BindingContext; +import org.jetbrains.jet.lang.resolve.java.JavaDefaultImports; + +/** + * @author abreslav + */ +public class AnalyzerFacade { + public static BindingContext analyzeNamespace(@NotNull JetNamespace namespace, @NotNull JetControlFlowDataTraceFactory flowDataTraceFactory) { + return AnalyzingUtils.getInstance(JavaDefaultImports.JAVA_DEFAULT_IMPORTS).analyzeNamespace(namespace, flowDataTraceFactory); + } + + public static BindingContext analyzeFileWithCache(@NotNull JetFile file) { + return AnalyzingUtils.getInstance(JavaDefaultImports.JAVA_DEFAULT_IMPORTS).analyzeFileWithCache(file); + } + + +} diff --git a/idea/src/org/jetbrains/jet/plugin/JetQuickDocumentationProvider.java b/idea/src/org/jetbrains/jet/plugin/JetQuickDocumentationProvider.java index 2b1cc65b9bf..68ff66afb3d 100644 --- a/idea/src/org/jetbrains/jet/plugin/JetQuickDocumentationProvider.java +++ b/idea/src/org/jetbrains/jet/plugin/JetQuickDocumentationProvider.java @@ -6,7 +6,6 @@ import com.intellij.psi.util.PsiTreeUtil; import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor; import org.jetbrains.jet.lang.psi.JetFile; import org.jetbrains.jet.lang.psi.JetReferenceExpression; -import org.jetbrains.jet.lang.resolve.AnalyzingUtils; import org.jetbrains.jet.lang.resolve.BindingContext; import org.jetbrains.jet.lang.resolve.BindingContextUtils; import org.jetbrains.jet.resolve.DescriptorRenderer; @@ -26,7 +25,7 @@ public class JetQuickDocumentationProvider extends AbstractDocumentationProvider ref = PsiTreeUtil.getParentOfType(originalElement, JetReferenceExpression.class); } if (ref != null) { - BindingContext bindingContext = AnalyzingUtils.analyzeFileWithCache((JetFile) element.getContainingFile()); + BindingContext bindingContext = AnalyzerFacade.analyzeFileWithCache((JetFile) element.getContainingFile()); DeclarationDescriptor declarationDescriptor = bindingContext.get(BindingContext.REFERENCE_TARGET, ref); if (declarationDescriptor != null) { return render(declarationDescriptor); diff --git a/idea/src/org/jetbrains/jet/plugin/actions/ShowExpressionTypeAction.java b/idea/src/org/jetbrains/jet/plugin/actions/ShowExpressionTypeAction.java index 7b13fb6aebd..26f778b3fe1 100644 --- a/idea/src/org/jetbrains/jet/plugin/actions/ShowExpressionTypeAction.java +++ b/idea/src/org/jetbrains/jet/plugin/actions/ShowExpressionTypeAction.java @@ -11,9 +11,9 @@ import com.intellij.psi.PsiFile; import com.intellij.psi.util.PsiTreeUtil; import org.jetbrains.jet.lang.psi.JetExpression; import org.jetbrains.jet.lang.psi.JetFile; -import org.jetbrains.jet.lang.resolve.AnalyzingUtils; import org.jetbrains.jet.lang.resolve.BindingContext; import org.jetbrains.jet.lang.types.JetType; +import org.jetbrains.jet.plugin.AnalyzerFacade; import org.jetbrains.jet.plugin.JetLanguage; /** @@ -26,7 +26,7 @@ public class ShowExpressionTypeAction extends AnAction { PsiFile psiFile = e.getData(LangDataKeys.PSI_FILE); assert editor != null && psiFile != null; JetExpression expression; - BindingContext bindingContext = AnalyzingUtils.analyzeFileWithCache((JetFile) psiFile); + BindingContext bindingContext = AnalyzerFacade.analyzeFileWithCache((JetFile) psiFile); if (editor.getSelectionModel().hasSelection()) { int startOffset = editor.getSelectionModel().getSelectionStart(); int endOffset = editor.getSelectionModel().getSelectionEnd(); diff --git a/idea/src/org/jetbrains/jet/plugin/annotations/DebugInfoAnnotator.java b/idea/src/org/jetbrains/jet/plugin/annotations/DebugInfoAnnotator.java index 19295a11b59..9014574c050 100644 --- a/idea/src/org/jetbrains/jet/plugin/annotations/DebugInfoAnnotator.java +++ b/idea/src/org/jetbrains/jet/plugin/annotations/DebugInfoAnnotator.java @@ -13,10 +13,10 @@ import org.jetbrains.jet.JetNodeTypes; import org.jetbrains.jet.lang.JetDiagnostic; import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor; import org.jetbrains.jet.lang.psi.*; -import org.jetbrains.jet.lang.resolve.AnalyzingUtils; import org.jetbrains.jet.lang.resolve.BindingContext; import org.jetbrains.jet.lang.types.ErrorUtils; import org.jetbrains.jet.lexer.JetTokens; +import org.jetbrains.jet.plugin.AnalyzerFacade; import org.jetbrains.jet.plugin.JetHighlighter; import java.util.Collection; @@ -51,7 +51,7 @@ public class DebugInfoAnnotator implements Annotator { if (element instanceof JetFile) { JetFile file = (JetFile) element; try { - final BindingContext bindingContext = AnalyzingUtils.analyzeFileWithCache(file); + final BindingContext bindingContext = AnalyzerFacade.analyzeFileWithCache(file); final Set unresolvedReferences = Sets.newHashSet(); for (JetDiagnostic diagnostic : bindingContext.getDiagnostics()) { diff --git a/idea/src/org/jetbrains/jet/plugin/annotations/JetLineMarkerProvider.java b/idea/src/org/jetbrains/jet/plugin/annotations/JetLineMarkerProvider.java index 3b79eeed50b..e53c0587f4e 100644 --- a/idea/src/org/jetbrains/jet/plugin/annotations/JetLineMarkerProvider.java +++ b/idea/src/org/jetbrains/jet/plugin/annotations/JetLineMarkerProvider.java @@ -16,12 +16,15 @@ import com.intellij.psi.PsiElement; import com.intellij.psi.util.PsiTreeUtil; import com.intellij.psi.util.PsiUtilBase; import com.intellij.ui.awt.RelativePoint; -import com.intellij.util.*; +import com.intellij.util.Function; +import com.intellij.util.PlatformIcons; +import com.intellij.util.PsiIconUtil; +import com.intellij.util.PsiNavigateUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.psi.*; -import org.jetbrains.jet.lang.resolve.AnalyzingUtils; import org.jetbrains.jet.lang.resolve.BindingContext; +import org.jetbrains.jet.plugin.AnalyzerFacade; import org.jetbrains.jet.resolve.DescriptorRenderer; import javax.swing.*; @@ -42,7 +45,7 @@ public class JetLineMarkerProvider implements LineMarkerProvider { JetFile file = PsiTreeUtil.getParentOfType(element, JetFile.class); if (file == null) return null; - final BindingContext bindingContext = AnalyzingUtils.analyzeFileWithCache(file); + final BindingContext bindingContext = AnalyzerFacade.analyzeFileWithCache(file); if (element instanceof JetClass) { JetClass jetClass = (JetClass) element; diff --git a/idea/src/org/jetbrains/jet/plugin/annotations/JetPsiChecker.java b/idea/src/org/jetbrains/jet/plugin/annotations/JetPsiChecker.java index c0d4877795a..4db5848500a 100644 --- a/idea/src/org/jetbrains/jet/plugin/annotations/JetPsiChecker.java +++ b/idea/src/org/jetbrains/jet/plugin/annotations/JetPsiChecker.java @@ -11,14 +11,14 @@ import com.intellij.psi.PsiElement; import com.intellij.psi.PsiReference; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.lang.ErrorHandler; -import org.jetbrains.jet.plugin.JetHighlighter; -import org.jetbrains.jet.lang.psi.*; -import org.jetbrains.jet.lang.resolve.AnalyzingUtils; -import org.jetbrains.jet.lang.resolve.BindingContext; import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor; -import org.jetbrains.jet.lang.types.JetType; import org.jetbrains.jet.lang.descriptors.PropertyDescriptor; import org.jetbrains.jet.lang.descriptors.VariableDescriptor; +import org.jetbrains.jet.lang.psi.*; +import org.jetbrains.jet.lang.resolve.BindingContext; +import org.jetbrains.jet.lang.types.JetType; +import org.jetbrains.jet.plugin.AnalyzerFacade; +import org.jetbrains.jet.plugin.JetHighlighter; import java.util.HashSet; import java.util.Set; @@ -43,7 +43,7 @@ public class JetPsiChecker implements Annotator { if (element instanceof JetFile) { JetFile file = (JetFile) element; try { - final BindingContext bindingContext = AnalyzingUtils.analyzeFileWithCache(file); + final BindingContext bindingContext = AnalyzerFacade.analyzeFileWithCache(file); ErrorHandler errorHandler = new ErrorHandler() { private final Set redeclarations = new HashSet(); diff --git a/idea/src/org/jetbrains/jet/plugin/debugger/JetPositionManager.java b/idea/src/org/jetbrains/jet/plugin/debugger/JetPositionManager.java index d8fcb6558ef..073d4d9ba61 100644 --- a/idea/src/org/jetbrains/jet/plugin/debugger/JetPositionManager.java +++ b/idea/src/org/jetbrains/jet/plugin/debugger/JetPositionManager.java @@ -20,9 +20,9 @@ import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.codegen.GenerationState; import org.jetbrains.jet.codegen.JetTypeMapper; import org.jetbrains.jet.lang.psi.*; -import org.jetbrains.jet.lang.resolve.AnalyzingUtils; import org.jetbrains.jet.lang.resolve.BindingContext; import org.jetbrains.jet.lang.types.JetStandardLibrary; +import org.jetbrains.jet.plugin.AnalyzerFacade; import java.util.*; @@ -125,7 +125,7 @@ public class JetPositionManager implements PositionManager { if (mapper != null) { return mapper; } - final BindingContext bindingContext = AnalyzingUtils.analyzeFileWithCache(file); + final BindingContext bindingContext = AnalyzerFacade.analyzeFileWithCache(file); final JetStandardLibrary standardLibrary = JetStandardLibrary.getJetStandardLibrary(myDebugProcess.getProject()); final JetTypeMapper typeMapper = new JetTypeMapper(standardLibrary, bindingContext); file.acceptChildren(new JetVisitorVoid() { diff --git a/idea/src/org/jetbrains/jet/plugin/references/JetPsiReference.java b/idea/src/org/jetbrains/jet/plugin/references/JetPsiReference.java index 77015166889..033497955d8 100644 --- a/idea/src/org/jetbrains/jet/plugin/references/JetPsiReference.java +++ b/idea/src/org/jetbrains/jet/plugin/references/JetPsiReference.java @@ -9,9 +9,9 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor; import org.jetbrains.jet.lang.psi.JetFile; import org.jetbrains.jet.lang.psi.JetReferenceExpression; -import org.jetbrains.jet.lang.resolve.AnalyzingUtils; import org.jetbrains.jet.lang.resolve.BindingContext; import org.jetbrains.jet.lang.resolve.BindingContextUtils; +import org.jetbrains.jet.plugin.AnalyzerFacade; import java.util.Collection; @@ -75,7 +75,7 @@ public abstract class JetPsiReference implements PsiPolyVariantReference { protected PsiElement doResolve() { JetFile file = (JetFile) getElement().getContainingFile(); - BindingContext bindingContext = AnalyzingUtils.analyzeFileWithCache(file); + BindingContext bindingContext = AnalyzerFacade.analyzeFileWithCache(file); PsiElement psiElement = BindingContextUtils.resolveToDeclarationPsiElement(bindingContext, myExpression); if (psiElement != null) { return psiElement; @@ -87,7 +87,7 @@ public abstract class JetPsiReference implements PsiPolyVariantReference { protected ResolveResult[] doMultiResolve() { JetFile file = (JetFile) getElement().getContainingFile(); - BindingContext bindingContext = AnalyzingUtils.analyzeFileWithCache(file); + BindingContext bindingContext = AnalyzerFacade.analyzeFileWithCache(file); Collection declarationDescriptors = bindingContext.get(AMBIGUOUS_REFERENCE_TARGET, myExpression); assert declarationDescriptors != null; ResolveResult[] results = new ResolveResult[declarationDescriptors.size()]; diff --git a/idea/src/org/jetbrains/jet/plugin/references/JetSimpleNameReference.java b/idea/src/org/jetbrains/jet/plugin/references/JetSimpleNameReference.java index ba775d20dce..f6e7f7e6d57 100644 --- a/idea/src/org/jetbrains/jet/plugin/references/JetSimpleNameReference.java +++ b/idea/src/org/jetbrains/jet/plugin/references/JetSimpleNameReference.java @@ -12,10 +12,10 @@ import com.intellij.util.IncorrectOperationException; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.psi.*; -import org.jetbrains.jet.lang.resolve.AnalyzingUtils; import org.jetbrains.jet.lang.resolve.BindingContext; import org.jetbrains.jet.lang.resolve.JetScope; import org.jetbrains.jet.lang.types.JetType; +import org.jetbrains.jet.plugin.AnalyzerFacade; import org.jetbrains.jet.resolve.DescriptorRenderer; import java.util.List; @@ -49,7 +49,7 @@ class JetSimpleNameReference extends JetPsiReference { JetQualifiedExpression qualifiedExpression = (JetQualifiedExpression) parent; JetExpression receiverExpression = qualifiedExpression.getReceiverExpression(); JetFile file = (JetFile) myExpression.getContainingFile(); - BindingContext bindingContext = AnalyzingUtils.analyzeFileWithCache(file); + BindingContext bindingContext = AnalyzerFacade.analyzeFileWithCache(file); final JetType expressionType = bindingContext.get(BindingContext.EXPRESSION_TYPE, receiverExpression); if (expressionType != null) { return collectLookupElements(bindingContext, expressionType.getMemberScope()); @@ -57,7 +57,7 @@ class JetSimpleNameReference extends JetPsiReference { } else { JetFile file = (JetFile) myExpression.getContainingFile(); - BindingContext bindingContext = AnalyzingUtils.analyzeFileWithCache(file); + BindingContext bindingContext = AnalyzerFacade.analyzeFileWithCache(file); JetScope resolutionScope = bindingContext.get(BindingContext.RESOLUTION_SCOPE, myExpression); if (resolutionScope != null) { return collectLookupElements(bindingContext, resolutionScope); diff --git a/idea/tests/org/jetbrains/jet/cfg/JetControlFlowTest.java b/idea/tests/org/jetbrains/jet/cfg/JetControlFlowTest.java index cb320013468..0399c97acf3 100644 --- a/idea/tests/org/jetbrains/jet/cfg/JetControlFlowTest.java +++ b/idea/tests/org/jetbrains/jet/cfg/JetControlFlowTest.java @@ -18,7 +18,7 @@ import org.jetbrains.jet.lang.psi.JetElement; import org.jetbrains.jet.lang.psi.JetExpression; import org.jetbrains.jet.lang.psi.JetFile; import org.jetbrains.jet.lang.psi.JetNamedDeclaration; -import org.jetbrains.jet.lang.resolve.AnalyzingUtils; +import org.jetbrains.jet.plugin.AnalyzerFacade; import java.io.File; import java.io.FileNotFoundException; @@ -68,7 +68,7 @@ public class JetControlFlowTest extends JetTestCaseBase { }; - AnalyzingUtils.analyzeNamespace(file.getRootNamespace(), new JetControlFlowDataTraceFactory() { + AnalyzerFacade.analyzeNamespace(file.getRootNamespace(), new JetControlFlowDataTraceFactory() { @NotNull @Override public JetPseudocodeTrace createTrace(JetElement element) { diff --git a/idea/tests/org/jetbrains/jet/parsing/JetCodeConformanceTest.java b/idea/tests/org/jetbrains/jet/parsing/JetCodeConformanceTest.java index 70b7bd096b2..345624f0b10 100644 --- a/idea/tests/org/jetbrains/jet/parsing/JetCodeConformanceTest.java +++ b/idea/tests/org/jetbrains/jet/parsing/JetCodeConformanceTest.java @@ -19,7 +19,7 @@ public class JetCodeConformanceTest extends TestCase { TestSuite suite = new TestSuite(); TestSuite ats = new TestSuite("Side-effect-free at()'s in assertions"); suite.addTest(ats); - File parsingSourceDir = new File("./idea/src/org/jetbrains/jet/lang/parsing"); + File parsingSourceDir = new File("./frontend/src/org/jetbrains/jet/lang/parsing"); for (File sourceFile : parsingSourceDir.listFiles()) { if (sourceFile.getName().endsWith(".java")) { ats.addTest(new JetCodeConformanceTest(sourceFile.getName(), sourceFile)); diff --git a/idea/tests/org/jetbrains/jet/resolve/ExpectedResolveData.java b/idea/tests/org/jetbrains/jet/resolve/ExpectedResolveData.java index 7b70475240f..b0fafdf8d07 100644 --- a/idea/tests/org/jetbrains/jet/resolve/ExpectedResolveData.java +++ b/idea/tests/org/jetbrains/jet/resolve/ExpectedResolveData.java @@ -10,13 +10,13 @@ import org.jetbrains.jet.lang.JetSemanticServices; import org.jetbrains.jet.lang.cfg.pseudocode.JetControlFlowDataTraceFactory; import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.psi.*; -import org.jetbrains.jet.lang.resolve.AnalyzingUtils; import org.jetbrains.jet.lang.resolve.BindingContext; import org.jetbrains.jet.lang.resolve.BindingContextUtils; import org.jetbrains.jet.lang.types.ErrorUtils; import org.jetbrains.jet.lang.types.JetStandardLibrary; import org.jetbrains.jet.lang.types.JetType; import org.jetbrains.jet.lang.types.TypeConstructor; +import org.jetbrains.jet.plugin.AnalyzerFacade; import java.util.HashMap; import java.util.HashSet; @@ -95,7 +95,7 @@ public class ExpectedResolveData { JetSemanticServices semanticServices = JetSemanticServices.createSemanticServices(file.getProject()); JetStandardLibrary lib = semanticServices.getStandardLibrary(); - BindingContext bindingContext = AnalyzingUtils.analyzeNamespace(file.getRootNamespace(), JetControlFlowDataTraceFactory.EMPTY); + BindingContext bindingContext = AnalyzerFacade.analyzeNamespace(file.getRootNamespace(), JetControlFlowDataTraceFactory.EMPTY); ErrorHandler.applyHandler(new ErrorHandler() { @Override public void unresolvedReference(@NotNull JetReferenceExpression referenceExpression) {