Rename: KtClassInitializer -> KtAnonymousInitializer

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