Rename: KtClassInitializer -> KtAnonymousInitializer
This commit is contained in:
@@ -1264,8 +1264,8 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
|
||||
initializer.accept(visitor);
|
||||
}
|
||||
}
|
||||
else if (declaration instanceof KtClassInitializer) {
|
||||
KtClassInitializer initializer = (KtClassInitializer) declaration;
|
||||
else if (declaration instanceof KtAnonymousInitializer) {
|
||||
KtAnonymousInitializer initializer = (KtAnonymousInitializer) declaration;
|
||||
initializer.accept(visitor);
|
||||
}
|
||||
else if (declaration instanceof KtSecondaryConstructor) {
|
||||
|
||||
@@ -365,8 +365,8 @@ public abstract class MemberCodegen<T extends KtElement/* TODO: & JetDeclaration
|
||||
initializeProperty(codegen.invoke(), (KtProperty) declaration);
|
||||
}
|
||||
}
|
||||
else if (declaration instanceof KtClassInitializer) {
|
||||
KtExpression body = ((KtClassInitializer) declaration).getBody();
|
||||
else if (declaration instanceof KtAnonymousInitializer) {
|
||||
KtExpression body = ((KtAnonymousInitializer) declaration).getBody();
|
||||
if (body != null) {
|
||||
codegen.invoke().gen(body, Type.VOID_TYPE);
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ import org.jetbrains.kotlin.codegen.state.GenerationState;
|
||||
import org.jetbrains.kotlin.codegen.state.JetTypeMapper;
|
||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor;
|
||||
import org.jetbrains.kotlin.descriptors.ScriptDescriptor;
|
||||
import org.jetbrains.kotlin.psi.KtClassInitializer;
|
||||
import org.jetbrains.kotlin.psi.KtAnonymousInitializer;
|
||||
import org.jetbrains.kotlin.psi.KtDeclaration;
|
||||
import org.jetbrains.kotlin.psi.KtExpression;
|
||||
import org.jetbrains.kotlin.psi.KtScript;
|
||||
@@ -52,8 +52,8 @@ public class ScriptContext extends ClassContext {
|
||||
KtScript script = (KtScript) DescriptorToSourceUtils.getSourceFromDescriptor(scriptDescriptor);
|
||||
assert script != null : "Declaration should be present for script: " + scriptDescriptor;
|
||||
KtDeclaration lastDeclaration = CollectionsKt.lastOrNull(script.getDeclarations());
|
||||
if (lastDeclaration instanceof KtClassInitializer) {
|
||||
this.lastStatement = ((KtClassInitializer) lastDeclaration).getBody();
|
||||
if (lastDeclaration instanceof KtAnonymousInitializer) {
|
||||
this.lastStatement = ((KtAnonymousInitializer) lastDeclaration).getBody();
|
||||
}
|
||||
else {
|
||||
this.lastStatement = null;
|
||||
|
||||
@@ -1343,7 +1343,7 @@ public class JetControlFlowProcessor {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visitAnonymousInitializer(@NotNull KtClassInitializer classInitializer) {
|
||||
public void visitAnonymousInitializer(@NotNull KtAnonymousInitializer classInitializer) {
|
||||
generateInstructions(classInitializer.getBody());
|
||||
}
|
||||
|
||||
@@ -1355,7 +1355,7 @@ public class JetControlFlowProcessor {
|
||||
|
||||
private void generateInitializersForScriptClassOrObject(@NotNull KtDeclarationContainer classOrObject) {
|
||||
for (KtDeclaration declaration : classOrObject.getDeclarations()) {
|
||||
if (declaration instanceof KtProperty || declaration instanceof KtClassInitializer) {
|
||||
if (declaration instanceof KtProperty || declaration instanceof KtAnonymousInitializer) {
|
||||
generateInstructions(declaration);
|
||||
}
|
||||
}
|
||||
@@ -1384,7 +1384,7 @@ public class JetControlFlowProcessor {
|
||||
for (KtDeclaration declaration : classOrObject.getDeclarations()) {
|
||||
if (declaration instanceof KtSecondaryConstructor ||
|
||||
declaration instanceof KtProperty ||
|
||||
declaration instanceof KtClassInitializer) {
|
||||
declaration instanceof KtAnonymousInitializer) {
|
||||
continue;
|
||||
}
|
||||
generateInstructions(declaration);
|
||||
|
||||
@@ -760,7 +760,7 @@ public class JetFlowInformationProvider {
|
||||
//noinspection unchecked
|
||||
KtExpression parent = PsiTreeUtil.getParentOfType(
|
||||
element,
|
||||
KtTryExpression.class, KtFunction.class, KtClassInitializer.class
|
||||
KtTryExpression.class, KtFunction.class, KtAnonymousInitializer.class
|
||||
);
|
||||
|
||||
if (parent instanceof KtTryExpression) {
|
||||
|
||||
@@ -716,7 +716,7 @@ public interface Errors {
|
||||
DiagnosticFactory0<KtDeclarationWithBody>
|
||||
NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY = DiagnosticFactory0.create(ERROR, DECLARATION_WITH_BODY);
|
||||
|
||||
DiagnosticFactory0<KtClassInitializer> ANONYMOUS_INITIALIZER_IN_INTERFACE = DiagnosticFactory0.create(ERROR);
|
||||
DiagnosticFactory0<KtAnonymousInitializer> ANONYMOUS_INITIALIZER_IN_INTERFACE = DiagnosticFactory0.create(ERROR);
|
||||
|
||||
DiagnosticFactory0<KtThisExpression> NO_THIS = DiagnosticFactory0.create(ERROR);
|
||||
DiagnosticFactory0<KtRootPackageExpression> PACKAGE_IS_NOT_AN_EXPRESSION = DiagnosticFactory0.create(ERROR);
|
||||
|
||||
@@ -267,7 +267,7 @@ public object PositioningStrategies {
|
||||
val elementToMark = when (element) {
|
||||
is KtObjectDeclaration -> element.getObjectKeyword()
|
||||
is KtPropertyAccessor -> element.getNamePlaceholder()
|
||||
is KtClassInitializer -> element
|
||||
is KtAnonymousInitializer -> element
|
||||
else -> throw IllegalArgumentException(
|
||||
"Can't find text range for element '${element.javaClass.getCanonicalName()}' with the text '${element.getText()}'")
|
||||
}
|
||||
|
||||
@@ -183,7 +183,7 @@ private object DebugTextBuildingVisitor : KtVisitor<String, Unit>() {
|
||||
return renderChildren(nullableType, "", "", "?")
|
||||
}
|
||||
|
||||
override fun visitAnonymousInitializer(initializer: KtClassInitializer, data: Unit?): String? {
|
||||
override fun visitAnonymousInitializer(initializer: KtAnonymousInitializer, data: Unit?): String? {
|
||||
val containingDeclaration = KtStubbedPsiUtil.getContainingDeclaration(initializer)
|
||||
return "initializer in " + (containingDeclaration?.getDebugText() ?: "...")
|
||||
}
|
||||
|
||||
+3
-3
@@ -25,12 +25,12 @@ import org.jetbrains.kotlin.lexer.KtTokens;
|
||||
import org.jetbrains.kotlin.psi.stubs.KotlinPlaceHolderStub;
|
||||
import org.jetbrains.kotlin.psi.stubs.elements.KtStubElementTypes;
|
||||
|
||||
public class KtClassInitializer extends KtDeclarationStub<KotlinPlaceHolderStub<KtClassInitializer>> implements KtStatementExpression {
|
||||
public KtClassInitializer(@NotNull ASTNode node) {
|
||||
public class KtAnonymousInitializer extends KtDeclarationStub<KotlinPlaceHolderStub<KtAnonymousInitializer>> implements KtStatementExpression {
|
||||
public KtAnonymousInitializer(@NotNull ASTNode node) {
|
||||
super(node);
|
||||
}
|
||||
|
||||
public KtClassInitializer(@NotNull KotlinPlaceHolderStub<KtClassInitializer> stub) {
|
||||
public KtAnonymousInitializer(@NotNull KotlinPlaceHolderStub<KtAnonymousInitializer> stub) {
|
||||
super(stub, KtStubElementTypes.ANONYMOUS_INITIALIZER);
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ class KtClassBody : KtElementImplStub<KotlinPlaceHolderStub<KtClassBody>>, KtDec
|
||||
|
||||
override fun <R, D> accept(visitor: KtVisitor<R, D>, data: D) = visitor.visitClassBody(this, data)
|
||||
|
||||
val anonymousInitializers: List<KtClassInitializer>
|
||||
val anonymousInitializers: List<KtAnonymousInitializer>
|
||||
get() = findChildrenByType(KtNodeTypes.ANONYMOUS_INITIALIZER)
|
||||
|
||||
internal val secondaryConstructors: List<KtSecondaryConstructor>
|
||||
|
||||
@@ -61,7 +61,7 @@ abstract public class KtClassOrObject :
|
||||
}
|
||||
}
|
||||
|
||||
public fun getAnonymousInitializers(): List<KtClassInitializer> = getBody()?.anonymousInitializers.orEmpty()
|
||||
public fun getAnonymousInitializers(): List<KtAnonymousInitializer> = getBody()?.anonymousInitializers.orEmpty()
|
||||
|
||||
public fun getBody(): KtClassBody? = getStubOrPsiChild(KtStubElementTypes.CLASS_BODY)
|
||||
|
||||
|
||||
@@ -243,7 +243,7 @@ public class KtPsiFactory(private val project: Project) {
|
||||
return createFunction("fun foo() {}").getBodyExpression() as KtBlockExpression
|
||||
}
|
||||
|
||||
public fun createAnonymousInitializer(): KtClassInitializer {
|
||||
public fun createAnonymousInitializer(): KtAnonymousInitializer {
|
||||
return createClass("class A { init {} }").getAnonymousInitializers().first()
|
||||
}
|
||||
|
||||
|
||||
@@ -755,8 +755,8 @@ public class KtPsiUtil {
|
||||
while (current != null) {
|
||||
PsiElement parent = PsiTreeUtil.getStubOrPsiParent(current);
|
||||
if (parent instanceof KtScript) return null;
|
||||
if (current instanceof KtClassInitializer) {
|
||||
return ((KtClassInitializer) current).getBody();
|
||||
if (current instanceof KtAnonymousInitializer) {
|
||||
return ((KtAnonymousInitializer) current).getBody();
|
||||
}
|
||||
if (current instanceof KtProperty || current instanceof KtFunction) {
|
||||
if (parent instanceof KtFile) {
|
||||
|
||||
@@ -338,7 +338,7 @@ public class KtVisitor<R, D> extends PsiElementVisitor {
|
||||
return visitKtElement(list, data);
|
||||
}
|
||||
|
||||
public R visitAnonymousInitializer(@NotNull KtClassInitializer initializer, D data) {
|
||||
public R visitAnonymousInitializer(@NotNull KtAnonymousInitializer initializer, D data) {
|
||||
return visitDeclaration(initializer, data);
|
||||
}
|
||||
|
||||
|
||||
@@ -325,7 +325,7 @@ public class KtVisitorVoid extends KtVisitor<Void, Void> {
|
||||
super.visitInitializerList(list, null);
|
||||
}
|
||||
|
||||
public void visitAnonymousInitializer(@NotNull KtClassInitializer initializer) {
|
||||
public void visitAnonymousInitializer(@NotNull KtAnonymousInitializer initializer) {
|
||||
super.visitAnonymousInitializer(initializer, null);
|
||||
}
|
||||
|
||||
@@ -889,7 +889,7 @@ public class KtVisitorVoid extends KtVisitor<Void, Void> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Void visitAnonymousInitializer(@NotNull KtClassInitializer initializer, Void data) {
|
||||
public final Void visitAnonymousInitializer(@NotNull KtAnonymousInitializer initializer, Void data) {
|
||||
visitAnonymousInitializer(initializer);
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -322,7 +322,7 @@ public class KtVisitorVoidWithParameter<P> extends KtVisitor<Void, P> {
|
||||
super.visitInitializerList(list, data);
|
||||
}
|
||||
|
||||
public void visitAnonymousInitializerVoid(@NotNull KtClassInitializer initializer, P data) {
|
||||
public void visitAnonymousInitializerVoid(@NotNull KtAnonymousInitializer initializer, P data) {
|
||||
super.visitAnonymousInitializer(initializer, data);
|
||||
}
|
||||
|
||||
@@ -864,7 +864,7 @@ public class KtVisitorVoidWithParameter<P> extends KtVisitor<Void, P> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Void visitAnonymousInitializer(@NotNull KtClassInitializer initializer, P data) {
|
||||
public final Void visitAnonymousInitializer(@NotNull KtAnonymousInitializer initializer, P data) {
|
||||
visitAnonymousInitializerVoid(initializer, data);
|
||||
return null;
|
||||
}
|
||||
|
||||
+2
-2
@@ -31,8 +31,8 @@ public interface KtStubElementTypes {
|
||||
|
||||
KtClassElementType ENUM_ENTRY = new KtClassElementType("ENUM_ENTRY");
|
||||
KtObjectElementType OBJECT_DECLARATION = new KtObjectElementType("OBJECT_DECLARATION");
|
||||
KtPlaceHolderStubElementType<KtClassInitializer> ANONYMOUS_INITIALIZER =
|
||||
new KtPlaceHolderStubElementType<KtClassInitializer>("ANONYMOUS_INITIALIZER", KtClassInitializer.class);
|
||||
KtPlaceHolderStubElementType<KtAnonymousInitializer> ANONYMOUS_INITIALIZER =
|
||||
new KtPlaceHolderStubElementType<KtAnonymousInitializer>("ANONYMOUS_INITIALIZER", KtAnonymousInitializer.class);
|
||||
KtPlaceHolderStubElementType<KtSecondaryConstructor> SECONDARY_CONSTRUCTOR =
|
||||
new KtPlaceHolderStubElementType<KtSecondaryConstructor>("SECONDARY_CONSTRUCTOR", KtSecondaryConstructor.class);
|
||||
KtPlaceHolderStubElementType<KtPrimaryConstructor> PRIMARY_CONSTRUCTOR =
|
||||
|
||||
@@ -202,7 +202,7 @@ public class AnnotationChecker(private val additionalCheckers: Iterable<Addition
|
||||
is KtTypeParameter -> TargetLists.T_TYPE_PARAMETER
|
||||
is KtTypeProjection ->
|
||||
if (annotated.projectionKind == KtProjectionKind.STAR) TargetLists.T_STAR_PROJECTION else TargetLists.T_TYPE_PROJECTION
|
||||
is KtClassInitializer -> TargetLists.T_INITIALIZER
|
||||
is KtAnonymousInitializer -> TargetLists.T_INITIALIZER
|
||||
is KtMultiDeclaration -> TargetLists.T_MULTI_DECLARATION
|
||||
is KtFunctionLiteralExpression -> TargetLists.T_FUNCTION_LITERAL
|
||||
is KtObjectLiteralExpression -> TargetLists.T_OBJECT_LITERAL
|
||||
|
||||
@@ -39,7 +39,7 @@ public interface BodiesResolveContext {
|
||||
@Mutable
|
||||
Map<KtClassOrObject, ClassDescriptorWithResolutionScopes> getDeclaredClasses();
|
||||
@Mutable
|
||||
Map<KtClassInitializer, ClassDescriptorWithResolutionScopes> getAnonymousInitializers();
|
||||
Map<KtAnonymousInitializer, ClassDescriptorWithResolutionScopes> getAnonymousInitializers();
|
||||
@Mutable
|
||||
Map<KtSecondaryConstructor, ConstructorDescriptor> getSecondaryConstructors();
|
||||
@Mutable
|
||||
|
||||
@@ -500,8 +500,8 @@ public class BodyResolver {
|
||||
}
|
||||
|
||||
private void resolveAnonymousInitializers(@NotNull BodiesResolveContext c) {
|
||||
for (Map.Entry<KtClassInitializer, ClassDescriptorWithResolutionScopes> entry : c.getAnonymousInitializers().entrySet()) {
|
||||
KtClassInitializer initializer = entry.getKey();
|
||||
for (Map.Entry<KtAnonymousInitializer, ClassDescriptorWithResolutionScopes> entry : c.getAnonymousInitializers().entrySet()) {
|
||||
KtAnonymousInitializer initializer = entry.getKey();
|
||||
ClassDescriptorWithResolutionScopes descriptor = entry.getValue();
|
||||
resolveAnonymousInitializer(c.getOuterDataFlowInfo(), initializer, descriptor);
|
||||
}
|
||||
@@ -509,7 +509,7 @@ public class BodyResolver {
|
||||
|
||||
public void resolveAnonymousInitializer(
|
||||
@NotNull DataFlowInfo outerDataFlowInfo,
|
||||
@NotNull KtClassInitializer anonymousInitializer,
|
||||
@NotNull KtAnonymousInitializer anonymousInitializer,
|
||||
@NotNull ClassDescriptorWithResolutionScopes classDescriptor
|
||||
) {
|
||||
LexicalScope scopeForInitializers = classDescriptor.getScopeForInitializerResolution();
|
||||
|
||||
@@ -154,7 +154,7 @@ public class LazyTopDownAnalyzer(
|
||||
visitClassOrObject(declaration)
|
||||
}
|
||||
|
||||
override fun visitAnonymousInitializer(initializer: KtClassInitializer) {
|
||||
override fun visitAnonymousInitializer(initializer: KtAnonymousInitializer) {
|
||||
val containerDescriptor = lazyDeclarationResolver.resolveToDescriptor(initializer.containingDeclaration) as ClassDescriptorWithResolutionScopes
|
||||
c.getAnonymousInitializers().put(initializer, containerDescriptor)
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@ public class TopDownAnalysisContext implements BodiesResolveContext {
|
||||
private final DataFlowInfo outerDataFlowInfo;
|
||||
|
||||
private final Map<KtClassOrObject, ClassDescriptorWithResolutionScopes> classes = Maps.newLinkedHashMap();
|
||||
private final Map<KtClassInitializer, ClassDescriptorWithResolutionScopes> anonymousInitializers = Maps.newLinkedHashMap();
|
||||
private final Map<KtAnonymousInitializer, ClassDescriptorWithResolutionScopes> anonymousInitializers = Maps.newLinkedHashMap();
|
||||
private final Set<KtFile> files = new LinkedHashSet<KtFile>();
|
||||
private final Map<KtSecondaryConstructor, ConstructorDescriptor> secondaryConstructors = Maps.newLinkedHashMap();
|
||||
|
||||
@@ -95,7 +95,7 @@ public class TopDownAnalysisContext implements BodiesResolveContext {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<KtClassInitializer, ClassDescriptorWithResolutionScopes> getAnonymousInitializers() {
|
||||
public Map<KtAnonymousInitializer, ClassDescriptorWithResolutionScopes> getAnonymousInitializers() {
|
||||
return anonymousInitializers;
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -62,7 +62,7 @@ public class DeclarationScopeProviderImpl implements DeclarationScopeProvider {
|
||||
if (parentDeclaration instanceof KtClassOrObject) {
|
||||
KtClassOrObject classOrObject = (KtClassOrObject) parentDeclaration;
|
||||
LazyClassDescriptor classDescriptor = (LazyClassDescriptor) lazyDeclarationResolver.getClassDescriptor(classOrObject, NoLookupLocation.WHEN_GET_DECLARATION_SCOPE);
|
||||
if (ktDeclaration instanceof KtClassInitializer || ktDeclaration instanceof KtProperty) {
|
||||
if (ktDeclaration instanceof KtAnonymousInitializer || ktDeclaration instanceof KtProperty) {
|
||||
return classDescriptor.getScopeForInitializerResolution();
|
||||
}
|
||||
if (ktDeclaration instanceof KtObjectDeclaration
|
||||
|
||||
+1
-1
@@ -38,7 +38,7 @@ public abstract class AbstractPsiBasedDeclarationProvider(storageManager: Storag
|
||||
val classesAndObjects = ArrayListMultimap.create<Name, JetClassLikeInfo>() // order matters here
|
||||
|
||||
public fun putToIndex(declaration: KtDeclaration) {
|
||||
if (declaration is KtClassInitializer || declaration is KtSecondaryConstructor) return
|
||||
if (declaration is KtAnonymousInitializer || declaration is KtSecondaryConstructor) return
|
||||
|
||||
allDeclarations.add(declaration)
|
||||
if (declaration is KtNamedFunction) {
|
||||
|
||||
+1
-1
@@ -38,7 +38,7 @@ abstract class AssignedVariablesSearcher: KtTreeVisitorVoid() {
|
||||
if (declaration is KtDeclarationWithBody || declaration is KtClassOrObject) {
|
||||
currentDeclaration = declaration
|
||||
}
|
||||
else if (declaration is KtClassInitializer) {
|
||||
else if (declaration is KtAnonymousInitializer) {
|
||||
// Go to class declaration: init -> body -> class
|
||||
currentDeclaration = declaration.parent.parent as KtDeclaration
|
||||
}
|
||||
|
||||
+2
-2
@@ -93,7 +93,7 @@ public open class KtLightClassForExplicitDeclaration(
|
||||
KtNamedFunction::class.java,
|
||||
KtConstructor::class.java,
|
||||
KtProperty::class.java,
|
||||
KtClassInitializer::class.java,
|
||||
KtAnonymousInitializer::class.java,
|
||||
KtParameter::class.java)
|
||||
|
||||
if (declaration is KtParameter) {
|
||||
@@ -109,7 +109,7 @@ public open class KtLightClassForExplicitDeclaration(
|
||||
return getParentByPsiMethod(LightClassUtil.getLightClassPropertyMethods(declaration).getter, declaration.name, true)
|
||||
}
|
||||
|
||||
if (declaration is KtClassInitializer) {
|
||||
if (declaration is KtAnonymousInitializer) {
|
||||
val parent = declaration.parent
|
||||
val grandparent = parent.parent
|
||||
|
||||
|
||||
@@ -108,7 +108,7 @@ public abstract class AbstractDescriptorRendererTest : KotlinTestWithEnvironment
|
||||
accessor.acceptChildren(this)
|
||||
}
|
||||
|
||||
override fun visitAnonymousInitializer(initializer: KtClassInitializer) {
|
||||
override fun visitAnonymousInitializer(initializer: KtAnonymousInitializer) {
|
||||
initializer.acceptChildren(this)
|
||||
}
|
||||
|
||||
|
||||
@@ -551,7 +551,7 @@ class PartialBodyResolveFilter(
|
||||
true
|
||||
}
|
||||
|
||||
is KtClassInitializer -> false
|
||||
is KtAnonymousInitializer -> false
|
||||
|
||||
else -> true
|
||||
}
|
||||
|
||||
+1
-1
@@ -111,7 +111,7 @@ internal class PerFileAnalysisCache(val file: KtFile, val componentProvider: Com
|
||||
private object KotlinResolveDataProvider {
|
||||
private val topmostElementTypes = arrayOf<Class<out PsiElement?>?>(
|
||||
javaClass<KtNamedFunction>(),
|
||||
javaClass<KtClassInitializer>(),
|
||||
javaClass<KtAnonymousInitializer>(),
|
||||
javaClass<KtProperty>(),
|
||||
javaClass<KtImportDirective>(),
|
||||
javaClass<KtPackageDirective>(),
|
||||
|
||||
@@ -193,7 +193,7 @@ public class ResolveElementCache(
|
||||
}
|
||||
|
||||
val declaration = contextElement.getParentOfType<KtDeclaration>(false)
|
||||
if (declaration != null && declaration !is KtClassInitializer) {
|
||||
if (declaration != null && declaration !is KtAnonymousInitializer) {
|
||||
// Activate descriptor resolution
|
||||
resolveSession.resolveToDescriptor(declaration)
|
||||
}
|
||||
@@ -205,7 +205,7 @@ public class ResolveElementCache(
|
||||
val elementOfAdditionalResolve = KtPsiUtil.getTopmostParentOfTypes(
|
||||
element,
|
||||
javaClass<KtNamedFunction>(),
|
||||
javaClass<KtClassInitializer>(),
|
||||
javaClass<KtAnonymousInitializer>(),
|
||||
javaClass<KtSecondaryConstructor>(),
|
||||
javaClass<KtProperty>(),
|
||||
javaClass<KtParameter>(),
|
||||
@@ -263,7 +263,7 @@ public class ResolveElementCache(
|
||||
val trace: BindingTrace = when (resolveElement) {
|
||||
is KtNamedFunction -> functionAdditionalResolve(resolveSession, resolveElement, file, createStatementFilter())
|
||||
|
||||
is KtClassInitializer -> initializerAdditionalResolve(resolveSession, resolveElement, file, createStatementFilter())
|
||||
is KtAnonymousInitializer -> initializerAdditionalResolve(resolveSession, resolveElement, file, createStatementFilter())
|
||||
|
||||
is KtSecondaryConstructor -> secondaryConstructorAdditionalResolve(resolveSession, resolveElement, file, createStatementFilter())
|
||||
|
||||
@@ -489,15 +489,15 @@ public class ResolveElementCache(
|
||||
return trace
|
||||
}
|
||||
|
||||
private fun initializerAdditionalResolve(resolveSession: ResolveSession, classInitializer: KtClassInitializer, file: KtFile, statementFilter: StatementFilter): BindingTrace {
|
||||
val trace = createDelegatingTrace(classInitializer)
|
||||
private fun initializerAdditionalResolve(resolveSession: ResolveSession, anonymousInitializer: KtAnonymousInitializer, file: KtFile, statementFilter: StatementFilter): BindingTrace {
|
||||
val trace = createDelegatingTrace(anonymousInitializer)
|
||||
|
||||
val classOrObjectDescriptor = resolveSession.resolveToDescriptor(classInitializer.containingDeclaration) as LazyClassDescriptor
|
||||
val classOrObjectDescriptor = resolveSession.resolveToDescriptor(anonymousInitializer.containingDeclaration) as LazyClassDescriptor
|
||||
|
||||
val bodyResolver = createBodyResolver(resolveSession, trace, file, statementFilter)
|
||||
bodyResolver.resolveAnonymousInitializer(DataFlowInfo.EMPTY, classInitializer, classOrObjectDescriptor)
|
||||
bodyResolver.resolveAnonymousInitializer(DataFlowInfo.EMPTY, anonymousInitializer, classOrObjectDescriptor)
|
||||
|
||||
forceResolveAnnotationsInside(classInitializer)
|
||||
forceResolveAnnotationsInside(anonymousInitializer)
|
||||
|
||||
return trace
|
||||
}
|
||||
@@ -540,7 +540,7 @@ public class ResolveElementCache(
|
||||
|
||||
override fun getDeclaredClasses(): MutableMap<KtClassOrObject, ClassDescriptorWithResolutionScopes> = hashMapOf()
|
||||
|
||||
override fun getAnonymousInitializers(): MutableMap<KtClassInitializer, ClassDescriptorWithResolutionScopes> = hashMapOf()
|
||||
override fun getAnonymousInitializers(): MutableMap<KtAnonymousInitializer, ClassDescriptorWithResolutionScopes> = hashMapOf()
|
||||
|
||||
override fun getSecondaryConstructors(): MutableMap<KtSecondaryConstructor, ConstructorDescriptor> = hashMapOf()
|
||||
|
||||
|
||||
+2
-2
@@ -31,7 +31,7 @@ import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor;
|
||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor;
|
||||
import org.jetbrains.kotlin.idea.KotlinDescriptorIconProvider;
|
||||
import org.jetbrains.kotlin.psi.KtClassInitializer;
|
||||
import org.jetbrains.kotlin.psi.KtAnonymousInitializer;
|
||||
import org.jetbrains.kotlin.psi.KtModifierListOwner;
|
||||
import org.jetbrains.kotlin.psi.KtPsiUtil;
|
||||
|
||||
@@ -128,7 +128,7 @@ class KotlinStructureElementPresentation implements ColoredItemPresentation, Loc
|
||||
return text;
|
||||
}
|
||||
|
||||
if (navigatablePsiElement instanceof KtClassInitializer) {
|
||||
if (navigatablePsiElement instanceof KtAnonymousInitializer) {
|
||||
return "<class initializer>";
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -130,7 +130,7 @@ public class KotlinStructureViewElement implements StructureViewTreeElement, Que
|
||||
}
|
||||
|
||||
final KtDeclaration declaration = (KtDeclaration) element;
|
||||
if (declaration instanceof KtClassInitializer) {
|
||||
if (declaration instanceof KtAnonymousInitializer) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -87,7 +87,7 @@ public class KotlinDeclarationMover extends AbstractKotlinUpDownMover {
|
||||
declaration.accept(
|
||||
new KtVisitorVoid() {
|
||||
@Override
|
||||
public void visitAnonymousInitializer(@NotNull KtClassInitializer initializer) {
|
||||
public void visitAnonymousInitializer(@NotNull KtAnonymousInitializer initializer) {
|
||||
PsiElement brace = initializer.getOpenBraceNode();
|
||||
if (brace != null) {
|
||||
memberSuspects.add(brace);
|
||||
@@ -130,7 +130,7 @@ public class KotlinDeclarationMover extends AbstractKotlinUpDownMover {
|
||||
}
|
||||
|
||||
private static final Class[] DECLARATION_CONTAINER_CLASSES =
|
||||
{KtClassBody.class, KtClassInitializer.class, KtFunction.class, KtPropertyAccessor.class, KtFile.class};
|
||||
{KtClassBody.class, KtAnonymousInitializer.class, KtFunction.class, KtPropertyAccessor.class, KtFile.class};
|
||||
|
||||
private static final Class[] CLASSBODYLIKE_DECLARATION_CONTAINER_CLASSES = {KtClassBody.class, KtFile.class};
|
||||
|
||||
@@ -245,7 +245,7 @@ public class KotlinDeclarationMover extends AbstractKotlinUpDownMover {
|
||||
}
|
||||
|
||||
if (nextParent != null) {
|
||||
if (target instanceof KtClassInitializer && !(nextParent instanceof KtClassBody)) return null;
|
||||
if (target instanceof KtAnonymousInitializer && !(nextParent instanceof KtClassBody)) return null;
|
||||
|
||||
if (target instanceof KtEnumEntry) {
|
||||
if (!(nextParent instanceof KtClassBody)) return null;
|
||||
|
||||
+2
-2
@@ -68,7 +68,7 @@ public class KotlinExpressionMover extends AbstractKotlinUpDownMover {
|
||||
{KtBlockExpression.class, KtWhenExpression.class, KtClassBody.class, KtFile.class};
|
||||
|
||||
private final static Class[] FUNCTIONLIKE_ELEMENT_CLASSES =
|
||||
{KtFunction.class, KtPropertyAccessor.class, KtClassInitializer.class};
|
||||
{KtFunction.class, KtPropertyAccessor.class, KtAnonymousInitializer.class};
|
||||
|
||||
private static final Predicate<KtElement> CHECK_BLOCK_LIKE_ELEMENT = new Predicate<KtElement>() {
|
||||
@Override
|
||||
@@ -197,7 +197,7 @@ public class KotlinExpressionMover extends AbstractKotlinUpDownMover {
|
||||
while (current != null) {
|
||||
PsiElement parent = current.getParent();
|
||||
if (parent instanceof KtClassBody ||
|
||||
parent instanceof KtClassInitializer ||
|
||||
parent instanceof KtAnonymousInitializer ||
|
||||
parent instanceof KtNamedFunction ||
|
||||
(parent instanceof KtProperty && !((KtProperty) parent).isLocal())) {
|
||||
return null;
|
||||
|
||||
@@ -370,7 +370,7 @@ public class KotlinPositionManager(private val myDebugProcess: DebugProcess) : M
|
||||
return PositionedElement(asmType.internalName, element)
|
||||
}
|
||||
}
|
||||
element is KtClassInitializer -> {
|
||||
element is KtAnonymousInitializer -> {
|
||||
val parent = getElementToCalculateClassName(element.parent)
|
||||
// Class-object initializer
|
||||
if (parent is KtObjectDeclaration && parent.isCompanion()) {
|
||||
@@ -417,7 +417,7 @@ public class KotlinPositionManager(private val myDebugProcess: DebugProcess) : M
|
||||
KtFunctionLiteral::class.java,
|
||||
KtNamedFunction::class.java,
|
||||
KtProperty::class.java,
|
||||
KtClassInitializer::class.java)
|
||||
KtAnonymousInitializer::class.java)
|
||||
|
||||
private fun getElementToCalculateClassName(notPositionedElement: PsiElement?): KtElement? {
|
||||
if (notPositionedElement?.javaClass in TYPES_TO_CALCULATE_CLASSNAME ) return notPositionedElement as KtElement
|
||||
|
||||
+1
-1
@@ -185,7 +185,7 @@ private fun addDebugExpressionBeforeContextElement(codeFragment: KtCodeFragment,
|
||||
|
||||
fun insertNewInitializer(classBody: KtClassBody): PsiElement? {
|
||||
val initializer = psiFactory.createAnonymousInitializer()
|
||||
val newInitializer = (classBody.addAfter(initializer, classBody.firstChild) as KtClassInitializer)
|
||||
val newInitializer = (classBody.addAfter(initializer, classBody.firstChild) as KtAnonymousInitializer)
|
||||
val block = newInitializer.body as KtBlockExpression?
|
||||
return block?.lastChild
|
||||
}
|
||||
|
||||
+1
-1
@@ -71,7 +71,7 @@ public class KotlinCalleeMethodsTreeStructure extends KotlinCallTreeStructure {
|
||||
|
||||
KtClassBody body = classOrObject.getBody();
|
||||
if (body != null) {
|
||||
for (KtClassInitializer initializer : body.getAnonymousInitializers()) {
|
||||
for (KtAnonymousInitializer initializer : body.getAnonymousInitializers()) {
|
||||
KtExpression initializerBody = initializer.getBody();
|
||||
if (initializerBody != null) {
|
||||
elementsToAnalyze.add(initializerBody);
|
||||
|
||||
+2
-2
@@ -39,7 +39,7 @@ public class MoveAssignmentToInitializerIntention :
|
||||
val rightExpression = element.right ?: return false
|
||||
|
||||
val initializer = PsiTreeUtil.getParentOfType(element,
|
||||
KtClassInitializer::class.java,
|
||||
KtAnonymousInitializer::class.java,
|
||||
KtSecondaryConstructor::class.java) ?: return false
|
||||
|
||||
val target = findTargetProperty(element)
|
||||
@@ -54,7 +54,7 @@ public class MoveAssignmentToInitializerIntention :
|
||||
val initializer = element.right ?: return
|
||||
val newInitializer = property.setInitializer(initializer)!!
|
||||
|
||||
val initializerBlock = element.getStrictParentOfType<KtClassInitializer>()
|
||||
val initializerBlock = element.getStrictParentOfType<KtAnonymousInitializer>()
|
||||
element.delete()
|
||||
if (initializerBlock != null && (initializerBlock.body as? KtBlockExpression)?.isEmpty() == true) {
|
||||
initializerBlock.delete()
|
||||
|
||||
@@ -51,7 +51,7 @@ public class KtDeclarationTreeNode extends AbstractPsiBasedNode<KtDeclaration> {
|
||||
protected void updateImpl(PresentationData data) {
|
||||
KtDeclaration declaration = getValue();
|
||||
if (declaration != null) {
|
||||
String text = declaration instanceof KtClassInitializer ? CLASS_INITIALIZER : declaration.getName();
|
||||
String text = declaration instanceof KtAnonymousInitializer ? CLASS_INITIALIZER : declaration.getName();
|
||||
if (text == null) return;
|
||||
|
||||
KotlinCodeStyleSettings settings = CodeStyleSettingsManager.getInstance(getProject()).getCurrentSettings()
|
||||
|
||||
+2
-2
@@ -85,14 +85,14 @@ object CreateParameterByRefActionFactory : CreateParameterFromUsageFactory<KtSim
|
||||
return element.parents
|
||||
.filter {
|
||||
it is KtNamedFunction || it is KtSecondaryConstructor || it is KtPropertyAccessor ||
|
||||
it is KtClassBody || it is KtClassInitializer || it is KtDelegationSpecifier
|
||||
it is KtClassBody || it is KtAnonymousInitializer || it is KtDelegationSpecifier
|
||||
}
|
||||
.firstOrNull()
|
||||
?.let {
|
||||
when {
|
||||
(it is KtNamedFunction || it is KtSecondaryConstructor) && varExpected,
|
||||
it is KtPropertyAccessor -> chooseContainingClass(it)
|
||||
it is KtClassInitializer -> it.parent?.parent as? KtClass
|
||||
it is KtAnonymousInitializer -> it.parent?.parent as? KtClass
|
||||
it is KtDelegationSpecifier -> {
|
||||
val klass = it.getStrictParentOfType<KtClassOrObject>()
|
||||
if (klass is KtClass && !klass.isInterface() && klass !is KtEnumEntry) klass else null
|
||||
|
||||
+1
-1
@@ -89,7 +89,7 @@ data class ExtractionData(
|
||||
|
||||
val insertBefore: Boolean = options.extractAsProperty
|
||||
|| targetSibling.getStrictParentOfType<KtDeclaration>()?.let {
|
||||
it is KtDeclarationWithBody || it is KtClassInitializer
|
||||
it is KtDeclarationWithBody || it is KtAnonymousInitializer
|
||||
} ?: false
|
||||
|
||||
fun getExpressions(): List<KtExpression> = originalElements.filterIsInstance<KtExpression>()
|
||||
|
||||
+1
-1
@@ -722,7 +722,7 @@ private fun ExtractionData.suggestFunctionNames(returnType: KotlinType): List<St
|
||||
val validator =
|
||||
NewDeclarationNameValidator(
|
||||
targetSibling.parent,
|
||||
if (targetSibling is KtClassInitializer) targetSibling.parent else targetSibling,
|
||||
if (targetSibling is KtAnonymousInitializer) targetSibling.parent else targetSibling,
|
||||
if (options.extractAsProperty) NewDeclarationNameValidator.Target.VARIABLES else NewDeclarationNameValidator.Target.FUNCTIONS_AND_CLASSES
|
||||
)
|
||||
if (!returnType.isDefault()) {
|
||||
|
||||
+1
-1
@@ -88,7 +88,7 @@ public data class IntroduceParameterDescriptor(
|
||||
when {
|
||||
it.getParent() != callable.getBody() ->
|
||||
false
|
||||
it is KtClassInitializer ->
|
||||
it is KtAnonymousInitializer ->
|
||||
true
|
||||
it is KtProperty && it.getInitializer()?.getTextRange()?.intersects(originalRange.getTextRange()) ?: false ->
|
||||
true
|
||||
|
||||
@@ -160,7 +160,7 @@ public fun PsiElement.getExtractionContainers(strict: Boolean = true, includeAll
|
||||
return (if (strict) element.parents else element.parentsWithSelf)
|
||||
.filter {
|
||||
(it is KtDeclarationWithBody && it !is KtFunctionLiteral)
|
||||
|| it is KtClassInitializer
|
||||
|| it is KtAnonymousInitializer
|
||||
|| it is KtClassBody
|
||||
|| it is KtFile
|
||||
}
|
||||
@@ -170,7 +170,7 @@ public fun PsiElement.getExtractionContainers(strict: Boolean = true, includeAll
|
||||
if (includeAll) return getAllExtractionContainers(strict)
|
||||
|
||||
val enclosingDeclaration = getEnclosingDeclaration(this, strict)?.let {
|
||||
if (it is KtDeclarationWithBody || it is KtClassInitializer) getEnclosingDeclaration(it, true) else it
|
||||
if (it is KtDeclarationWithBody || it is KtAnonymousInitializer) getEnclosingDeclaration(it, true) else it
|
||||
}
|
||||
|
||||
return when (enclosingDeclaration) {
|
||||
@@ -179,7 +179,7 @@ public fun PsiElement.getExtractionContainers(strict: Boolean = true, includeAll
|
||||
else -> {
|
||||
val targetContainer = when (enclosingDeclaration) {
|
||||
is KtDeclarationWithBody -> enclosingDeclaration.getBodyExpression()
|
||||
is KtClassInitializer -> enclosingDeclaration.getBody()
|
||||
is KtAnonymousInitializer -> enclosingDeclaration.getBody()
|
||||
else -> null
|
||||
}
|
||||
if (targetContainer is KtBlockExpression) Collections.singletonList(targetContainer) else Collections.emptyList()
|
||||
@@ -328,7 +328,7 @@ public fun KtElement.getContextForContainingDeclarationBody(): BindingContext? {
|
||||
is KtWithExpressionInitializer -> enclosingDeclaration.getInitializer()
|
||||
is KtMultiDeclaration -> enclosingDeclaration.getInitializer()
|
||||
is KtParameter -> enclosingDeclaration.getDefaultValue()
|
||||
is KtClassInitializer -> enclosingDeclaration.getBody()
|
||||
is KtAnonymousInitializer -> enclosingDeclaration.getBody()
|
||||
is KtClass -> {
|
||||
val delegationSpecifierList = enclosingDeclaration.getDelegationSpecifierList()
|
||||
if (delegationSpecifierList.isAncestor(this)) this else null
|
||||
|
||||
@@ -501,9 +501,9 @@ class KotlinPullUpHelper(
|
||||
override fun moveFieldInitializations(movedFields: LinkedHashSet<PsiField>) {
|
||||
val psiFactory = KtPsiFactory(data.sourceClass)
|
||||
|
||||
fun KtClassOrObject.getOrCreateClassInitializer(): KtClassInitializer {
|
||||
getOrCreateBody().declarations.lastOrNull { it is KtClassInitializer }?.let { return it as KtClassInitializer }
|
||||
return addDeclaration(psiFactory.createAnonymousInitializer()) as KtClassInitializer
|
||||
fun KtClassOrObject.getOrCreateClassInitializer(): KtAnonymousInitializer {
|
||||
getOrCreateBody().declarations.lastOrNull { it is KtAnonymousInitializer }?.let { return it as KtAnonymousInitializer }
|
||||
return addDeclaration(psiFactory.createAnonymousInitializer()) as KtAnonymousInitializer
|
||||
}
|
||||
|
||||
fun KtElement.getConstructorBodyBlock(): KtBlockExpression? {
|
||||
|
||||
@@ -660,7 +660,7 @@ public class KotlinPsiUnifier(
|
||||
e1 is KtMultiDeclaration && e2 is KtMultiDeclaration ->
|
||||
if (matchMultiDeclarations(e1, e2)) null else UNMATCHED
|
||||
|
||||
e1 is KtClassInitializer && e2 is KtClassInitializer ->
|
||||
e1 is KtAnonymousInitializer && e2 is KtAnonymousInitializer ->
|
||||
null
|
||||
|
||||
e1 is KtDeclaration ->
|
||||
|
||||
+2
-2
@@ -21,7 +21,7 @@ import org.jetbrains.kotlin.container.get
|
||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
||||
import org.jetbrains.kotlin.idea.project.IdeaEnvironment
|
||||
import org.jetbrains.kotlin.idea.project.ResolveElementCache
|
||||
import org.jetbrains.kotlin.psi.KtClassInitializer
|
||||
import org.jetbrains.kotlin.psi.KtAnonymousInitializer
|
||||
import org.jetbrains.kotlin.psi.KtDeclaration
|
||||
import org.jetbrains.kotlin.psi.KtPsiUtil
|
||||
import org.jetbrains.kotlin.renderer.AbstractDescriptorRendererTest
|
||||
@@ -32,7 +32,7 @@ import org.jetbrains.kotlin.resolve.lazy.ResolveSession
|
||||
|
||||
public abstract class AbstractAdditionalResolveDescriptorRendererTest : AbstractDescriptorRendererTest() {
|
||||
override fun getDescriptor(declaration: KtDeclaration, container: ComponentProvider): DeclarationDescriptor {
|
||||
if (declaration is KtClassInitializer || KtPsiUtil.isLocal(declaration)) {
|
||||
if (declaration is KtAnonymousInitializer || KtPsiUtil.isLocal(declaration)) {
|
||||
return container.get<ResolveElementCache>()
|
||||
.resolveToElement(declaration, BodyResolveMode.FULL)
|
||||
.get(BindingContext.DECLARATION_TO_DESCRIPTOR, declaration)!!
|
||||
|
||||
@@ -195,7 +195,7 @@ public class DebugTextByStubTest : LightCodeInsightFixtureTestCase() {
|
||||
val tree = createStubTree("class A {\n init {} }")
|
||||
val initializer = tree.findChildStubByType(KtStubElementTypes.CLASS)!!.findChildStubByType(KtStubElementTypes.CLASS_BODY)!!
|
||||
.findChildStubByType(KtStubElementTypes.ANONYMOUS_INITIALIZER)
|
||||
assertEquals("initializer in STUB: class A", KtClassInitializer(initializer as KotlinPlaceHolderStub).getDebugText())
|
||||
assertEquals("initializer in STUB: class A", KtAnonymousInitializer(initializer as KotlinPlaceHolderStub).getDebugText())
|
||||
}
|
||||
|
||||
fun testClassObject() {
|
||||
|
||||
+1
-1
@@ -120,7 +120,7 @@ public class DeclarationBodyVisitor extends TranslatorVisitor<Void> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Void visitAnonymousInitializer(@NotNull KtClassInitializer expression, TranslationContext context) {
|
||||
public Void visitAnonymousInitializer(@NotNull KtAnonymousInitializer expression, TranslationContext context) {
|
||||
// parsed it in initializer visitor => no additional actions are needed
|
||||
return null;
|
||||
}
|
||||
|
||||
+2
-2
@@ -28,7 +28,7 @@ import org.jetbrains.kotlin.js.translate.initializer.InitializerVisitor
|
||||
import org.jetbrains.kotlin.js.translate.utils.BindingUtils.getPropertyDescriptor
|
||||
import org.jetbrains.kotlin.js.translate.utils.JsAstUtils
|
||||
import org.jetbrains.kotlin.psi.KtClass
|
||||
import org.jetbrains.kotlin.psi.KtClassInitializer
|
||||
import org.jetbrains.kotlin.psi.KtAnonymousInitializer
|
||||
import org.jetbrains.kotlin.psi.KtObjectDeclaration
|
||||
import org.jetbrains.kotlin.psi.KtProperty
|
||||
|
||||
@@ -78,7 +78,7 @@ class FileDeclarationVisitor(
|
||||
return null
|
||||
}
|
||||
|
||||
public override fun visitAnonymousInitializer(expression: KtClassInitializer, context: TranslationContext?): Void? {
|
||||
public override fun visitAnonymousInitializer(expression: KtAnonymousInitializer, context: TranslationContext?): Void? {
|
||||
expression.accept(initializerVisitor, initializerContext)
|
||||
return null
|
||||
}
|
||||
|
||||
+1
-1
@@ -57,7 +57,7 @@ public final class InitializerVisitor extends TranslatorVisitor<Void> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Void visitAnonymousInitializer(@NotNull KtClassInitializer initializer, @NotNull TranslationContext context) {
|
||||
public Void visitAnonymousInitializer(@NotNull KtAnonymousInitializer initializer, @NotNull TranslationContext context) {
|
||||
KtExpression initializerBody = initializer.getBody();
|
||||
if (initializerBody != null) {
|
||||
result.add(translateAsStatementAndMergeInBlockIfNeeded(initializerBody, context));
|
||||
|
||||
Reference in New Issue
Block a user