Minor: do not pass psiManager redundantly

This commit is contained in:
Pavel V. Talanov
2015-11-05 20:38:14 +03:00
parent 6dbe8e8a1b
commit 1dd7e0edba
8 changed files with 20 additions and 30 deletions
@@ -139,7 +139,7 @@ public class CliLightClassGenerationSupport(project: Project) : LightClassGenera
}
override fun getPsiClass(classOrObject: KtClassOrObject): PsiClass? {
return KtLightClassForExplicitDeclaration.create(psiManager, classOrObject)
return KtLightClassForExplicitDeclaration.create(classOrObject)
}
override fun resolveClassToDescriptor(classOrObject: KtClassOrObject): ClassDescriptor? {
@@ -20,7 +20,6 @@ import com.intellij.lang.Language;
import com.intellij.psi.PsiClass;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiFile;
import com.intellij.psi.PsiManager;
import com.intellij.psi.impl.light.AbstractLightClass;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -41,10 +40,8 @@ public class FakeLightClassForFileOfPackage extends AbstractLightClass implement
private final KtLightClassForFacade delegate;
private final KtFile file;
public FakeLightClassForFileOfPackage(
@NotNull PsiManager manager, @NotNull KtLightClassForFacade delegate, @NotNull KtFile file
) {
super(manager);
public FakeLightClassForFileOfPackage(@NotNull KtLightClassForFacade delegate, @NotNull KtFile file) {
super(delegate.getManager());
this.delegate = delegate;
this.file = file;
}
@@ -82,7 +79,7 @@ public class FakeLightClassForFileOfPackage extends AbstractLightClass implement
@NotNull
@Override
public PsiElement copy() {
return new FakeLightClassForFileOfPackage(getManager(), delegate, file);
return new FakeLightClassForFileOfPackage(delegate, file);
}
@Override
@@ -37,8 +37,8 @@ class KtLightClassForAnonymousDeclaration extends KtLightClassForExplicitDeclara
private SoftReference<PsiClassType> cachedBaseType = null;
KtLightClassForAnonymousDeclaration(@NotNull PsiManager manager, @NotNull FqName name, @NotNull KtClassOrObject classOrObject) {
super(manager, name, classOrObject);
KtLightClassForAnonymousDeclaration(@NotNull FqName name, @NotNull KtClassOrObject classOrObject) {
super(name, classOrObject);
}
@NotNull
@@ -16,17 +16,15 @@
package org.jetbrains.kotlin.asJava
import com.intellij.psi.PsiManager
import com.intellij.psi.PsiEnumConstant
import com.intellij.psi.PsiEnumConstantInitializer
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.psi.KtEnumEntry
import com.intellij.psi.PsiEnumConstantInitializer
import com.intellij.psi.PsiEnumConstant
internal class KtLightClassForEnumEntry(
psiManager: PsiManager,
fqName: FqName,
enumEntry: KtEnumEntry,
private val enumConstant: PsiEnumConstant
): KtLightClassForAnonymousDeclaration(psiManager, fqName, enumEntry), PsiEnumConstantInitializer {
): KtLightClassForAnonymousDeclaration(fqName, enumEntry), PsiEnumConstantInitializer {
override fun getEnumConstant(): PsiEnumConstant = enumConstant
}
@@ -48,10 +48,9 @@ import org.jetbrains.kotlin.resolve.jvm.JvmClassName
import javax.swing.Icon
public open class KtLightClassForExplicitDeclaration(
manager: PsiManager,
protected val classFqName: FqName, // FqName of (possibly inner) class
protected val classOrObject: KtClassOrObject)
: KtWrappingLightClass(manager), KtJavaMirrorMarker, StubBasedPsiElement<KotlinClassOrObjectStub<out KtClassOrObject>> {
: KtWrappingLightClass(classOrObject.manager), KtJavaMirrorMarker, StubBasedPsiElement<KotlinClassOrObjectStub<out KtClassOrObject>> {
private var delegate: PsiClass? = null
private fun getLocalClassParent(): PsiElement? {
@@ -138,7 +137,7 @@ public open class KtLightClassForExplicitDeclaration(
override fun getFqName(): FqName = classFqName
override fun copy(): PsiElement {
return KtLightClassForExplicitDeclaration(manager, classFqName, classOrObject.copy() as KtClassOrObject)
return KtLightClassForExplicitDeclaration(classFqName, classOrObject.copy() as KtClassOrObject)
}
override fun getDelegate(): PsiClass {
@@ -365,7 +364,7 @@ public open class KtLightClassForExplicitDeclaration(
return getDelegate().innerClasses
.map {
val declaration = ClsWrapperStubPsiFactory.getOriginalDeclaration(it) as KtClassOrObject?
if (declaration != null) create(myManager, declaration, it) else null
if (declaration != null) create(declaration, it) else null
}
.filterNotNull()
}
@@ -387,7 +386,6 @@ public open class KtLightClassForExplicitDeclaration(
@JvmOverloads
public fun create(
manager: PsiManager,
classOrObject: KtClassOrObject,
psiClass: PsiClass? = null
): KtLightClassForExplicitDeclaration? {
@@ -398,17 +396,17 @@ public open class KtLightClassForExplicitDeclaration(
val fqName = predictFqName(classOrObject) ?: return null
if (classOrObject is KtObjectDeclaration && classOrObject.isObjectLiteral()) {
return KtLightClassForAnonymousDeclaration(manager, fqName, classOrObject)
return KtLightClassForAnonymousDeclaration(fqName, classOrObject)
}
if (classOrObject.hasInterfaceDefaultImpls) {
val implsFqName = fqName.defaultImplsChild()
if (implsFqName.asString() == psiClass?.qualifiedName) {
return KtLightClassForInterfaceDefaultImpls(manager, implsFqName, classOrObject)
return KtLightClassForInterfaceDefaultImpls(implsFqName, classOrObject)
}
}
return KtLightClassForExplicitDeclaration(manager, fqName, classOrObject)
return KtLightClassForExplicitDeclaration(fqName, classOrObject)
}
private fun predictFqName(classOrObject: KtClassOrObject): FqName? {
@@ -22,13 +22,12 @@ import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.psi.KtClassOrObject
public open class KtLightClassForInterfaceDefaultImpls(
manager: PsiManager,
classFqName: FqName,
classOrObject: KtClassOrObject)
: KtLightClassForExplicitDeclaration(manager, classFqName, classOrObject){
: KtLightClassForExplicitDeclaration(classFqName, classOrObject){
override fun copy(): PsiElement {
return KtLightClassForInterfaceDefaultImpls(manager, classFqName, classOrObject.copy() as KtClassOrObject)
return KtLightClassForInterfaceDefaultImpls(classFqName, classOrObject.copy() as KtClassOrObject)
}
override fun getTypeParameterList(): PsiTypeParameterList? = null
@@ -125,7 +125,7 @@ sealed class KtLightFieldImpl(
val kotlinEnumEntry = origin as? KtEnumEntry
val initializingClass = if (kotlinEnumEntry != null && kotlinEnumEntry.declarations.isNotEmpty()) {
val enumConstantFqName = FqName(containingClass.getFqName().asString() + "." + kotlinEnumEntry.name)
KtLightClassForEnumEntry(delegate.manager, enumConstantFqName, kotlinEnumEntry, delegate)
KtLightClassForEnumEntry(enumConstantFqName, kotlinEnumEntry, delegate)
}
else null
return KtLightEnumConstant(kotlinEnumEntry, delegate, containingClass, initializingClass)
@@ -34,7 +34,6 @@ import org.jetbrains.kotlin.descriptors.ClassDescriptor
import org.jetbrains.kotlin.fileClasses.javaFileFacadeFqName
import org.jetbrains.kotlin.idea.decompiler.navigation.SourceNavigationHelper
import org.jetbrains.kotlin.idea.project.ResolveElementCache
import org.jetbrains.kotlin.idea.resolve.ResolutionFacade
import org.jetbrains.kotlin.idea.stubindex.*
import org.jetbrains.kotlin.idea.stubindex.KotlinSourceFilterScope.sourceAndClassFiles
import org.jetbrains.kotlin.idea.util.ProjectRootsUtil
@@ -43,7 +42,6 @@ import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.psi.psiUtil.getElementTextWithContext
import org.jetbrains.kotlin.resolve.BindingContext
import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode
import org.jetbrains.kotlin.resolve.lazy.ForceResolveUtil
import org.jetbrains.kotlin.resolve.lazy.NoDescriptorForDeclarationException
import org.jetbrains.kotlin.resolve.lazy.ResolveSession
@@ -147,7 +145,7 @@ public class IDELightClassGenerationSupport(private val project: Project) : Ligh
}
return SourceNavigationHelper.getOriginalClass(classOrObject)
}
return KtLightClassForExplicitDeclaration.create(psiManager, classOrObject)
return KtLightClassForExplicitDeclaration.create(classOrObject)
}
private fun withFakeLightClasses(
@@ -160,7 +158,7 @@ public class IDELightClassGenerationSupport(private val project: Project) : Ligh
lightClasses.add(lightClassForFacade)
if (facadeFiles.size() > 1) {
lightClasses.addAll(facadeFiles.map {
FakeLightClassForFileOfPackage(psiManager, lightClassForFacade, it)
FakeLightClassForFileOfPackage(lightClassForFacade, it)
})
}
return lightClasses