diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/parsing/JetParserDefinition.java b/compiler/frontend/src/org/jetbrains/jet/lang/parsing/JetParserDefinition.java index 52bba964f59..893ecaeceae 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/parsing/JetParserDefinition.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/parsing/JetParserDefinition.java @@ -106,7 +106,7 @@ public class JetParserDefinition implements ParserDefinition { @Override public PsiFile createFile(FileViewProvider fileViewProvider) { - return new JetFile(fileViewProvider); + return new JetFile(fileViewProvider, false); } @Override diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetCodeFragmentImpl.java b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetCodeFragmentImpl.java index e8c7450a03f..d3932448996 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetCodeFragmentImpl.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetCodeFragmentImpl.java @@ -31,7 +31,7 @@ public class JetCodeFragmentImpl extends JetFile implements PsiCodeFragment { public JetCodeFragmentImpl(Project project, String name, CharSequence text, IElementType elementType, PsiElement context) { super(((PsiManagerEx) PsiManager.getInstance(project)).getFileManager().createFileViewProvider( - new LightVirtualFile(name, JetFileType.INSTANCE, text), true)); + new LightVirtualFile(name, JetFileType.INSTANCE, text), true), false); ((SingleRootFileViewProvider)getViewProvider()).forceCachedPsi(this); init(TokenType.CODE_FRAGMENT, elementType); this.context = context; diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetFile.java b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetFile.java index 14b66af3329..ea4f138e853 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetFile.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetFile.java @@ -18,9 +18,22 @@ package org.jetbrains.jet.lang.psi; import com.intellij.extapi.psi.PsiFileBase; import com.intellij.lang.ASTNode; +import com.intellij.lang.FileASTNode; +import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.fileTypes.FileType; +import com.intellij.openapi.util.text.StringUtil; +import com.intellij.openapi.vfs.VirtualFile; +import com.intellij.openapi.vfs.VirtualFileWithId; import com.intellij.psi.FileViewProvider; import com.intellij.psi.PsiElementVisitor; +import com.intellij.psi.PsiFile; +import com.intellij.psi.PsiLock; +import com.intellij.psi.stubs.ObjectStubTree; +import com.intellij.psi.stubs.StubBase; +import com.intellij.psi.stubs.StubTree; +import com.intellij.psi.stubs.StubTreeLoader; +import com.intellij.psi.tree.IElementType; +import com.intellij.psi.tree.IStubFileElementType; import com.intellij.psi.util.PsiTreeUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -32,8 +45,21 @@ import org.jetbrains.jet.plugin.JetLanguage; import java.util.List; public class JetFile extends PsiFileBase implements JetDeclarationContainer, JetElement { - public JetFile(FileViewProvider viewProvider) { + + private final boolean isCompiled; + + public JetFile(FileViewProvider viewProvider, boolean compiled) { super(viewProvider, JetLanguage.INSTANCE); + this.isCompiled = compiled; + } + + @Override + public FileASTNode getNode() { + return super.getNode(); + } + + public boolean isCompiled() { + return isCompiled; } @Override @@ -76,7 +102,7 @@ public class JetFile extends PsiFileBase implements JetDeclarationContainer, Jet @Nullable public String getPackageName() { - PsiJetFileStub stub = (PsiJetFileStub)getStub(); + PsiJetFileStub stub = (PsiJetFileStub) getStub(); if (stub != null) { return stub.getPackageName(); } @@ -91,7 +117,7 @@ public class JetFile extends PsiFileBase implements JetDeclarationContainer, Jet } public boolean isScript() { - PsiJetFileStub stub = (PsiJetFileStub)getStub(); + PsiJetFileStub stub = (PsiJetFileStub) getStub(); if (stub != null) { return stub.isScript(); } diff --git a/idea/src/org/jetbrains/jet/plugin/libraries/JetDummyClassFileViewProvider.java b/idea/src/org/jetbrains/jet/plugin/libraries/JetDummyClassFileViewProvider.java index 95c196634d6..a94d7832e3d 100644 --- a/idea/src/org/jetbrains/jet/plugin/libraries/JetDummyClassFileViewProvider.java +++ b/idea/src/org/jetbrains/jet/plugin/libraries/JetDummyClassFileViewProvider.java @@ -43,7 +43,7 @@ class JetDummyClassFileViewProvider extends UserDataHolderBase implements FileVi virtualFile = file; this.text = text; - jetFile = new JetFile(this) { + jetFile = new JetFile(this, true) { @Override public VirtualFile getVirtualFile() { return virtualFile; // overridden to return not-null; original method returns null when isEventSystemEnabled() = false