~~~ wip: fixes after rebase
diff --git a/compiler/fir/fir2ir/build.gradle.kts b/compiler/fir/fir2ir/build.gradle.kts
index 8d1f47a..ccaa17c 100644
--- a/compiler/fir/fir2ir/build.gradle.kts
+++ b/compiler/fir/fir2ir/build.gradle.kts
@@ -1,3 +1,5 @@
+import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
+
/*
* Copyright 2000-2018 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.
@@ -43,4 +45,12 @@
workingDir = rootDir
}
-testsJar()
\ No newline at end of file
+testsJar()
+
+val compileKotlin: KotlinCompile by tasks
+
+compileKotlin.kotlinOptions {
+ freeCompilerArgs = freeCompilerArgs + listOf(
+ "-Xuse-experimental=kotlin.Experimental",
+ "-Xuse-experimental=org.jetbrains.kotlin.ir.DescriptorInIrDeclaration")
+}
diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt
index 759c3ee..01c9639 100644
--- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt
+++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt
@@ -448,7 +448,7 @@
fun getIrPropertySymbol(firPropertySymbol: FirPropertySymbol): IrPropertySymbol {
val irProperty = getIrProperty(firPropertySymbol.fir as FirProperty)
- return irSymbolTable.referenceProperty(irProperty.descriptor)
+ return irSymbolTable.referenceProperty(irProperty.symbol.descriptor)
}
private fun getIrVariableSymbol(firVariable: FirVariable): IrVariableSymbol {
diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt
index b306a3c..b2f784c 100644
--- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt
+++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt
@@ -6,11 +6,13 @@
package org.jetbrains.kotlin.fir.backend
import com.intellij.psi.PsiFile
-import org.jetbrains.kotlin.backend.common.descriptors.*
+import org.jetbrains.kotlin.backend.common.descriptors.WrappedSimpleFunctionDescriptor
+import org.jetbrains.kotlin.backend.common.descriptors.WrappedValueParameterDescriptor
import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.fir.*
import org.jetbrains.kotlin.fir.declarations.*
-import org.jetbrains.kotlin.fir.declarations.impl.*
+import org.jetbrains.kotlin.fir.declarations.impl.FirDefaultPropertyGetter
+import org.jetbrains.kotlin.fir.declarations.impl.FirDefaultPropertySetter
import org.jetbrains.kotlin.fir.descriptors.FirModuleDescriptor
import org.jetbrains.kotlin.fir.expressions.*
import org.jetbrains.kotlin.fir.expressions.impl.FirElseIfTrueCondition
@@ -30,13 +32,18 @@
import org.jetbrains.kotlin.fir.types.ConeClassLikeType
import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
import org.jetbrains.kotlin.fir.types.FirTypeRef
-import org.jetbrains.kotlin.fir.types.impl.*
+import org.jetbrains.kotlin.fir.types.impl.FirImplicitBooleanTypeRef
+import org.jetbrains.kotlin.fir.types.impl.FirImplicitNothingTypeRef
+import org.jetbrains.kotlin.fir.types.impl.FirImplicitUnitTypeRef
import org.jetbrains.kotlin.fir.visitors.FirVisitor
import org.jetbrains.kotlin.ir.IrElement
import org.jetbrains.kotlin.ir.IrStatement
import org.jetbrains.kotlin.ir.builders.primitiveOp1
import org.jetbrains.kotlin.ir.declarations.*
-import org.jetbrains.kotlin.ir.declarations.impl.*
+import org.jetbrains.kotlin.ir.declarations.impl.IrFieldImpl
+import org.jetbrains.kotlin.ir.declarations.impl.IrFileImpl
+import org.jetbrains.kotlin.ir.declarations.impl.IrFunctionImpl
+import org.jetbrains.kotlin.ir.declarations.impl.IrValueParameterImpl
import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns
import org.jetbrains.kotlin.ir.expressions.*
import org.jetbrains.kotlin.ir.expressions.impl.*
@@ -494,7 +501,7 @@
override fun visitProperty(property: FirProperty, data: Any?): IrProperty {
val irProperty = declarationStorage.getIrProperty(property, setParent = false)
- return irProperty.setParentByParentStack().withProperty { setPropertyContent(irProperty.descriptor, property) }
+ return irProperty.setParentByParentStack().withProperty { setPropertyContent(irProperty.symbol.descriptor, property) }
}
private fun IrFieldAccessExpression.setReceiver(declaration: IrDeclaration): IrFieldAccessExpression {
@@ -541,7 +548,8 @@
declareParameters(propertyAccessor)
}
setFunctionContent(descriptor, propertyAccessor).apply {
- correspondingPropertySymbol = symbolTable.referenceProperty(correspondingProperty.descriptor)
+ val propertyDescriptor = correspondingProperty.symbol.descriptor
+ correspondingPropertySymbol = symbolTable.referenceProperty(propertyDescriptor)
if (isDefault) {
withParent {
declarationStorage.enterScope(descriptor)
@@ -558,7 +566,7 @@
).setParentByParentStack()
}
}
- val fieldSymbol = symbolTable.referenceField(correspondingProperty.descriptor)
+ val fieldSymbol = symbolTable.referenceField(propertyDescriptor)
val declaration = this
if (backingField != null) {
body = IrBlockBodyImpl(
diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/ExpectDeclarationsRemoving.kt b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/ExpectDeclarationsRemoving.kt
index 0b5a1ab..b6ba6f6 100644
--- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/ExpectDeclarationsRemoving.kt
+++ b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/ExpectDeclarationsRemoving.kt
@@ -9,7 +9,6 @@
import org.jetbrains.kotlin.backend.common.FileLoweringPass
import org.jetbrains.kotlin.backend.common.ir.getAnnotationClass
import org.jetbrains.kotlin.backend.common.ir.isExpect
-import org.jetbrains.kotlin.backend.common.serialization.constructedClass
import org.jetbrains.kotlin.descriptors.MemberDescriptor
import org.jetbrains.kotlin.ir.IrElement
import org.jetbrains.kotlin.ir.declarations.*
@@ -18,6 +17,7 @@
import org.jetbrains.kotlin.ir.expressions.impl.IrGetValueImpl
import org.jetbrains.kotlin.ir.symbols.IrValueParameterSymbol
import org.jetbrains.kotlin.ir.symbols.IrValueSymbol
+import org.jetbrains.kotlin.ir.util.constructedClass
import org.jetbrains.kotlin.ir.util.fqNameWhenAvailable
import org.jetbrains.kotlin.ir.util.isAnnotationClass
import org.jetbrains.kotlin.ir.util.referenceFunction
diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/AdditionalIrUtils.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/AdditionalIrUtils.kt
index 22ba274..58ac4f4 100644
--- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/AdditionalIrUtils.kt
+++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/AdditionalIrUtils.kt
@@ -6,7 +6,6 @@
package org.jetbrains.kotlin.ir.util
import org.jetbrains.kotlin.descriptors.ClassDescriptor
-import org.jetbrains.kotlin.descriptors.ClassKind
import org.jetbrains.kotlin.ir.DescriptorInIrDeclaration
import org.jetbrains.kotlin.ir.SourceManager
import org.jetbrains.kotlin.ir.SourceRangeInfo
@@ -124,12 +123,12 @@
}
@UseExperimental(DescriptorInIrDeclaration::class)
-internal val IrDeclaration.isAnonymousObject get() = DescriptorUtils.isAnonymousObject(this.descriptor)
+val IrDeclaration.isAnonymousObject get() = DescriptorUtils.isAnonymousObject(this.descriptor)
@UseExperimental(DescriptorInIrDeclaration::class)
-internal val IrDeclaration.module get() = this.descriptor.module
+val IrDeclaration.module get() = this.descriptor.module
-internal val IrDeclaration.isSerializableExpectClass: Boolean
+val IrDeclaration.isSerializableExpectClass: Boolean
get() {
@UseExperimental(DescriptorInIrDeclaration::class)
val d = descriptor
diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrModuleSerializer.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrModuleSerializer.kt
index b33ee13..fbd2844 100644
--- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrModuleSerializer.kt
+++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrModuleSerializer.kt
@@ -24,6 +24,7 @@
import org.jetbrains.kotlin.ir.symbols.*
import org.jetbrains.kotlin.ir.types.*
import org.jetbrains.kotlin.ir.util.findTopLevelDeclaration
+import org.jetbrains.kotlin.ir.util.isSerializableExpectClass
import org.jetbrains.kotlin.ir.util.lineStartOffsets
import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid
import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid