From 97080c49fcb4a9d6b3189afa20e3b4b81f86747d Mon Sep 17 00:00:00 2001 From: Anton Bannykh Date: Wed, 9 Sep 2020 18:42:55 +0300 Subject: [PATCH] Persistent IR generator Goal: - avoid hand-writing the boilerplate - easier PIR evolution Output is reasonably close the hand-writtern version --- .../ir/ir.tree.persistent/build.gradle.kts | 5 +- .../PersistentIrAnonymousInitializer.kt | 17 +- .../persistent/PersistentIrClass.kt | 36 +- .../persistent/PersistentIrConstructor.kt | 25 +- .../persistent/PersistentIrEnumEntry.kt | 23 +- .../PersistentIrErrorDeclaration.kt | 21 +- .../persistent/PersistentIrField.kt | 25 +- .../persistent/PersistentIrFunctionCommon.kt | 15 +- .../PersistentIrLocalDelegatedProperty.kt | 17 +- .../persistent/PersistentIrPropertyCommon.kt | 15 +- .../persistent/PersistentIrTypeAlias.kt | 12 +- .../persistent/PersistentIrTypeParameter.kt | 17 +- .../persistent/PersistentIrValueParameter.kt | 17 +- .../carriers/AnonymousInitializerCarrier.kt | 8 +- .../persistent/carriers/ClassCarrier.kt | 19 +- .../persistent/carriers/ConstructorCarrier.kt | 28 +- .../persistent/carriers/EnumEntryCarrier.kt | 8 +- .../carriers/ErrorDeclarationCarrier.kt | 16 +- .../persistent/carriers/FieldCarrier.kt | 10 +- .../persistent/carriers/FunctionCarrier.kt | 28 +- .../carriers/LocalDelegatedPropertyCarrier.kt | 12 +- .../persistent/carriers/PropertyCarrier.kt | 17 +- .../persistent/carriers/TypeAliasCarrier.kt | 8 +- .../carriers/TypeParameterCarrier.kt | 18 +- .../carriers/ValueParameterCarrier.kt | 18 +- .../generator/build.gradle.kts | 15 + .../AnonymousInitializer.kt | 35 ++ .../kotlin/ir/persistentIrGenerator/Class.kt | 91 +++++ .../ir/persistentIrGenerator/Constructor.kt | 80 +++++ .../ir/persistentIrGenerator/EnumEntry.kt | 42 +++ .../persistentIrGenerator/ErrorDeclaration.kt | 45 +++ .../kotlin/ir/persistentIrGenerator/Field.kt | 55 +++ .../ir/persistentIrGenerator/Function.kt | 99 ++++++ .../LocalDelegatedProperty.kt | 53 +++ .../kotlin/ir/persistentIrGenerator/Main.kt | 23 ++ .../PersistentIrGenerator.kt | 315 ++++++++++++++++++ .../ir/persistentIrGenerator/Property.kt | 61 ++++ .../ir/persistentIrGenerator/TypeAlias.kt | 45 +++ .../ir/persistentIrGenerator/TypeParameter.kt | 41 +++ .../persistentIrGenerator/ValueParameter.kt | 51 +++ .../carriers/FunctionBaseCarrier.kt | 25 -- settings.gradle | 2 + 42 files changed, 1308 insertions(+), 205 deletions(-) rename compiler/ir/ir.tree.persistent/{src => gen}/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrAnonymousInitializer.kt (78%) rename compiler/ir/ir.tree.persistent/{src => gen}/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrClass.kt (79%) rename compiler/ir/ir.tree.persistent/{src => gen}/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrConstructor.kt (87%) rename compiler/ir/ir.tree.persistent/{src => gen}/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrEnumEntry.kt (77%) rename compiler/ir/ir.tree.persistent/{src => gen}/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrErrorDeclaration.kt (68%) rename compiler/ir/ir.tree.persistent/{src => gen}/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrField.kt (83%) rename compiler/ir/ir.tree.persistent/{src => gen}/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrFunctionCommon.kt (89%) rename compiler/ir/ir.tree.persistent/{src => gen}/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrLocalDelegatedProperty.kt (81%) rename compiler/ir/ir.tree.persistent/{src => gen}/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrPropertyCommon.kt (81%) rename compiler/ir/ir.tree.persistent/{src => gen}/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrTypeAlias.kt (82%) rename compiler/ir/ir.tree.persistent/{src => gen}/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrTypeParameter.kt (78%) rename compiler/ir/ir.tree.persistent/{src => gen}/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrValueParameter.kt (83%) rename compiler/ir/ir.tree.persistent/{src => gen}/org/jetbrains/kotlin/ir/declarations/persistent/carriers/AnonymousInitializerCarrier.kt (74%) rename compiler/ir/ir.tree.persistent/{src => gen}/org/jetbrains/kotlin/ir/declarations/persistent/carriers/ClassCarrier.kt (69%) rename compiler/ir/ir.tree.persistent/{src => gen}/org/jetbrains/kotlin/ir/declarations/persistent/carriers/ConstructorCarrier.kt (55%) rename compiler/ir/ir.tree.persistent/{src => gen}/org/jetbrains/kotlin/ir/declarations/persistent/carriers/EnumEntryCarrier.kt (74%) rename compiler/ir/ir.tree.persistent/{src => gen}/org/jetbrains/kotlin/ir/declarations/persistent/carriers/ErrorDeclarationCarrier.kt (51%) rename compiler/ir/ir.tree.persistent/{src => gen}/org/jetbrains/kotlin/ir/declarations/persistent/carriers/FieldCarrier.kt (78%) rename compiler/ir/ir.tree.persistent/{src => gen}/org/jetbrains/kotlin/ir/declarations/persistent/carriers/FunctionCarrier.kt (62%) rename compiler/ir/ir.tree.persistent/{src => gen}/org/jetbrains/kotlin/ir/declarations/persistent/carriers/LocalDelegatedPropertyCarrier.kt (73%) rename compiler/ir/ir.tree.persistent/{src => gen}/org/jetbrains/kotlin/ir/declarations/persistent/carriers/PropertyCarrier.kt (61%) rename compiler/ir/ir.tree.persistent/{src => gen}/org/jetbrains/kotlin/ir/declarations/persistent/carriers/TypeAliasCarrier.kt (79%) rename compiler/ir/ir.tree.persistent/{src => gen}/org/jetbrains/kotlin/ir/declarations/persistent/carriers/TypeParameterCarrier.kt (51%) rename compiler/ir/ir.tree.persistent/{src => gen}/org/jetbrains/kotlin/ir/declarations/persistent/carriers/ValueParameterCarrier.kt (59%) create mode 100644 compiler/ir/ir.tree.persistent/generator/build.gradle.kts create mode 100644 compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/AnonymousInitializer.kt create mode 100644 compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Class.kt create mode 100644 compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Constructor.kt create mode 100644 compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/EnumEntry.kt create mode 100644 compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/ErrorDeclaration.kt create mode 100644 compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Field.kt create mode 100644 compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Function.kt create mode 100644 compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/LocalDelegatedProperty.kt create mode 100644 compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt create mode 100644 compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/PersistentIrGenerator.kt create mode 100644 compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Property.kt create mode 100644 compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/TypeAlias.kt create mode 100644 compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/TypeParameter.kt create mode 100644 compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/ValueParameter.kt delete mode 100644 compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/carriers/FunctionBaseCarrier.kt diff --git a/compiler/ir/ir.tree.persistent/build.gradle.kts b/compiler/ir/ir.tree.persistent/build.gradle.kts index c4a6e3034f2..c8d9f2a1c72 100644 --- a/compiler/ir/ir.tree.persistent/build.gradle.kts +++ b/compiler/ir/ir.tree.persistent/build.gradle.kts @@ -8,6 +8,9 @@ dependencies { } sourceSets { - "main" { projectDefault() } + "main" { + projectDefault() + this.java.srcDir("gen") + } "test" {} } diff --git a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrAnonymousInitializer.kt b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrAnonymousInitializer.kt similarity index 78% rename from compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrAnonymousInitializer.kt rename to compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrAnonymousInitializer.kt index e724238189f..b051c05adbf 100644 --- a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrAnonymousInitializer.kt +++ b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrAnonymousInitializer.kt @@ -1,17 +1,6 @@ /* - * Copyright 2010-2016 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. + * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package org.jetbrains.kotlin.ir.declarations.persistent @@ -28,6 +17,8 @@ import org.jetbrains.kotlin.ir.expressions.IrBlockBody import org.jetbrains.kotlin.ir.expressions.IrConstructorCall import org.jetbrains.kotlin.ir.symbols.IrAnonymousInitializerSymbol +// Auto-generated by compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt. DO NOT EDIT! + internal class PersistentIrAnonymousInitializer( override val startOffset: Int, override val endOffset: Int, diff --git a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrClass.kt b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrClass.kt similarity index 79% rename from compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrClass.kt rename to compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrClass.kt index 67a8b24fa40..e62208b4947 100644 --- a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrClass.kt +++ b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrClass.kt @@ -1,31 +1,35 @@ /* - * Copyright 2010-2016 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. + * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package org.jetbrains.kotlin.ir.declarations.persistent -import org.jetbrains.kotlin.descriptors.* +import java.util.ArrayList +import java.util.Collections +import org.jetbrains.kotlin.descriptors.ClassDescriptor +import org.jetbrains.kotlin.descriptors.ClassKind +import org.jetbrains.kotlin.descriptors.DescriptorVisibility +import org.jetbrains.kotlin.descriptors.Modality +import org.jetbrains.kotlin.descriptors.SourceElement import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI -import org.jetbrains.kotlin.ir.declarations.* +import org.jetbrains.kotlin.ir.declarations.IrAttributeContainer +import org.jetbrains.kotlin.ir.declarations.IrClass +import org.jetbrains.kotlin.ir.declarations.IrDeclaration +import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin +import org.jetbrains.kotlin.ir.declarations.IrDeclarationParent +import org.jetbrains.kotlin.ir.declarations.IrTypeParameter +import org.jetbrains.kotlin.ir.declarations.IrValueParameter +import org.jetbrains.kotlin.ir.declarations.MetadataSource import org.jetbrains.kotlin.ir.declarations.persistent.carriers.Carrier import org.jetbrains.kotlin.ir.declarations.persistent.carriers.ClassCarrier +import org.jetbrains.kotlin.ir.declarations.stageController import org.jetbrains.kotlin.ir.expressions.IrConstructorCall import org.jetbrains.kotlin.ir.symbols.IrClassSymbol import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.name.Name -import java.util.* + +// Auto-generated by compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt. DO NOT EDIT! internal class PersistentIrClass( override val startOffset: Int, diff --git a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrConstructor.kt b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrConstructor.kt similarity index 87% rename from compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrConstructor.kt rename to compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrConstructor.kt index 05c22b2bc46..d44f6daeb74 100644 --- a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrConstructor.kt +++ b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrConstructor.kt @@ -1,17 +1,6 @@ /* - * Copyright 2010-2016 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. + * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package org.jetbrains.kotlin.ir.declarations.persistent @@ -19,9 +8,15 @@ package org.jetbrains.kotlin.ir.declarations.persistent import org.jetbrains.kotlin.descriptors.ClassConstructorDescriptor import org.jetbrains.kotlin.descriptors.DescriptorVisibility import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI -import org.jetbrains.kotlin.ir.declarations.* +import org.jetbrains.kotlin.ir.declarations.IrConstructor +import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin +import org.jetbrains.kotlin.ir.declarations.IrDeclarationParent +import org.jetbrains.kotlin.ir.declarations.IrTypeParameter +import org.jetbrains.kotlin.ir.declarations.IrValueParameter +import org.jetbrains.kotlin.ir.declarations.MetadataSource import org.jetbrains.kotlin.ir.declarations.persistent.carriers.Carrier import org.jetbrains.kotlin.ir.declarations.persistent.carriers.ConstructorCarrier +import org.jetbrains.kotlin.ir.declarations.stageController import org.jetbrains.kotlin.ir.expressions.IrBody import org.jetbrains.kotlin.ir.expressions.IrConstructorCall import org.jetbrains.kotlin.ir.symbols.IrConstructorSymbol @@ -31,6 +26,8 @@ import org.jetbrains.kotlin.ir.types.impl.ReturnTypeIsNotInitializedException import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource +// Auto-generated by compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt. DO NOT EDIT! + internal class PersistentIrConstructor( override val startOffset: Int, override val endOffset: Int, diff --git a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrEnumEntry.kt b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrEnumEntry.kt similarity index 77% rename from compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrEnumEntry.kt rename to compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrEnumEntry.kt index 33243e7d488..a681c2a9844 100644 --- a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrEnumEntry.kt +++ b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrEnumEntry.kt @@ -1,31 +1,26 @@ /* - * Copyright 2010-2016 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. + * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package org.jetbrains.kotlin.ir.declarations.persistent import org.jetbrains.kotlin.descriptors.ClassDescriptor import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI -import org.jetbrains.kotlin.ir.declarations.* +import org.jetbrains.kotlin.ir.declarations.IrClass +import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin +import org.jetbrains.kotlin.ir.declarations.IrDeclarationParent +import org.jetbrains.kotlin.ir.declarations.IrEnumEntry import org.jetbrains.kotlin.ir.declarations.persistent.carriers.Carrier import org.jetbrains.kotlin.ir.declarations.persistent.carriers.EnumEntryCarrier +import org.jetbrains.kotlin.ir.declarations.stageController import org.jetbrains.kotlin.ir.expressions.IrConstructorCall import org.jetbrains.kotlin.ir.expressions.IrExpressionBody import org.jetbrains.kotlin.ir.symbols.IrEnumEntrySymbol import org.jetbrains.kotlin.name.Name +// Auto-generated by compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt. DO NOT EDIT! + internal class PersistentIrEnumEntry( override val startOffset: Int, override val endOffset: Int, diff --git a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrErrorDeclaration.kt b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrErrorDeclaration.kt similarity index 68% rename from compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrErrorDeclaration.kt rename to compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrErrorDeclaration.kt index 949698978fd..9611f86ab7f 100644 --- a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrErrorDeclaration.kt +++ b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrErrorDeclaration.kt @@ -1,17 +1,6 @@ /* - * Copyright 2010-2016 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. + * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package org.jetbrains.kotlin.ir.declarations.persistent @@ -27,12 +16,16 @@ import org.jetbrains.kotlin.ir.declarations.stageController import org.jetbrains.kotlin.ir.descriptors.toIrBasedDescriptor import org.jetbrains.kotlin.ir.expressions.IrConstructorCall +// Auto-generated by compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt. DO NOT EDIT! + @OptIn(ObsoleteDescriptorBasedAPI::class) internal class PersistentIrErrorDeclaration( override val startOffset: Int, override val endOffset: Int, private val _descriptor: DeclarationDescriptor? -) : PersistentIrDeclarationBase, IrErrorDeclaration(), ErrorDeclarationCarrier { +) : IrErrorDeclaration(), + PersistentIrDeclarationBase, + ErrorDeclarationCarrier { override val descriptor: DeclarationDescriptor get() = _descriptor ?: this.toIrBasedDescriptor() diff --git a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrField.kt b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrField.kt similarity index 83% rename from compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrField.kt rename to compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrField.kt index 0a3b2db6dff..1c222461f04 100644 --- a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrField.kt +++ b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrField.kt @@ -1,27 +1,20 @@ /* - * Copyright 2010-2016 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. + * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package org.jetbrains.kotlin.ir.declarations.persistent -import org.jetbrains.kotlin.descriptors.PropertyDescriptor import org.jetbrains.kotlin.descriptors.DescriptorVisibility +import org.jetbrains.kotlin.descriptors.PropertyDescriptor import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI -import org.jetbrains.kotlin.ir.declarations.* +import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin +import org.jetbrains.kotlin.ir.declarations.IrDeclarationParent +import org.jetbrains.kotlin.ir.declarations.IrField +import org.jetbrains.kotlin.ir.declarations.MetadataSource import org.jetbrains.kotlin.ir.declarations.persistent.carriers.Carrier import org.jetbrains.kotlin.ir.declarations.persistent.carriers.FieldCarrier +import org.jetbrains.kotlin.ir.declarations.stageController import org.jetbrains.kotlin.ir.expressions.IrConstructorCall import org.jetbrains.kotlin.ir.expressions.IrExpressionBody import org.jetbrains.kotlin.ir.symbols.IrFieldSymbol @@ -29,6 +22,8 @@ import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.name.Name +// Auto-generated by compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt. DO NOT EDIT! + internal class PersistentIrField( override val startOffset: Int, override val endOffset: Int, diff --git a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrFunctionCommon.kt b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrFunctionCommon.kt similarity index 89% rename from compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrFunctionCommon.kt rename to compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrFunctionCommon.kt index 56a5a612bec..a6327bdf99d 100644 --- a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrFunctionCommon.kt +++ b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrFunctionCommon.kt @@ -1,14 +1,21 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package org.jetbrains.kotlin.ir.declarations.persistent import org.jetbrains.kotlin.descriptors.DescriptorVisibility -import org.jetbrains.kotlin.ir.declarations.* +import org.jetbrains.kotlin.ir.declarations.IrAttributeContainer +import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin +import org.jetbrains.kotlin.ir.declarations.IrDeclarationParent +import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction +import org.jetbrains.kotlin.ir.declarations.IrTypeParameter +import org.jetbrains.kotlin.ir.declarations.IrValueParameter +import org.jetbrains.kotlin.ir.declarations.MetadataSource import org.jetbrains.kotlin.ir.declarations.persistent.carriers.Carrier import org.jetbrains.kotlin.ir.declarations.persistent.carriers.FunctionCarrier +import org.jetbrains.kotlin.ir.declarations.stageController import org.jetbrains.kotlin.ir.expressions.IrBody import org.jetbrains.kotlin.ir.expressions.IrConstructorCall import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol @@ -19,6 +26,8 @@ import org.jetbrains.kotlin.ir.types.impl.ReturnTypeIsNotInitializedException import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource +// Auto-generated by compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt. DO NOT EDIT! + internal abstract class PersistentIrFunctionCommon( override val startOffset: Int, override val endOffset: Int, @@ -108,7 +117,7 @@ internal abstract class PersistentIrFunctionCommon( override var bodyField: IrBody? = null - final override var body: IrBody? + override var body: IrBody? get() = getCarrier().bodyField set(v) { if (body !== v) { diff --git a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrLocalDelegatedProperty.kt b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrLocalDelegatedProperty.kt similarity index 81% rename from compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrLocalDelegatedProperty.kt rename to compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrLocalDelegatedProperty.kt index 39691ae9e8f..77e87a25393 100644 --- a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrLocalDelegatedProperty.kt +++ b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrLocalDelegatedProperty.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ @@ -7,14 +7,22 @@ package org.jetbrains.kotlin.ir.declarations.persistent import org.jetbrains.kotlin.descriptors.VariableDescriptorWithAccessors import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI -import org.jetbrains.kotlin.ir.declarations.* +import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin +import org.jetbrains.kotlin.ir.declarations.IrDeclarationParent +import org.jetbrains.kotlin.ir.declarations.IrLocalDelegatedProperty +import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction +import org.jetbrains.kotlin.ir.declarations.IrVariable +import org.jetbrains.kotlin.ir.declarations.MetadataSource import org.jetbrains.kotlin.ir.declarations.persistent.carriers.Carrier import org.jetbrains.kotlin.ir.declarations.persistent.carriers.LocalDelegatedPropertyCarrier +import org.jetbrains.kotlin.ir.declarations.stageController import org.jetbrains.kotlin.ir.expressions.IrConstructorCall import org.jetbrains.kotlin.ir.symbols.IrLocalDelegatedPropertySymbol import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.name.Name +// Auto-generated by compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt. DO NOT EDIT! + // TODO make not persistent internal class PersistentIrLocalDelegatedProperty( override val startOffset: Int, @@ -24,9 +32,8 @@ internal class PersistentIrLocalDelegatedProperty( override val name: Name, type: IrType, override val isVar: Boolean -) : +) : IrLocalDelegatedProperty(), PersistentIrDeclarationBase, - IrLocalDelegatedProperty(), LocalDelegatedPropertyCarrier { init { @@ -52,7 +59,7 @@ internal class PersistentIrLocalDelegatedProperty( override var type: IrType get() = getCarrier().typeField set(v) { - if (getCarrier().typeField !== v) { + if (type !== v) { setCarrier().typeField = v } } diff --git a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrPropertyCommon.kt b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrPropertyCommon.kt similarity index 81% rename from compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrPropertyCommon.kt rename to compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrPropertyCommon.kt index d43fe79bf49..b86f839f78a 100644 --- a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrPropertyCommon.kt +++ b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrPropertyCommon.kt @@ -1,18 +1,27 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package org.jetbrains.kotlin.ir.declarations.persistent import org.jetbrains.kotlin.descriptors.DescriptorVisibility -import org.jetbrains.kotlin.ir.declarations.* +import org.jetbrains.kotlin.ir.declarations.IrAttributeContainer +import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin +import org.jetbrains.kotlin.ir.declarations.IrDeclarationParent +import org.jetbrains.kotlin.ir.declarations.IrField +import org.jetbrains.kotlin.ir.declarations.IrProperty +import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction +import org.jetbrains.kotlin.ir.declarations.MetadataSource import org.jetbrains.kotlin.ir.declarations.persistent.carriers.Carrier import org.jetbrains.kotlin.ir.declarations.persistent.carriers.PropertyCarrier +import org.jetbrains.kotlin.ir.declarations.stageController import org.jetbrains.kotlin.ir.expressions.IrConstructorCall import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource +// Auto-generated by compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt. DO NOT EDIT! + internal abstract class PersistentIrPropertyCommon( override val startOffset: Int, override val endOffset: Int, @@ -25,7 +34,7 @@ internal abstract class PersistentIrPropertyCommon( override val isDelegated: Boolean, isExternal: Boolean, override val isExpect: Boolean, - override val containerSource: DeserializedContainerSource?, + override val containerSource: DeserializedContainerSource? ) : IrProperty(), PersistentIrDeclarationBase, PropertyCarrier { diff --git a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrTypeAlias.kt b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrTypeAlias.kt similarity index 82% rename from compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrTypeAlias.kt rename to compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrTypeAlias.kt index a37ba1dd1ec..fc7860e0eba 100644 --- a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrTypeAlias.kt +++ b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrTypeAlias.kt @@ -1,21 +1,27 @@ /* - * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package org.jetbrains.kotlin.ir.declarations.persistent -import org.jetbrains.kotlin.descriptors.TypeAliasDescriptor import org.jetbrains.kotlin.descriptors.DescriptorVisibility +import org.jetbrains.kotlin.descriptors.TypeAliasDescriptor import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI -import org.jetbrains.kotlin.ir.declarations.* +import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin +import org.jetbrains.kotlin.ir.declarations.IrDeclarationParent +import org.jetbrains.kotlin.ir.declarations.IrTypeAlias +import org.jetbrains.kotlin.ir.declarations.IrTypeParameter import org.jetbrains.kotlin.ir.declarations.persistent.carriers.Carrier import org.jetbrains.kotlin.ir.declarations.persistent.carriers.TypeAliasCarrier +import org.jetbrains.kotlin.ir.declarations.stageController import org.jetbrains.kotlin.ir.expressions.IrConstructorCall import org.jetbrains.kotlin.ir.symbols.IrTypeAliasSymbol import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.name.Name +// Auto-generated by compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt. DO NOT EDIT! + internal class PersistentIrTypeAlias( override val startOffset: Int, override val endOffset: Int, diff --git a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrTypeParameter.kt b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrTypeParameter.kt similarity index 78% rename from compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrTypeParameter.kt rename to compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrTypeParameter.kt index 4de9e93a666..0fa5b40fbb2 100644 --- a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrTypeParameter.kt +++ b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrTypeParameter.kt @@ -1,17 +1,6 @@ /* - * Copyright 2010-2017 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. + * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package org.jetbrains.kotlin.ir.declarations.persistent @@ -30,6 +19,8 @@ import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.types.Variance +// Auto-generated by compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt. DO NOT EDIT! + internal class PersistentIrTypeParameter( override val startOffset: Int, override val endOffset: Int, diff --git a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrValueParameter.kt b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrValueParameter.kt similarity index 83% rename from compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrValueParameter.kt rename to compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrValueParameter.kt index 84a10bee4c8..241521ee85e 100644 --- a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrValueParameter.kt +++ b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrValueParameter.kt @@ -1,17 +1,6 @@ /* - * Copyright 2010-2017 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. + * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package org.jetbrains.kotlin.ir.declarations.persistent @@ -30,6 +19,8 @@ import org.jetbrains.kotlin.ir.symbols.IrValueParameterSymbol import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.name.Name +// Auto-generated by compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt. DO NOT EDIT! + internal class PersistentIrValueParameter( override val startOffset: Int, override val endOffset: Int, diff --git a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/carriers/AnonymousInitializerCarrier.kt b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/carriers/AnonymousInitializerCarrier.kt similarity index 74% rename from compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/carriers/AnonymousInitializerCarrier.kt rename to compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/carriers/AnonymousInitializerCarrier.kt index afd78d2f0c7..21ca57fd70e 100644 --- a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/carriers/AnonymousInitializerCarrier.kt +++ b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/carriers/AnonymousInitializerCarrier.kt @@ -1,6 +1,6 @@ /* - * Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license - * that can be found in the license/LICENSE.txt file. + * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package org.jetbrains.kotlin.ir.declarations.persistent.carriers @@ -10,7 +10,9 @@ import org.jetbrains.kotlin.ir.declarations.IrDeclarationParent import org.jetbrains.kotlin.ir.expressions.IrBlockBody import org.jetbrains.kotlin.ir.expressions.IrConstructorCall -internal interface AnonymousInitializerCarrier : DeclarationCarrier { +// Auto-generated by compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt. DO NOT EDIT! + +internal interface AnonymousInitializerCarrier : DeclarationCarrier{ var bodyField: IrBlockBody? override fun clone(): AnonymousInitializerCarrier { diff --git a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/carriers/ClassCarrier.kt b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/carriers/ClassCarrier.kt similarity index 69% rename from compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/carriers/ClassCarrier.kt rename to compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/carriers/ClassCarrier.kt index 46732248661..bb6799b1a88 100644 --- a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/carriers/ClassCarrier.kt +++ b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/carriers/ClassCarrier.kt @@ -1,25 +1,32 @@ /* - * Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license - * that can be found in the license/LICENSE.txt file. + * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package org.jetbrains.kotlin.ir.declarations.persistent.carriers -import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.descriptors.DescriptorVisibility -import org.jetbrains.kotlin.ir.declarations.* +import org.jetbrains.kotlin.descriptors.Modality +import org.jetbrains.kotlin.ir.declarations.IrAttributeContainer +import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin +import org.jetbrains.kotlin.ir.declarations.IrDeclarationParent +import org.jetbrains.kotlin.ir.declarations.IrTypeParameter +import org.jetbrains.kotlin.ir.declarations.IrValueParameter +import org.jetbrains.kotlin.ir.declarations.MetadataSource import org.jetbrains.kotlin.ir.expressions.IrConstructorCall import org.jetbrains.kotlin.ir.types.IrType -internal interface ClassCarrier : DeclarationCarrier { +// Auto-generated by compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt. DO NOT EDIT! + +internal interface ClassCarrier : DeclarationCarrier{ var thisReceiverField: IrValueParameter? var metadataField: MetadataSource? var visibilityField: DescriptorVisibility var modalityField: Modality - var isExternalField: Boolean var attributeOwnerIdField: IrAttributeContainer var typeParametersField: List var superTypesField: List + var isExternalField: Boolean override fun clone(): ClassCarrier { return ClassCarrierImpl( diff --git a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/carriers/ConstructorCarrier.kt b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/carriers/ConstructorCarrier.kt similarity index 55% rename from compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/carriers/ConstructorCarrier.kt rename to compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/carriers/ConstructorCarrier.kt index 85ee79cea81..dbbd6510eab 100644 --- a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/carriers/ConstructorCarrier.kt +++ b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/carriers/ConstructorCarrier.kt @@ -1,17 +1,33 @@ /* - * Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license - * that can be found in the license/LICENSE.txt file. + * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package org.jetbrains.kotlin.ir.declarations.persistent.carriers import org.jetbrains.kotlin.descriptors.DescriptorVisibility -import org.jetbrains.kotlin.ir.declarations.* +import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin +import org.jetbrains.kotlin.ir.declarations.IrDeclarationParent +import org.jetbrains.kotlin.ir.declarations.IrTypeParameter +import org.jetbrains.kotlin.ir.declarations.IrValueParameter +import org.jetbrains.kotlin.ir.declarations.MetadataSource import org.jetbrains.kotlin.ir.expressions.IrBody import org.jetbrains.kotlin.ir.expressions.IrConstructorCall import org.jetbrains.kotlin.ir.types.IrType -internal interface ConstructorCarrier : FunctionBaseCarrier { +// Auto-generated by compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt. DO NOT EDIT! + +internal interface ConstructorCarrier : DeclarationCarrier{ + var returnTypeFieldField: IrType + var dispatchReceiverParameterField: IrValueParameter? + var extensionReceiverParameterField: IrValueParameter? + var bodyField: IrBody? + var metadataField: MetadataSource? + var visibilityField: DescriptorVisibility + var typeParametersField: List + var valueParametersField: List + var isExternalField: Boolean + override fun clone(): ConstructorCarrier { return ConstructorCarrierImpl( lastModified, @@ -26,7 +42,7 @@ internal interface ConstructorCarrier : FunctionBaseCarrier { visibilityField, typeParametersField, valueParametersField, - isExternalField, + isExternalField ) } } @@ -44,5 +60,5 @@ internal class ConstructorCarrierImpl( override var visibilityField: DescriptorVisibility, override var typeParametersField: List, override var valueParametersField: List, - override var isExternalField: Boolean, + override var isExternalField: Boolean ) : ConstructorCarrier diff --git a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/carriers/EnumEntryCarrier.kt b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/carriers/EnumEntryCarrier.kt similarity index 74% rename from compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/carriers/EnumEntryCarrier.kt rename to compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/carriers/EnumEntryCarrier.kt index 94e2257f7c8..93f43407551 100644 --- a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/carriers/EnumEntryCarrier.kt +++ b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/carriers/EnumEntryCarrier.kt @@ -1,6 +1,6 @@ /* - * Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license - * that can be found in the license/LICENSE.txt file. + * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package org.jetbrains.kotlin.ir.declarations.persistent.carriers @@ -11,7 +11,9 @@ import org.jetbrains.kotlin.ir.declarations.IrDeclarationParent import org.jetbrains.kotlin.ir.expressions.IrConstructorCall import org.jetbrains.kotlin.ir.expressions.IrExpressionBody -internal interface EnumEntryCarrier : DeclarationCarrier { +// Auto-generated by compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt. DO NOT EDIT! + +internal interface EnumEntryCarrier : DeclarationCarrier{ var correspondingClassField: IrClass? var initializerExpressionField: IrExpressionBody? diff --git a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/carriers/ErrorDeclarationCarrier.kt b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/carriers/ErrorDeclarationCarrier.kt similarity index 51% rename from compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/carriers/ErrorDeclarationCarrier.kt rename to compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/carriers/ErrorDeclarationCarrier.kt index 94a251b04f4..53724237328 100644 --- a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/carriers/ErrorDeclarationCarrier.kt +++ b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/carriers/ErrorDeclarationCarrier.kt @@ -1,6 +1,6 @@ /* - * Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license - * that can be found in the license/LICENSE.txt file. + * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package org.jetbrains.kotlin.ir.declarations.persistent.carriers @@ -9,9 +9,17 @@ import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin import org.jetbrains.kotlin.ir.declarations.IrDeclarationParent import org.jetbrains.kotlin.ir.expressions.IrConstructorCall -internal interface ErrorDeclarationCarrier : DeclarationCarrier { +// Auto-generated by compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt. DO NOT EDIT! + +internal interface ErrorDeclarationCarrier : DeclarationCarrier{ + override fun clone(): ErrorDeclarationCarrier { - return ErrorDeclarationCarrierImpl(lastModified, parentField, originField, annotationsField) + return ErrorDeclarationCarrierImpl( + lastModified, + parentField, + originField, + annotationsField + ) } } diff --git a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/carriers/FieldCarrier.kt b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/carriers/FieldCarrier.kt similarity index 78% rename from compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/carriers/FieldCarrier.kt rename to compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/carriers/FieldCarrier.kt index 8da09c3fd20..1e86540c981 100644 --- a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/carriers/FieldCarrier.kt +++ b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/carriers/FieldCarrier.kt @@ -1,6 +1,6 @@ /* - * Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license - * that can be found in the license/LICENSE.txt file. + * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package org.jetbrains.kotlin.ir.declarations.persistent.carriers @@ -13,7 +13,9 @@ import org.jetbrains.kotlin.ir.expressions.IrExpressionBody import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol import org.jetbrains.kotlin.ir.types.IrType -internal interface FieldCarrier : DeclarationCarrier { +// Auto-generated by compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt. DO NOT EDIT! + +internal interface FieldCarrier : DeclarationCarrier{ var typeField: IrType var initializerField: IrExpressionBody? var correspondingPropertySymbolField: IrPropertySymbol? @@ -30,7 +32,7 @@ internal interface FieldCarrier : DeclarationCarrier { initializerField, correspondingPropertySymbolField, metadataField, - isExternalField, + isExternalField ) } } diff --git a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/carriers/FunctionCarrier.kt b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/carriers/FunctionCarrier.kt similarity index 62% rename from compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/carriers/FunctionCarrier.kt rename to compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/carriers/FunctionCarrier.kt index 80b113997fb..38cd86ca15f 100644 --- a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/carriers/FunctionCarrier.kt +++ b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/carriers/FunctionCarrier.kt @@ -1,22 +1,38 @@ /* - * Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license - * that can be found in the license/LICENSE.txt file. + * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package org.jetbrains.kotlin.ir.declarations.persistent.carriers import org.jetbrains.kotlin.descriptors.DescriptorVisibility -import org.jetbrains.kotlin.ir.declarations.* +import org.jetbrains.kotlin.ir.declarations.IrAttributeContainer +import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin +import org.jetbrains.kotlin.ir.declarations.IrDeclarationParent +import org.jetbrains.kotlin.ir.declarations.IrTypeParameter +import org.jetbrains.kotlin.ir.declarations.IrValueParameter +import org.jetbrains.kotlin.ir.declarations.MetadataSource import org.jetbrains.kotlin.ir.expressions.IrBody import org.jetbrains.kotlin.ir.expressions.IrConstructorCall import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol import org.jetbrains.kotlin.ir.types.IrType -internal interface FunctionCarrier : FunctionBaseCarrier { +// Auto-generated by compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt. DO NOT EDIT! + +internal interface FunctionCarrier : DeclarationCarrier{ + var returnTypeFieldField: IrType + var dispatchReceiverParameterField: IrValueParameter? + var extensionReceiverParameterField: IrValueParameter? + var bodyField: IrBody? + var metadataField: MetadataSource? + var visibilityField: DescriptorVisibility + var typeParametersField: List + var valueParametersField: List var correspondingPropertySymbolField: IrPropertySymbol? var overriddenSymbolsField: List var attributeOwnerIdField: IrAttributeContainer + var isExternalField: Boolean override fun clone(): FunctionCarrier { return FunctionCarrierImpl( @@ -35,7 +51,7 @@ internal interface FunctionCarrier : FunctionBaseCarrier { correspondingPropertySymbolField, overriddenSymbolsField, attributeOwnerIdField, - isExternalField, + isExternalField ) } } @@ -56,5 +72,5 @@ internal class FunctionCarrierImpl( override var correspondingPropertySymbolField: IrPropertySymbol?, override var overriddenSymbolsField: List, override var attributeOwnerIdField: IrAttributeContainer, - override var isExternalField: Boolean, + override var isExternalField: Boolean ) : FunctionCarrier diff --git a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/carriers/LocalDelegatedPropertyCarrier.kt b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/carriers/LocalDelegatedPropertyCarrier.kt similarity index 73% rename from compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/carriers/LocalDelegatedPropertyCarrier.kt rename to compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/carriers/LocalDelegatedPropertyCarrier.kt index 12d76ac24e1..523da1fa329 100644 --- a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/carriers/LocalDelegatedPropertyCarrier.kt +++ b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/carriers/LocalDelegatedPropertyCarrier.kt @@ -1,15 +1,21 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package org.jetbrains.kotlin.ir.declarations.persistent.carriers -import org.jetbrains.kotlin.ir.declarations.* +import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin +import org.jetbrains.kotlin.ir.declarations.IrDeclarationParent +import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction +import org.jetbrains.kotlin.ir.declarations.IrVariable +import org.jetbrains.kotlin.ir.declarations.MetadataSource import org.jetbrains.kotlin.ir.expressions.IrConstructorCall import org.jetbrains.kotlin.ir.types.IrType -internal interface LocalDelegatedPropertyCarrier : DeclarationCarrier { +// Auto-generated by compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt. DO NOT EDIT! + +internal interface LocalDelegatedPropertyCarrier : DeclarationCarrier{ var typeField: IrType var delegateField: IrVariable? var getterField: IrSimpleFunction? diff --git a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/carriers/PropertyCarrier.kt b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/carriers/PropertyCarrier.kt similarity index 61% rename from compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/carriers/PropertyCarrier.kt rename to compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/carriers/PropertyCarrier.kt index 17dc84fc51e..1f723f65d8d 100644 --- a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/carriers/PropertyCarrier.kt +++ b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/carriers/PropertyCarrier.kt @@ -1,14 +1,21 @@ /* - * Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license - * that can be found in the license/LICENSE.txt file. + * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package org.jetbrains.kotlin.ir.declarations.persistent.carriers -import org.jetbrains.kotlin.ir.declarations.* +import org.jetbrains.kotlin.ir.declarations.IrAttributeContainer +import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin +import org.jetbrains.kotlin.ir.declarations.IrDeclarationParent +import org.jetbrains.kotlin.ir.declarations.IrField +import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction +import org.jetbrains.kotlin.ir.declarations.MetadataSource import org.jetbrains.kotlin.ir.expressions.IrConstructorCall -internal interface PropertyCarrier : DeclarationCarrier { +// Auto-generated by compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt. DO NOT EDIT! + +internal interface PropertyCarrier : DeclarationCarrier{ var backingFieldField: IrField? var getterField: IrSimpleFunction? var setterField: IrSimpleFunction? @@ -27,7 +34,7 @@ internal interface PropertyCarrier : DeclarationCarrier { setterField, metadataField, attributeOwnerIdField, - isExternalField, + isExternalField ) } } diff --git a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/carriers/TypeAliasCarrier.kt b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/carriers/TypeAliasCarrier.kt similarity index 79% rename from compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/carriers/TypeAliasCarrier.kt rename to compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/carriers/TypeAliasCarrier.kt index 80518218da4..8a820c9eaf0 100644 --- a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/carriers/TypeAliasCarrier.kt +++ b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/carriers/TypeAliasCarrier.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ @@ -11,7 +11,9 @@ import org.jetbrains.kotlin.ir.declarations.IrTypeParameter import org.jetbrains.kotlin.ir.expressions.IrConstructorCall import org.jetbrains.kotlin.ir.types.IrType -internal interface TypeAliasCarrier : DeclarationCarrier { +// Auto-generated by compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt. DO NOT EDIT! + +internal interface TypeAliasCarrier : DeclarationCarrier{ var typeParametersField: List var expandedTypeField: IrType @@ -33,5 +35,5 @@ internal class TypeAliasCarrierImpl( override var originField: IrDeclarationOrigin, override var annotationsField: List, override var typeParametersField: List, - override var expandedTypeField: IrType, + override var expandedTypeField: IrType ) : TypeAliasCarrier diff --git a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/carriers/TypeParameterCarrier.kt b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/carriers/TypeParameterCarrier.kt similarity index 51% rename from compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/carriers/TypeParameterCarrier.kt rename to compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/carriers/TypeParameterCarrier.kt index 2b10ca10f5a..18ec9a07390 100644 --- a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/carriers/TypeParameterCarrier.kt +++ b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/carriers/TypeParameterCarrier.kt @@ -1,6 +1,6 @@ /* - * Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license - * that can be found in the license/LICENSE.txt file. + * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package org.jetbrains.kotlin.ir.declarations.persistent.carriers @@ -10,11 +10,19 @@ import org.jetbrains.kotlin.ir.declarations.IrDeclarationParent import org.jetbrains.kotlin.ir.expressions.IrConstructorCall import org.jetbrains.kotlin.ir.types.IrType -internal interface TypeParameterCarrier : DeclarationCarrier { +// Auto-generated by compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt. DO NOT EDIT! + +internal interface TypeParameterCarrier : DeclarationCarrier{ var superTypesField: List override fun clone(): TypeParameterCarrier { - return TypeParameterCarrierImpl(lastModified, parentField, originField, annotationsField, superTypesField) + return TypeParameterCarrierImpl( + lastModified, + parentField, + originField, + annotationsField, + superTypesField + ) } } @@ -23,5 +31,5 @@ internal class TypeParameterCarrierImpl( override var parentField: IrDeclarationParent?, override var originField: IrDeclarationOrigin, override var annotationsField: List, - override var superTypesField: List, + override var superTypesField: List ) : TypeParameterCarrier diff --git a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/carriers/ValueParameterCarrier.kt b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/carriers/ValueParameterCarrier.kt similarity index 59% rename from compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/carriers/ValueParameterCarrier.kt rename to compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/carriers/ValueParameterCarrier.kt index d1541a6a4f3..072377b43c2 100644 --- a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/carriers/ValueParameterCarrier.kt +++ b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/carriers/ValueParameterCarrier.kt @@ -1,6 +1,6 @@ /* - * Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license - * that can be found in the license/LICENSE.txt file. + * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package org.jetbrains.kotlin.ir.declarations.persistent.carriers @@ -11,14 +11,22 @@ import org.jetbrains.kotlin.ir.expressions.IrConstructorCall import org.jetbrains.kotlin.ir.expressions.IrExpressionBody import org.jetbrains.kotlin.ir.types.IrType -internal interface ValueParameterCarrier : DeclarationCarrier { +// Auto-generated by compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt. DO NOT EDIT! + +internal interface ValueParameterCarrier : DeclarationCarrier{ var defaultValueField: IrExpressionBody? var typeField: IrType var varargElementTypeField: IrType? override fun clone(): ValueParameterCarrier { return ValueParameterCarrierImpl( - lastModified, parentField, originField, annotationsField, defaultValueField, typeField, varargElementTypeField + lastModified, + parentField, + originField, + annotationsField, + defaultValueField, + typeField, + varargElementTypeField ) } } @@ -30,5 +38,5 @@ internal class ValueParameterCarrierImpl( override var annotationsField: List, override var defaultValueField: IrExpressionBody?, override var typeField: IrType, - override var varargElementTypeField: IrType?, + override var varargElementTypeField: IrType? ) : ValueParameterCarrier diff --git a/compiler/ir/ir.tree.persistent/generator/build.gradle.kts b/compiler/ir/ir.tree.persistent/generator/build.gradle.kts new file mode 100644 index 00000000000..940650ad670 --- /dev/null +++ b/compiler/ir/ir.tree.persistent/generator/build.gradle.kts @@ -0,0 +1,15 @@ +plugins { + kotlin("jvm") + id("jps-compatible") +} + +dependencies { + implementation(kotlinStdlib()) +} + +sourceSets { + "main" { projectDefault() } + "test" {} +} + +val generatePir by generator("org.jetbrains.kotlin.ir.persistentIrGenerator.MainKt", mainSourceSet) \ No newline at end of file diff --git a/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/AnonymousInitializer.kt b/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/AnonymousInitializer.kt new file mode 100644 index 00000000000..0790f993898 --- /dev/null +++ b/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/AnonymousInitializer.kt @@ -0,0 +1,35 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.ir.persistentIrGenerator + +internal fun PersistentIrGenerator.generateAnonymousInitializer() { + val body = Field("body", IrBlockBody, lateinit = true) + + writeFile("PersistentIrAnonymousInitializer.kt", renderFile("org.jetbrains.kotlin.ir.declarations.persistent") { + lines( + id, + +"internal class PersistentIrAnonymousInitializer(", + arrayOf( + startOffset, + endOffset, + origin, + +"override val symbol: " + IrAnonymousInitializerSymbol, + isStatic + " = false", + ).join(separator = ",\n").indent(), + +") : " + baseClasses("AnonymousInitializer") + " " + blockSpaced( + initBlock, + commonFields, + descriptor(ClassDescriptor), + body.toBody(), + ), + id, + )() + }) + + writeFile("carriers/AnonymousInitializerCarrier.kt", renderFile("org.jetbrains.kotlin.ir.declarations.persistent.carriers") { + carriers("AnonymousInitializer", body)() + }) +} \ No newline at end of file diff --git a/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Class.kt b/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Class.kt new file mode 100644 index 00000000000..870379a130c --- /dev/null +++ b/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Class.kt @@ -0,0 +1,91 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.ir.persistentIrGenerator + +internal fun PersistentIrGenerator.generateClass() { + val visibilityField = Field("visibility", descriptorType("DescriptorVisibility")) + val thisReceiverField = Field("thisReceiver", irDeclaration("IrValueParameter") + "?") + val typeParametersField = Field("typeParameters", +"List<" + irDeclaration("IrTypeParameter") + ">") + val superTypesField = Field("superTypes", +"List<" + import("IrType", "org.jetbrains.kotlin.ir.types") + ">") + val metadataField = Field("metadata", irDeclaration("MetadataSource") + "?") + val modalityField = Field("modality", descriptorType("Modality")) + val attributeOwnerIdField = Field("attributeOwnerId", IrAttributeContainer) + val isExternalField = Field("isExternal", +"Boolean", notEq = "!=") + + writeFile("PersistentIrClass.kt", renderFile("org.jetbrains.kotlin.ir.declarations.persistent") { + lines( + id, + +"internal class PersistentIrClass(", + arrayOf( + startOffset, + endOffset, + origin, + +"override val symbol: " + IrClassSymbol, + name, + kind, + visibility, + modality, + isCompanion, + isInner, + isData, + isExternal + " = false", + isInline + " = false", + isExpect + " = false", + isFun, + source, + ).join(separator = ",\n").indent(), + +") : " + baseClasses("Class") + " " + blockSpaced( + initBlock, + commonFields, + descriptor(ClassDescriptor), + visibilityField.toPersistentField(+"visibility"), + thisReceiverField.toPersistentField(+"null"), + lines( + +"private var initialDeclarations: MutableList<" + IrDeclaration + ">? = null", + id, + +"override val declarations: MutableList = " + import("ArrayList", "java.util") + "()", + lines( + +"get() " + block( + +"if (createdOn < stageController.currentStage && initialDeclarations == null) " + block( + +"initialDeclarations = " + import("Collections", "java.util") + ".unmodifiableList(ArrayList(field))" + ), + id, + +""" + return if (stageController.canAccessDeclarationsOf(this)) { + ensureLowered() + field + } else { + initialDeclarations ?: field + } + """.trimIndent() + ) + ).indent() + ), + typeParametersField.toPersistentField(+"emptyList()"), + superTypesField.toPersistentField(+"emptyList()"), + metadataField.toPersistentField(+"null"), + modalityField.toPersistentField(+"modality"), + isExternalField.toPersistentField(+"isExternal"), + attributeOwnerIdField.toPersistentField(+"this"), + ), + id, + )() + }) + + writeFile("carriers/ClassCarrier.kt", renderFile("org.jetbrains.kotlin.ir.declarations.persistent.carriers") { + carriers( + "Class", + thisReceiverField, + metadataField, + visibilityField, + modalityField, + attributeOwnerIdField, + typeParametersField, + superTypesField, + isExternalField, + )() + }) +} \ No newline at end of file diff --git a/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Constructor.kt b/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Constructor.kt new file mode 100644 index 00000000000..a75134ab61d --- /dev/null +++ b/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Constructor.kt @@ -0,0 +1,80 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.ir.persistentIrGenerator + +internal fun PersistentIrGenerator.generateConstructor() { + val returnTypeFieldField = Field("returnTypeField", IrType) + val typeParametersField = Field("typeParameters", +"List<" + IrTypeParameter + ">") + val dispatchReceiverParameterField = Field("dispatchReceiverParameter", IrValueParameter + "?") + val extensionReceiverParameterField = Field("extensionReceiverParameter", IrValueParameter + "?") + val valueParametersField = Field("valueParameters", +"List<" + IrValueParameter + ">") + val bodyField = Field("body", IrBody + "?") + val metadataField = Field("metadata", MetadataSource + "?") + val visibilityField = Field("visibility", DescriptorVisibility) + val isExternalField = Field("isExternal", +"Boolean", notEq = "!=") + + writeFile("PersistentIrConstructor.kt", renderFile("org.jetbrains.kotlin.ir.declarations.persistent") { + lines( + id, + +"internal class PersistentIrConstructor(", + arrayOf( + startOffset, + endOffset, + origin, + +"override val symbol: " + irSymbol("IrConstructorSymbol"), + name, + visibility, + returnType, + isInline, + isExternal, + isPrimary, + isExpect, + containerSource, + ).join(separator = ",\n").indent(), + +") : " + baseClasses("Constructor") + " " + blockSpaced( + initBlock, + commonFields, + returnTypeFieldField.toPersistentField(+"returnType", modifier = "private"), + lines( + +"override var returnType: IrType", + lines( + +"get() = returnTypeField.let " + block( + +"if (it !== " + import("IrUninitializedType", "org.jetbrains.kotlin.ir.types.impl") + ") it else throw " + import("ReturnTypeIsNotInitializedException", "org.jetbrains.kotlin.ir.types.impl") + "(this)" + ), + +"set(c) " + block( + +"returnTypeField = c" + ) + ).indent() + ), + typeParametersField.toPersistentField(+"emptyList()"), + dispatchReceiverParameterField.toPersistentField(+"null"), + extensionReceiverParameterField.toPersistentField(+"null"), + valueParametersField.toPersistentField(+"emptyList()"), + bodyField.toBody(), + metadataField.toPersistentField(+"null"), + visibilityField.toPersistentField(+"visibility"), + isExternalField.toPersistentField(+"isExternal"), + descriptor(ClassConstructorDescriptor) + ), + id, + )() + }) + + writeFile("carriers/ConstructorCarrier.kt", renderFile("org.jetbrains.kotlin.ir.declarations.persistent.carriers") { + carriers( + "Constructor", + returnTypeFieldField, + dispatchReceiverParameterField, + extensionReceiverParameterField, + bodyField, + metadataField, + visibilityField, + typeParametersField, + valueParametersField, + isExternalField, + )() + }) +} \ No newline at end of file diff --git a/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/EnumEntry.kt b/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/EnumEntry.kt new file mode 100644 index 00000000000..1346b4e6c1a --- /dev/null +++ b/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/EnumEntry.kt @@ -0,0 +1,42 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.ir.persistentIrGenerator + +internal fun PersistentIrGenerator.generateEnumEntry() { + val correspondingClassField = Field("correspondingClass", IrClass + "?") + val initializerExpressionField = Field("initializerExpression", IrExpressionBody + "?") + + writeFile("PersistentIrEnumEntry.kt", renderFile("org.jetbrains.kotlin.ir.declarations.persistent") { + lines( + id, + +"internal class PersistentIrEnumEntry(", + arrayOf( + startOffset, + endOffset, + origin, + +"override val symbol: " + irSymbol("IrEnumEntrySymbol"), + name, + ).join(separator = ",\n").indent(), + +") : " + baseClasses("EnumEntry") + " " + blockSpaced( + initBlock, + commonFields, + descriptor(ClassDescriptor), + + correspondingClassField.toPersistentField(+"null"), + initializerExpressionField.toBody() + ), + id, + )() + }) + + writeFile("carriers/EnumEntryCarrier.kt", renderFile("org.jetbrains.kotlin.ir.declarations.persistent.carriers") { + carriers( + "EnumEntry", + correspondingClassField, + initializerExpressionField, + )() + }) +} \ No newline at end of file diff --git a/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/ErrorDeclaration.kt b/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/ErrorDeclaration.kt new file mode 100644 index 00000000000..9f5bc61d59a --- /dev/null +++ b/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/ErrorDeclaration.kt @@ -0,0 +1,45 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.ir.persistentIrGenerator + + +internal fun PersistentIrGenerator.generateErrorDeclaration() { + writeFile("PersistentIrErrorDeclaration.kt", renderFile("org.jetbrains.kotlin.ir.declarations.persistent") { + lines( + id, + +"@OptIn(" + ObsoleteDescriptorBasedAPI + "::class)", + +"internal class PersistentIrErrorDeclaration(", + arrayOf( + startOffset, + endOffset, + +"private val _descriptor: " + DeclarationDescriptor + "?" + ).join(separator = ",\n").indent(), + +") : " + baseClasses("ErrorDeclaration") + " " + block( + lines( + +"override val descriptor: " + DeclarationDescriptor, + +" get() = _descriptor ?: this." + import("toIrBasedDescriptor", "org.jetbrains.kotlin.ir.descriptors") + "()" + ), + id, + lastModified, + loweredUpTo, + values, + createdOn, + id, + parentField, + +"override var originField: " + IrDeclarationOrigin + " = IrDeclarationOrigin.DEFINED", + removedOn, + annotationsField, + ), + id, + )() + }) + + writeFile("carriers/ErrorDeclarationCarrier.kt", renderFile("org.jetbrains.kotlin.ir.declarations.persistent.carriers") { + carriers( + "ErrorDeclaration", + )() + }) +} \ No newline at end of file diff --git a/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Field.kt b/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Field.kt new file mode 100644 index 00000000000..f440e7d0324 --- /dev/null +++ b/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Field.kt @@ -0,0 +1,55 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.ir.persistentIrGenerator + +internal fun PersistentIrGenerator.generateField() { + val initializerField = Field("initializer", IrExpressionBody + "?") + val correspondingPropertySymbolField = Field("correspondingPropertySymbol", IrPropertySymbol + "?") + val metadataField = Field("metadata", MetadataSource + "?") + val typeField = Field("type", IrType) + val isExternalField = Field("isExternal", +"Boolean", notEq = "!=") + + writeFile("PersistentIrField.kt", renderFile("org.jetbrains.kotlin.ir.declarations.persistent") { + lines( + id, + +"internal class PersistentIrField(", + arrayOf( + startOffset, + endOffset, + origin, + +"override val symbol: " + irSymbol("IrFieldSymbol"), + name, + +"type: " + IrType, + +"override var " + visibility, + isFinal, + isExternal, + isStatic, + ).join(separator = ",\n").indent(), + +") : " + baseClasses("Field") + " " + blockSpaced( + initBlock, + commonFields, + descriptor(descriptorType("PropertyDescriptor")), + initializerField.toBody(), + correspondingPropertySymbolField.toPersistentField(+"null"), + metadataField.toPersistentField(+"null"), + typeField.toPersistentField(+"type"), + isExternalField.toPersistentField(+"isExternal"), + ), + id, + )() + }) + + writeFile("carriers/FieldCarrier.kt", renderFile("org.jetbrains.kotlin.ir.declarations.persistent.carriers") { + carriers( + "Field", + typeField, + initializerField, + correspondingPropertySymbolField, + metadataField, + isExternalField, + )() + }) +} \ No newline at end of file diff --git a/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Function.kt b/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Function.kt new file mode 100644 index 00000000000..0d3d21c20db --- /dev/null +++ b/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Function.kt @@ -0,0 +1,99 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.ir.persistentIrGenerator + +internal fun PersistentIrGenerator.generateFunction() { + + val returnTypeFieldField = Field("returnTypeField", IrType) + val typeParametersField = Field("typeParameters", +"List<" + IrTypeParameter + ">") + val dispatchReceiverParameterField = Field("dispatchReceiverParameter", IrValueParameter + "?") + val extensionReceiverParameterField = Field("extensionReceiverParameter", IrValueParameter + "?") + val valueParametersField = Field("valueParameters", +"List<" + IrValueParameter + ">") + val bodyField = Field("body", IrBody + "?") + val metadataField = Field("metadata", MetadataSource + "?") + val visibilityField = Field("visibility", DescriptorVisibility) + val overriddenSymbolsField = Field("overriddenSymbols", +"List<" + irSymbol("IrSimpleFunctionSymbol") + ">") + val attributeOwnerIdField = Field("attributeOwnerId", IrAttributeContainer) + val correspondingPropertySymbolField = Field("correspondingPropertySymbol", IrPropertySymbol + "?") + val isExternalField = Field("isExternal", +"Boolean", notEq = "!=") + + writeFile("PersistentIrFunctionCommon.kt", renderFile("org.jetbrains.kotlin.ir.declarations.persistent") { + lines( + id, + +"internal abstract class PersistentIrFunctionCommon(", + arrayOf( + startOffset, + endOffset, + origin, + name, + visibility, + returnType, + isInline, + isExternal, + +"override val isTailrec: Boolean", + +"override val isSuspend: Boolean", + +"override val isOperator: Boolean", + +"override val isInfix: Boolean", + isExpect, + containerSource + " = null", + ).join(separator = ",\n").indent(), + +") : " + baseClasses("Function", baseClass = "IrSimpleFunction") + " " + blockSpaced( + commonFields, + returnTypeFieldField.toPersistentField(+"returnType", modifier = "private"), + lines( + +"final override var returnType: IrType", + lines( + +"get() = returnTypeField.let " + block( + +"if (it !== " + import( + "IrUninitializedType", + "org.jetbrains.kotlin.ir.types.impl" + ) + ") it else throw " + import( + "ReturnTypeIsNotInitializedException", + "org.jetbrains.kotlin.ir.types.impl" + ) + "(this)" + ), + +"set(c) " + block( + +"returnTypeField = c" + ) + ).indent() + ), + typeParametersField.toPersistentField(+"emptyList()"), + dispatchReceiverParameterField.toPersistentField(+"null"), + extensionReceiverParameterField.toPersistentField(+"null"), + valueParametersField.toPersistentField(+"emptyList()"), + bodyField.toBody(), + metadataField.toPersistentField(+"null"), + visibilityField.toPersistentField(+"visibility"), + overriddenSymbolsField.toPersistentField(+"emptyList()"), + lines( + +"@Suppress(\"LeakingThis\")", + attributeOwnerIdField.toPersistentField(+"this"), + ), + correspondingPropertySymbolField.toPersistentField(+"null"), + isExternalField.toPersistentField(+"isExternal") + ), + id, + )() + }) + + writeFile("carriers/FunctionCarrier.kt", renderFile("org.jetbrains.kotlin.ir.declarations.persistent.carriers") { + carriers( + "Function", + returnTypeFieldField, + dispatchReceiverParameterField, + extensionReceiverParameterField, + bodyField, + metadataField, + visibilityField, + typeParametersField, + valueParametersField, + correspondingPropertySymbolField, + overriddenSymbolsField, + attributeOwnerIdField, + isExternalField, + )() + }) +} \ No newline at end of file diff --git a/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/LocalDelegatedProperty.kt b/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/LocalDelegatedProperty.kt new file mode 100644 index 00000000000..468cfbaa17a --- /dev/null +++ b/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/LocalDelegatedProperty.kt @@ -0,0 +1,53 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.ir.persistentIrGenerator + +internal fun PersistentIrGenerator.generateLocalDelegatedProperty() { + val typeField = Field("type", IrType) + val delegateField = Field("delegate", irDeclaration("IrVariable"), lateinit = true) + val getterField = Field("getter", irDeclaration("IrSimpleFunction"), lateinit = true) + val setterField = Field("setter", irDeclaration("IrSimpleFunction") + "?") + val metadataField = Field("metadata", MetadataSource + "?") + + writeFile("PersistentIrLocalDelegatedProperty.kt", renderFile("org.jetbrains.kotlin.ir.declarations.persistent") { + lines( + id, + +"// TODO make not persistent", + +"internal class PersistentIrLocalDelegatedProperty(", + arrayOf( + startOffset, + endOffset, + origin, + +"override val symbol: " + irSymbol("IrLocalDelegatedPropertySymbol"), + name, + +"type: " + IrType, + +"override val isVar: Boolean", + ).join(separator = ",\n").indent(), + +") : " + baseClasses("LocalDelegatedProperty") + " " + blockSpaced( + initBlock, + commonFields, + descriptor(descriptorType("VariableDescriptorWithAccessors")), + typeField.toPersistentField(+"type"), + delegateField.toPersistentField(+"null"), + getterField.toPersistentField(+"null"), + setterField.toPersistentField(+"null"), + metadataField.toPersistentField(+"null"), + ), + id, + )() + }) + + writeFile("carriers/LocalDelegatedPropertyCarrier.kt", renderFile("org.jetbrains.kotlin.ir.declarations.persistent.carriers") { + carriers( + "LocalDelegatedProperty", + typeField, + delegateField, + getterField, + setterField, + metadataField, + )() + }) +} \ No newline at end of file diff --git a/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt b/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt new file mode 100644 index 00000000000..5932c5b8e82 --- /dev/null +++ b/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt @@ -0,0 +1,23 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.ir.persistentIrGenerator + +fun main() { + PersistentIrGenerator.run { + generateAnonymousInitializer() + generateClass() + generateConstructor() + generateEnumEntry() + generateErrorDeclaration() + generateField() + generateFunction() + generateLocalDelegatedProperty() + generateProperty() + generateTypeAlias() + generateTypeParameter() + generateValueParameter() + } +} \ No newline at end of file diff --git a/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/PersistentIrGenerator.kt b/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/PersistentIrGenerator.kt new file mode 100644 index 00000000000..7b2dad9d8d1 --- /dev/null +++ b/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/PersistentIrGenerator.kt @@ -0,0 +1,315 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.ir.persistentIrGenerator + +import java.io.File +import java.lang.StringBuilder +import java.time.Year + +internal interface R { + fun text(t: String): R + + fun indent(fn: R.() -> Unit): R + + fun import(fqn: String): R +} + +internal typealias E = R.() -> R + +internal class Field(val name: String, val type: E, val lateinit: Boolean = false, val notEq: String = "!==") + +internal object PersistentIrGenerator { + + // Imports + + val ClassDescriptor: E = descriptorType("ClassDescriptor") + val DeclarationDescriptor: E = descriptorType("DeclarationDescriptor") + val ClassConstructorDescriptor: E = descriptorType("ClassConstructorDescriptor") + val DescriptorVisibility = descriptorType("DescriptorVisibility") + + val IrDeclaration = irDeclaration("IrDeclaration") + val IrDeclarationOrigin = irDeclaration("IrDeclarationOrigin") + val IrDeclarationParent = irDeclaration("IrDeclarationParent") + val IrAnonymousInitializer = irDeclaration("IrAnonymousInitializer") + val IrClass = irDeclaration("IrClass") + val IrTypeParameter = irDeclaration("IrTypeParameter") + val IrValueParameter = irDeclaration("IrValueParameter") + val MetadataSource = irDeclaration("MetadataSource") + val IrAttributeContainer = irDeclaration("IrAttributeContainer") + + val IrConstructorCall = irExpression("IrConstructorCall") + val IrBody = irExpression("IrBody") + val IrBlockBody = irExpression("IrBlockBody") + val IrExpressionBody = irExpression("IrExpressionBody") + + val IrAnonymousInitializerSymbol = irSymbol("IrAnonymousInitializerSymbol") + val IrClassSymbol = irSymbol("IrClassSymbol") + + val AnonymousInitializerCarrier = irCarrier("AnonymousInitializerCarrier") + val Carrier = irCarrier("Carrier") + + val ObsoleteDescriptorBasedAPI = import("ObsoleteDescriptorBasedAPI", "org.jetbrains.kotlin.ir") + + val stageController = import("stageController", "org.jetbrains.kotlin.ir.declarations") + + val IrType = import("IrType", "org.jetbrains.kotlin.ir.types") + + val IrPropertySymbol = irSymbol("IrPropertySymbol") + + // Constructor parameters + + val startOffset = +"override val startOffset: Int" + val endOffset = +"override val endOffset: Int" + val origin = +"origin: " + IrDeclarationOrigin + val isStatic = +"override val isStatic: Boolean" + val name = +"override val name: " + import("Name", "org.jetbrains.kotlin.name") + val kind = +"override val kind: " + descriptorType("ClassKind") + val visibility = +"visibility: " + DescriptorVisibility + val modality = +"modality: " + descriptorType("Modality") + val isCompanion = +"override val isCompanion: Boolean = false" + val isInner = +"override val isInner: Boolean = false" + val isData = +"override val isData: Boolean = false" + val isExternal = +"isExternal: Boolean" + val isFinal = +"override val isFinal: Boolean" + val isInline = +"override val isInline: Boolean" + val isExpect = +"override val isExpect: Boolean" + val isFun = +"override val isFun: Boolean = false" + val source = +"override val source: " + descriptorType("SourceElement") + " = SourceElement.NO_SOURCE" + val returnType = +"returnType: " + IrType + val isPrimary = +"override val isPrimary: Boolean" + val containerSource = +"override val containerSource: " + import("DeserializedContainerSource", "org.jetbrains.kotlin.serialization.deserialization.descriptors") + "?" + + val initBlock = +"init " + block( + +"symbol.bind(this)" + ) + + // Fields + val lastModified = +"override var lastModified: Int = " + stageController + ".currentStage" + val loweredUpTo = +"override var loweredUpTo: Int = " + stageController + ".currentStage" + val values = +"override var values: Array<" + Carrier + ">? = null" + val createdOn = +"override val createdOn: Int = " + stageController + ".currentStage" + + val parentField = +"override var parentField: " + IrDeclarationParent + "? = null" + val originField = +"override var originField: " + IrDeclarationOrigin + " = origin" + val removedOn = +"override var removedOn: Int = Int.MAX_VALUE" + val annotationsField = +"override var annotationsField: List<" + IrConstructorCall + "> = emptyList()" + + val commonFields = lines( + lastModified, + loweredUpTo, + values, + createdOn, + id, + parentField, + originField, + removedOn, + annotationsField, + ) + + fun Field.toPersistentField(initializer: E, modifier: String = "override") = + persistentField(name, type, initializer, lateinit, modifier, notEq = notEq) + + fun Field.toBody() = body(type, lateinit, name) + + // Helpers + + fun baseClasses(name: String, baseClass: String = "Ir$name"): E = lines( + irDeclaration(baseClass) + "(),", + +" PersistentIrDeclarationBase<" + irCarrier("${name}Carrier") + ">,", + +" ${name}Carrier", + ) + + fun persistentField( + name: String, + type: E, + initializer: E, + lateinit: Boolean = false, + modifier: String = "override", + isBody: Boolean = false, + notEq: String = "!==", + ): E = lines( + +"override var ${name}Field: " + type + "${if (lateinit) "?" else ""} = " + initializer, + id, + +"$modifier var $name: " + type, + lines( + +"get() = getCarrier().${name}Field${if (lateinit) "!!" else ""}", + +"set(v) " + block( + +"if (${if (lateinit) "getCarrier().${name}Field" else name} $notEq v) " + block( + (if (isBody) lines( + +"if (v is PersistentIrBodyBase<*>) " + block( + +"v.container = this" + ), + id + ) else id) + "setCarrier().${name}Field = v" + ) + ) + ).indent() + ) + + fun body(bodyType: E, lateinit: Boolean = false, fieldName: String = "body"): E = + persistentField(fieldName, bodyType, initializer = +"null", lateinit, isBody = true) + + fun descriptor(type: E) = lines( + +"@" + ObsoleteDescriptorBasedAPI, + +"override val descriptor: " + type, + +" get() = symbol.descriptor" + ) + + fun carriers(name: String, vararg fields: Field): E = lines( + id, + +"internal interface ${name}Carrier : DeclarationCarrier" + block( + *(fields.map { +"var ${it.name}Field: " + it.type + if (it.lateinit) "?" else "" }.toTypedArray()), + id, + +"override fun clone(): ${name}Carrier " + block( + +"return ${name}CarrierImpl(", + arrayOf( + +"lastModified", + +"parentField", + +"originField", + +"annotationsField", + *(fields.map { +"${it.name}Field" }.toTypedArray()) + ).join(separator = ",\n").indent(), + +")", + ) + ), + id, + +"internal class ${name}CarrierImpl(", + arrayOf( + +"override val lastModified: Int", + +"override var parentField: " + IrDeclarationParent + "?", + +"override var originField: " + IrDeclarationOrigin, + +"override var annotationsField: List<" + IrConstructorCall + ">", + *(fields.map { +"override var ${it.name}Field: " + it.type + if (it.lateinit) "?" else "" }.toTypedArray()), + ).join(separator = ",\n").indent(), + +") : ${name}Carrier", + id, + ) + + fun lines(vararg fn: E): E = fn.join(separator = "\n") + + fun block(vararg fn: E): E = lines(+"{", { indent { lines(*fn)() } }, +"}") + + fun blockSpaced(vararg fn: E): E { + return block(*(fn.flatMap { listOf(id, it) }.toTypedArray())) + } + + fun import(name: String, pkg: String): E = { import("$pkg.$name").text(name) } + + fun descriptorType(name: String): E = import(name, "org.jetbrains.kotlin.descriptors") + + fun irDeclaration(name: String): E = import(name, "org.jetbrains.kotlin.ir.declarations") + + fun irExpression(name: String): E = import(name, "org.jetbrains.kotlin.ir.expressions") + + fun irCarrier(name: String): E = import(name, "org.jetbrains.kotlin.ir.declarations.persistent.carriers") + + fun irSymbol(name: String): E = import(name, "org.jetbrains.kotlin.ir.symbols") + + infix operator fun E.plus(e: E?): E = { this@plus(); e.safe()() } + + infix operator fun E.plus(e: String): E = this + (+e) + + operator fun String.unaryPlus(): E = { text(this@unaryPlus) } + + val id: E get() = { this } + + fun E?.safe(): E = this ?: id + + fun Array.join(prefix: String = "", separator: String = "", suffix: String = ""): E = + join(+prefix, +separator, +suffix) + + fun Array.join(prefix: E = id, separator: E = id, suffix: E = id): E { + if (this.isEmpty()) return id + return prefix + interleaveWith(separator) + suffix + } + + fun Array.interleaveWith(b: E): E { + return { + this@interleaveWith.forEachIndexed { i, e -> + if (i != 0) b() + e() + } + this + } + } + + fun Boolean.ifTrue(s: String): E = if (this) +s else id + + fun type(name: E, vararg parameters: E, isNullable: Boolean = false): E = + name + parameters.join("<", ", ", ">") + isNullable.ifTrue("?") + + fun E.indent(): E = { + val self = this@indent + indent { + self() + } + } + + fun renderFile(pkg: String, fn: R.() -> R): String { + val sb = StringBuilder() + val imports: MutableSet = mutableSetOf() + + val renderer = object : R { + var currentIndent = "" + + var atLineStart = true + + override fun text(t: String): R { + if (t.isEmpty()) return this + + if (atLineStart) { + sb.append(currentIndent) + atLineStart = false + } + + val cr = t.indexOf('\n') + if (cr >= 0) { + sb.append(t.substring(0, cr + 1)) + atLineStart = true + text(t.substring(cr + 1)) + } else { + sb.append(t) + } + + return this + } + + override fun indent(fn: R.() -> Unit): R { + val oldIndent = currentIndent + currentIndent = "$oldIndent " + fn() + currentIndent = oldIndent + + return this + } + + override fun import(fqn: String): R { + imports += fqn + + return this + } + } + + renderer.fn() + + var result = File("license/COPYRIGHT_HEADER.txt").readText() + "\n\n" + "package $pkg\n\n" + + result += imports.map { "import $it" }.sorted().joinToString(separator = "\n") + result += "\n\n" + result += "// Auto-generated by compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt. DO NOT EDIT!\n" + result += sb.toString() + + result = result.lines().map { if (it.isBlank()) "" else it }.joinToString(separator = "\n") + + return result + } + + private val prefix = "compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/" + + fun writeFile(path: String, content: String) { + File(prefix + path).writeText(content) + } +} \ No newline at end of file diff --git a/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Property.kt b/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Property.kt new file mode 100644 index 00000000000..462726a92ed --- /dev/null +++ b/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Property.kt @@ -0,0 +1,61 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.ir.persistentIrGenerator + +internal fun PersistentIrGenerator.generateProperty() { + val backingFieldField = Field("backingField", irDeclaration("IrField") + "?") + val getterField = Field("getter", irDeclaration("IrSimpleFunction") + "?") + val setterField = Field("setter", irDeclaration("IrSimpleFunction") + "?") + val metadataField = Field("metadata", MetadataSource + "?") + val attributeOwnerIdField = Field("attributeOwnerId", IrAttributeContainer) + val isExternalField = Field("isExternal", +"Boolean", notEq = "!=") + + writeFile("PersistentIrPropertyCommon.kt", renderFile("org.jetbrains.kotlin.ir.declarations.persistent") { + lines( + id, + +"internal abstract class PersistentIrPropertyCommon(", + arrayOf( + startOffset, + endOffset, + origin, + name, + +"override var " + visibility, // TODO non-persisted state + +"override val isVar: Boolean", + +"override val isConst: Boolean", + +"override val isLateinit: Boolean", + +"override val isDelegated: Boolean", + isExternal, + isExpect, + containerSource + ).join(separator = ",\n").indent(), + +") : " + baseClasses("Property") + " " + blockSpaced( + commonFields, + backingFieldField.toPersistentField(+"null"), + getterField.toPersistentField(+"null"), + setterField.toPersistentField(+"null"), + metadataField.toPersistentField(+"null"), + lines( + +"@Suppress(\"LeakingThis\")", + attributeOwnerIdField.toPersistentField(+"this"), + ), + isExternalField.toPersistentField(+"isExternal"), + ), + id, + )() + }) + + writeFile("carriers/PropertyCarrier.kt", renderFile("org.jetbrains.kotlin.ir.declarations.persistent.carriers") { + carriers( + "Property", + backingFieldField, + getterField, + setterField, + metadataField, + attributeOwnerIdField, + isExternalField, + )() + }) +} \ No newline at end of file diff --git a/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/TypeAlias.kt b/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/TypeAlias.kt new file mode 100644 index 00000000000..6bfa5dcabd9 --- /dev/null +++ b/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/TypeAlias.kt @@ -0,0 +1,45 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.ir.persistentIrGenerator + +internal fun PersistentIrGenerator.generateTypeAlias() { + val typeParametersField = Field("typeParameters", +"List<" + IrTypeParameter + ">") + val expandedTypeField = Field("expandedType", IrType) + + writeFile("PersistentIrTypeAlias.kt", renderFile("org.jetbrains.kotlin.ir.declarations.persistent") { + lines( + id, + +"internal class PersistentIrTypeAlias(", + arrayOf( + startOffset, + endOffset, + +"override val symbol: " + irSymbol("IrTypeAliasSymbol"), + name, + +"override var " + visibility, + +"expandedType: " + IrType, + +"override val isActual: Boolean", + origin, + ).join(separator = ",\n").indent(), + +") : " + baseClasses("TypeAlias") + " " + blockSpaced( + initBlock, + commonFields, + descriptor(descriptorType("TypeAliasDescriptor")), + + typeParametersField.toPersistentField(+"emptyList()"), + expandedTypeField.toPersistentField(+"expandedType"), + ), + id, + )() + }) + + writeFile("carriers/TypeAliasCarrier.kt", renderFile("org.jetbrains.kotlin.ir.declarations.persistent.carriers") { + carriers( + "TypeAlias", + typeParametersField, + expandedTypeField, + )() + }) +} \ No newline at end of file diff --git a/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/TypeParameter.kt b/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/TypeParameter.kt new file mode 100644 index 00000000000..dd03e385006 --- /dev/null +++ b/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/TypeParameter.kt @@ -0,0 +1,41 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.ir.persistentIrGenerator + +internal fun PersistentIrGenerator.generateTypeParameter() { + val superTypesField = Field("superTypes", +"List<" + IrType + ">") + + writeFile("PersistentIrTypeParameter.kt", renderFile("org.jetbrains.kotlin.ir.declarations.persistent") { + lines( + id, + +"internal class PersistentIrTypeParameter(", + arrayOf( + startOffset, + endOffset, + origin, + +"override val symbol: " + irSymbol("IrTypeParameterSymbol"), + name, + +"override val index: Int", + +"override val isReified: Boolean", + +"override val variance: " + import("Variance", "org.jetbrains.kotlin.types") + ).join(separator = ",\n").indent(), + +") : " + baseClasses("TypeParameter") + " " + blockSpaced( + initBlock, + commonFields, + descriptor(descriptorType("TypeParameterDescriptor")), + superTypesField.toPersistentField(+"emptyList()"), + ), + id, + )() + }) + + writeFile("carriers/TypeParameterCarrier.kt", renderFile("org.jetbrains.kotlin.ir.declarations.persistent.carriers") { + carriers( + "TypeParameter", + superTypesField, + )() + }) +} \ No newline at end of file diff --git a/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/ValueParameter.kt b/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/ValueParameter.kt new file mode 100644 index 00000000000..703a4c8b11d --- /dev/null +++ b/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/ValueParameter.kt @@ -0,0 +1,51 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.ir.persistentIrGenerator + +internal fun PersistentIrGenerator.generateValueParameter() { + + val defaultValueField = Field("defaultValue", IrExpressionBody + "?") + val typeField = Field("type", IrType) + val varargElementTypeField = Field("varargElementType", IrType + "?") + + writeFile("PersistentIrValueParameter.kt", renderFile("org.jetbrains.kotlin.ir.declarations.persistent") { + lines( + id, + +"internal class PersistentIrValueParameter(", + arrayOf( + startOffset, + endOffset, + origin, + +"override val symbol: " + irSymbol("IrValueParameterSymbol"), + name, + +"override val index: Int", + +"type: " + IrType, + +"varargElementType: " + IrType + "?", + +"override val isCrossinline: Boolean", + +"override val isNoinline: Boolean", + +"override val isHidden: Boolean", + +"override val isAssignable: Boolean" + ).join(separator = ",\n").indent(), + +") : " + baseClasses("ValueParameter") + " " + blockSpaced( + descriptor(descriptorType("ParameterDescriptor")), + initBlock, + commonFields, + defaultValueField.toBody(), + typeField.toPersistentField(+"type"), + varargElementTypeField.toPersistentField(+"varargElementType"), + ), + id, + )() + }) + writeFile("carriers/ValueParameterCarrier.kt", renderFile("org.jetbrains.kotlin.ir.declarations.persistent.carriers") { + carriers( + "ValueParameter", + defaultValueField, + typeField, + varargElementTypeField, + )() + }) +} \ No newline at end of file diff --git a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/carriers/FunctionBaseCarrier.kt b/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/carriers/FunctionBaseCarrier.kt deleted file mode 100644 index b2f27879fa2..00000000000 --- a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/carriers/FunctionBaseCarrier.kt +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license - * that can be found in the license/LICENSE.txt file. - */ - -package org.jetbrains.kotlin.ir.declarations.persistent.carriers - -import org.jetbrains.kotlin.descriptors.DescriptorVisibility -import org.jetbrains.kotlin.ir.declarations.IrTypeParameter -import org.jetbrains.kotlin.ir.declarations.IrValueParameter -import org.jetbrains.kotlin.ir.declarations.MetadataSource -import org.jetbrains.kotlin.ir.expressions.IrBody -import org.jetbrains.kotlin.ir.types.IrType - -internal interface FunctionBaseCarrier : DeclarationCarrier { - var returnTypeFieldField: IrType - var dispatchReceiverParameterField: IrValueParameter? - var extensionReceiverParameterField: IrValueParameter? - var bodyField: IrBody? - var metadataField: MetadataSource? - var visibilityField: DescriptorVisibility - var typeParametersField: List - var valueParametersField: List - var isExternalField: Boolean -} diff --git a/settings.gradle b/settings.gradle index 9ae697f5a7e..0d56a3fe779 100644 --- a/settings.gradle +++ b/settings.gradle @@ -95,6 +95,7 @@ include ":benchmarks", ":compiler:ir.tree", ":compiler:ir.tree.impl", ":compiler:ir.tree.persistent", + ":compiler:ir.tree.persistent:generator", ":compiler:ir.psi2ir", ":compiler:ir.ir2cfg", ":compiler:ir.backend.common", @@ -474,6 +475,7 @@ project(':kotlin-ant').projectDir = "$rootDir/ant" as File project(':compiler:ir.tree').projectDir = "$rootDir/compiler/ir/ir.tree" as File project(':compiler:ir.tree.impl').projectDir = "$rootDir/compiler/ir/ir.tree.impl" as File project(':compiler:ir.tree.persistent').projectDir = "$rootDir/compiler/ir/ir.tree.persistent" as File +project(':compiler:ir.tree.persistent:generator').projectDir = "$rootDir/compiler/ir/ir.tree.persistent/generator" as File project(':compiler:ir.psi2ir').projectDir = "$rootDir/compiler/ir/ir.psi2ir" as File project(':compiler:ir.ir2cfg').projectDir = "$rootDir/compiler/ir/ir.ir2cfg" as File project(':compiler:ir.backend.common').projectDir = "$rootDir/compiler/ir/backend.common" as File