JetElement.getContainingJetFile() introduced
This commit is contained in:
@@ -20,6 +20,9 @@ import com.intellij.psi.NavigatablePsiElement;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public interface JetElement extends NavigatablePsiElement {
|
||||
@NotNull
|
||||
JetFile getContainingJetFile();
|
||||
|
||||
<D> void acceptChildren(@NotNull JetTreeVisitor<D> visitor, D data);
|
||||
|
||||
<R, D> R accept(@NotNull JetVisitor<R, D> visitor, D data);
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.intellij.extapi.psi.ASTWrapperPsiElement;
|
||||
import com.intellij.lang.ASTNode;
|
||||
import com.intellij.lang.Language;
|
||||
import com.intellij.psi.PsiElementVisitor;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.PsiReference;
|
||||
import com.intellij.psi.PsiReferenceService;
|
||||
import com.intellij.psi.impl.source.resolve.reference.ReferenceProvidersRegistry;
|
||||
@@ -52,6 +53,14 @@ public class JetElementImpl extends ASTWrapperPsiElement implements JetElement {
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public JetFile getContainingJetFile() {
|
||||
PsiFile file = getContainingFile();
|
||||
assert file instanceof JetFile : "JetElement not inside JetFile: " + file + " " + file.getText();
|
||||
return (JetFile) file;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <D> void acceptChildren(@NotNull JetTreeVisitor<D> visitor, D data) {
|
||||
JetPsiUtil.visitChildren(this, visitor, data);
|
||||
|
||||
@@ -21,6 +21,7 @@ import com.intellij.lang.ASTNode;
|
||||
import com.intellij.lang.Language;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiElementVisitor;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.StubBasedPsiElement;
|
||||
import com.intellij.psi.stubs.IStubElementType;
|
||||
import com.intellij.psi.stubs.StubElement;
|
||||
@@ -58,6 +59,14 @@ public class JetElementImplStub<T extends StubElement> extends StubBasedPsiEleme
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public JetFile getContainingJetFile() {
|
||||
PsiFile file = getContainingFile();
|
||||
assert file instanceof JetFile : "JetElement not inside JetFile: " + file + " " + file.getText();
|
||||
return (JetFile) file;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <D> void acceptChildren(@NotNull JetTreeVisitor<D> visitor, D data) {
|
||||
PsiElement child = getFirstChild();
|
||||
|
||||
@@ -160,6 +160,12 @@ public class JetFile extends PsiFileBase implements JetDeclarationContainer, Jet
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public JetFile getContainingJetFile() {
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <D> void acceptChildren(@NotNull JetTreeVisitor<D> visitor, D data) {
|
||||
JetPsiUtil.visitChildren(this, visitor, data);
|
||||
|
||||
@@ -321,7 +321,7 @@ public class JetPsiUtil {
|
||||
|
||||
public static void deleteClass(@NotNull JetClassOrObject clazz) {
|
||||
CheckUtil.checkWritable(clazz);
|
||||
JetFile file = (JetFile) clazz.getContainingFile();
|
||||
JetFile file = clazz.getContainingJetFile();
|
||||
if (isLocal(clazz) || file.getDeclarations().size() > 1) {
|
||||
PsiElement parent = clazz.getParent();
|
||||
CodeEditUtil.removeChild(parent.getNode(), clazz.getNode());
|
||||
@@ -912,7 +912,7 @@ public class JetPsiUtil {
|
||||
|
||||
@Nullable
|
||||
public static String getPackageName(@NotNull JetElement element) {
|
||||
JetFile file = (JetFile) element.getContainingFile();
|
||||
JetFile file = element.getContainingJetFile();
|
||||
JetPackageDirective header = PsiTreeUtil.findChildOfType(file, JetPackageDirective.class);
|
||||
|
||||
return header != null ? header.getQualifiedName() : null;
|
||||
|
||||
@@ -82,7 +82,7 @@ public class ImportsResolver {
|
||||
// SCRIPT: process script import directives
|
||||
for (JetScript script : c.getScripts().keySet()) {
|
||||
WritableScope scriptScope = ((ScriptDescriptorImpl) c.getScripts().get(script)).getScopeForBodyResolution();
|
||||
processImportsInFile(lookupMode, scriptScope, ((JetFile) script.getContainingFile()).getImportDirectives(), true);
|
||||
processImportsInFile(lookupMode, scriptScope, script.getContainingJetFile().getImportDirectives(), true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -236,7 +236,7 @@ public class LazyTopDownAnalyzer {
|
||||
}
|
||||
|
||||
for (JetScript script : c.getScripts().keySet()) {
|
||||
resolveAndCheckImports((JetFile) script.getContainingFile(), resolveSession);
|
||||
resolveAndCheckImports(script.getContainingJetFile(), resolveSession);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -64,7 +64,7 @@ public class ScriptHeaderResolver {
|
||||
|
||||
|
||||
public void processScriptHierarchy(@NotNull TopDownAnalysisContext c, @NotNull JetScript script, @NotNull WritableScope outerScope) {
|
||||
JetFile file = (JetFile) script.getContainingFile();
|
||||
JetFile file = script.getContainingJetFile();
|
||||
FqName fqName = file.getPackageFqName();
|
||||
PackageFragmentDescriptor ns = packageFragmentProvider.getOrCreateFragment(fqName);
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ public class ScriptNameUtil {
|
||||
|
||||
@NotNull
|
||||
public static FqName classNameForScript(JetScript script) {
|
||||
JetFile file = (JetFile) script.getContainingFile();
|
||||
JetFile file = script.getContainingJetFile();
|
||||
JetScriptDefinition scriptDefinition = JetScriptDefinitionProvider.getInstance(file.getProject()).findScriptDefinition(file);
|
||||
|
||||
String name = file.getName();
|
||||
|
||||
@@ -54,7 +54,7 @@ public class ScriptParameterResolver {
|
||||
) {
|
||||
List<ValueParameterDescriptor> valueParameters = Lists.newArrayList();
|
||||
|
||||
JetFile file = (JetFile) declaration.getContainingFile();
|
||||
JetFile file = declaration.getContainingJetFile();
|
||||
JetScriptDefinition scriptDefinition = JetScriptDefinitionProvider.getInstance(file.getProject()).findScriptDefinition(file);
|
||||
|
||||
int index = 0;
|
||||
|
||||
@@ -177,7 +177,7 @@ public class LazyImportScope implements JetScope, LazyEntity {
|
||||
|
||||
ImportResolveStatus status = importedScopesProvider.invoke(importDirective).importResolveStatus;
|
||||
if (status != null && !status.descriptors.isEmpty()) {
|
||||
JetScope fileScope = resolveSession.getScopeProvider().getFileScope((JetFile) importDirective.getContainingFile());
|
||||
JetScope fileScope = resolveSession.getScopeProvider().getFileScope(importDirective.getContainingJetFile());
|
||||
ImportsResolver.reportUselessImport(importDirective, fileScope, status.descriptors, traceForImportResolve);
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -55,7 +55,7 @@ public class LazyPackageMemberScope extends AbstractLazyMemberScope<PackageFragm
|
||||
@NotNull
|
||||
@Override
|
||||
protected JetScope getScopeForMemberDeclarationResolution(JetDeclaration declaration) {
|
||||
return resolveSession.getScopeProvider().getFileScope((JetFile) declaration.getContainingFile());
|
||||
return resolveSession.getScopeProvider().getFileScope(declaration.getContainingJetFile());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+2
-2
@@ -58,7 +58,7 @@ public class LazyScriptDescriptor(
|
||||
val jetScript: JetScript,
|
||||
val _priority: Int
|
||||
) : ScriptDescriptor, LazyEntity, DeclarationDescriptorNonRootImpl(
|
||||
(jetScript.getContainingFile() as JetFile).getPackageFqName().let {
|
||||
jetScript.getContainingJetFile().getPackageFqName().let {
|
||||
fqName ->
|
||||
resolveSession.getPackageFragment(fqName).sure("Package not found $fqName")
|
||||
},
|
||||
@@ -102,7 +102,7 @@ public class LazyScriptDescriptor(
|
||||
return ChainedScope(
|
||||
this,
|
||||
"Scope for body resolution for " + this,
|
||||
resolveSession.getScopeProvider().getFileScope(jetScript.getContainingFile() as JetFile),
|
||||
resolveSession.getScopeProvider().getFileScope(jetScript.getContainingJetFile()),
|
||||
parametersScope
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user