Skip to content

Commit 125e169

Browse files
mcpiromanSpace Team
authored andcommitted
[IR] Specify more concrete types of validated elements in some checkers
Some optimization
1 parent 5367f6d commit 125e169

File tree

3 files changed

+13
-18
lines changed

3 files changed

+13
-18
lines changed

compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/checkers/declaration/IrConstructorReceiverChecker.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,8 @@ import org.jetbrains.kotlin.ir.declarations.IrFunction
1212
import org.jetbrains.kotlin.ir.declarations.IrParameterKind
1313
import org.jetbrains.kotlin.ir.util.constructedClass
1414

15-
object IrConstructorReceiverChecker : IrElementChecker<IrFunction>(IrFunction::class) {
16-
override fun check(element: IrFunction, context: CheckerContext) {
17-
if (element !is IrConstructor) return
15+
object IrConstructorReceiverChecker : IrElementChecker<IrConstructor>(IrConstructor::class) {
16+
override fun check(element: IrConstructor, context: CheckerContext) {
1817
if (!element.constructedClass.isInner && element.dispatchReceiverParameter != null) {
1918
context.error(element, "Constructors of non-inner classes can't have dispatch receiver parameters")
2019
}

compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/checkers/declaration/IrFunctionPropertiesChecker.kt

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,11 @@ import org.jetbrains.kotlin.ir.declarations.IrFunction
1111
import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction
1212
import org.jetbrains.kotlin.ir.util.render
1313

14-
object IrFunctionPropertiesChecker : IrElementChecker<IrFunction>(IrFunction::class) {
15-
override fun check(element: IrFunction, context: CheckerContext) {
16-
if (element is IrSimpleFunction) {
17-
val property = element.correspondingPropertySymbol?.owner
18-
if (property != null && property.getter != element && property.setter != element) {
19-
context.error(element, "Orphaned property getter/setter ${element.render()}")
20-
}
14+
object IrFunctionPropertiesChecker : IrElementChecker<IrSimpleFunction>(IrSimpleFunction::class) {
15+
override fun check(element: IrSimpleFunction, context: CheckerContext) {
16+
val property = element.correspondingPropertySymbol?.owner
17+
if (property != null && property.getter != element && property.setter != element) {
18+
context.error(element, "Orphaned property getter/setter ${element.render()}")
2119
}
2220
}
2321
}

compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/checkers/declaration/IrPrivateDeclarationOverrideChecker.kt

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,12 @@ import org.jetbrains.kotlin.ir.declarations.IrDeclarationWithVisibility
1313
import org.jetbrains.kotlin.ir.declarations.IrOverridableDeclaration
1414
import org.jetbrains.kotlin.ir.util.render
1515

16-
object IrPrivateDeclarationOverrideChecker : IrElementChecker<IrDeclaration>(IrDeclaration::class) {
17-
override fun check(element: IrDeclaration, context: CheckerContext) {
18-
if (element is IrOverridableDeclaration<*>) {
19-
for (overriddenSymbol in element.overriddenSymbols) {
20-
val overriddenDeclaration = overriddenSymbol.owner as? IrDeclarationWithVisibility ?: continue
21-
if (overriddenDeclaration.visibility == DescriptorVisibilities.PRIVATE) {
22-
context.error(element, "Overrides private declaration ${overriddenDeclaration.render()}")
23-
}
16+
object IrPrivateDeclarationOverrideChecker : IrElementChecker<IrOverridableDeclaration<*>>(IrOverridableDeclaration::class) {
17+
override fun check(element: IrOverridableDeclaration<*>, context: CheckerContext) {
18+
for (overriddenSymbol in element.overriddenSymbols) {
19+
val overriddenDeclaration = overriddenSymbol.owner as? IrDeclarationWithVisibility ?: continue
20+
if (overriddenDeclaration.visibility == DescriptorVisibilities.PRIVATE) {
21+
context.error(element, "Overrides private declaration ${overriddenDeclaration.render()}")
2422
}
2523
}
2624
}

0 commit comments

Comments
 (0)