[IR] Introduce & use DescriptorBasedIr OptIn

This commit is contained in:
Mikhail Glukhikh
2020-06-04 18:42:52 +03:00
parent 67158caf73
commit 7a0f986823
10 changed files with 62 additions and 2 deletions
@@ -16,3 +16,11 @@ sourceSets {
"test" {} "test" {}
} }
tasks {
val compileKotlin by existing(org.jetbrains.kotlin.gradle.tasks.KotlinCompile::class) {
kotlinOptions {
freeCompilerArgs += "-Xopt-in=org.jetbrains.kotlin.ir.DescriptorBasedIr"
}
}
}
+8
View File
@@ -20,3 +20,11 @@ sourceSets {
} }
"test" {} "test" {}
} }
tasks {
val compileKotlin by existing(org.jetbrains.kotlin.gradle.tasks.KotlinCompile::class) {
kotlinOptions {
freeCompilerArgs += "-Xopt-in=org.jetbrains.kotlin.ir.DescriptorBasedIr"
}
}
}
+8
View File
@@ -16,3 +16,11 @@ sourceSets {
"test" {} "test" {}
} }
tasks {
val compileKotlin by existing(org.jetbrains.kotlin.gradle.tasks.KotlinCompile::class) {
kotlinOptions {
freeCompilerArgs += "-Xopt-in=org.jetbrains.kotlin.ir.DescriptorBasedIr"
}
}
}
+8
View File
@@ -14,3 +14,11 @@ sourceSets {
"main" { projectDefault() } "main" { projectDefault() }
"test" {} "test" {}
} }
tasks {
val compileKotlin by existing(org.jetbrains.kotlin.gradle.tasks.KotlinCompile::class) {
kotlinOptions {
freeCompilerArgs += "-Xopt-in=org.jetbrains.kotlin.ir.DescriptorBasedIr"
}
}
}
@@ -0,0 +1,9 @@
/*
* 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
@RequiresOptIn(message = "Please use IR declaration properties and not its descriptor properties", level = RequiresOptIn.Level.ERROR)
annotation class DescriptorBasedIr
@@ -18,6 +18,7 @@ package org.jetbrains.kotlin.ir.declarations
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.descriptors.Visibility
import org.jetbrains.kotlin.ir.DescriptorBasedIr
import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.IrElement
import org.jetbrains.kotlin.ir.IrStatement import org.jetbrains.kotlin.ir.IrStatement
import org.jetbrains.kotlin.ir.symbols.IrSymbol import org.jetbrains.kotlin.ir.symbols.IrSymbol
@@ -34,7 +35,7 @@ interface IrMetadataSourceOwner : IrElement {
} }
interface IrDeclaration : IrStatement, IrMutableAnnotationContainer, IrMetadataSourceOwner { interface IrDeclaration : IrStatement, IrMutableAnnotationContainer, IrMetadataSourceOwner {
@Deprecated("Please use IR declaration properties and not its descriptor properties") @DescriptorBasedIr
val descriptor: DeclarationDescriptor val descriptor: DeclarationDescriptor
var origin: IrDeclarationOrigin var origin: IrDeclarationOrigin
@@ -17,6 +17,7 @@
package org.jetbrains.kotlin.ir.symbols package org.jetbrains.kotlin.ir.symbols
import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.ir.DescriptorBasedIr
import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.declarations.*
import org.jetbrains.kotlin.ir.declarations.IrScript import org.jetbrains.kotlin.ir.declarations.IrScript
import org.jetbrains.kotlin.ir.expressions.IrReturnableBlock import org.jetbrains.kotlin.ir.expressions.IrReturnableBlock
@@ -28,7 +29,7 @@ import org.jetbrains.kotlin.types.model.TypeParameterMarker
interface IrSymbol { interface IrSymbol {
val owner: IrSymbolOwner val owner: IrSymbolOwner
@Deprecated("Please use IR declaration properties and not its descriptor properties") @DescriptorBasedIr
val descriptor: DeclarationDescriptor val descriptor: DeclarationDescriptor
val isBound: Boolean val isBound: Boolean
@@ -25,3 +25,11 @@ sourceSets {
"test" {} "test" {}
} }
tasks {
val compileKotlin by existing(org.jetbrains.kotlin.gradle.tasks.KotlinCompile::class) {
kotlinOptions {
freeCompilerArgs += "-Xopt-in=org.jetbrains.kotlin.ir.DescriptorBasedIr"
}
}
}
@@ -18,3 +18,11 @@ sourceSets {
} }
"test" {} "test" {}
} }
tasks {
val compileKotlin by existing(org.jetbrains.kotlin.gradle.tasks.KotlinCompile::class) {
kotlinOptions {
freeCompilerArgs += "-Xopt-in=org.jetbrains.kotlin.ir.DescriptorBasedIr"
}
}
}
@@ -179,6 +179,7 @@ abstract class AbstractIrTextTestCase : AbstractIrGeneratorTestCase() {
element.acceptChildrenVoid(this) element.acceptChildrenVoid(this)
} }
@OptIn(DescriptorBasedIr::class)
override fun visitDeclaration(declaration: IrDeclaration) { override fun visitDeclaration(declaration: IrDeclaration) {
if (declaration is IrSymbolOwner) { if (declaration is IrSymbolOwner) {
declaration.symbol.checkBinding("decl", declaration) declaration.symbol.checkBinding("decl", declaration)