|
5 | 5 |
|
6 | 6 | package org.jetbrains.kotlin.backend.common
|
7 | 7 |
|
8 |
| -import org.jetbrains.kotlin.backend.common.checkers.IrValidationError |
9 |
| -import org.jetbrains.kotlin.backend.common.checkers.TreeConsistencyError |
10 |
| -import org.jetbrains.kotlin.backend.common.checkers.checkTreeConsistency |
| 8 | +import org.jetbrains.kotlin.backend.common.checkers.* |
11 | 9 | import org.jetbrains.kotlin.backend.common.checkers.context.*
|
12 | 10 | import org.jetbrains.kotlin.backend.common.checkers.declaration.*
|
13 | 11 | import org.jetbrains.kotlin.backend.common.checkers.expression.*
|
14 | 12 | import org.jetbrains.kotlin.backend.common.checkers.symbol.IrSymbolChecker
|
15 | 13 | import org.jetbrains.kotlin.backend.common.checkers.symbol.IrVisibilityChecker
|
| 14 | +import org.jetbrains.kotlin.backend.common.checkers.symbol.check |
16 | 15 | import org.jetbrains.kotlin.backend.common.checkers.type.IrTypeChecker
|
17 | 16 | import org.jetbrains.kotlin.backend.common.checkers.type.IrTypeParameterScopeChecker
|
| 17 | +import org.jetbrains.kotlin.backend.common.checkers.type.check |
18 | 18 | import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity
|
19 | 19 | import org.jetbrains.kotlin.cli.common.messages.MessageCollector
|
20 | 20 | import org.jetbrains.kotlin.config.IrVerificationMode
|
@@ -94,40 +94,40 @@ private class IrFileValidator(
|
94 | 94 | ) : IrTreeSymbolsVisitor() {
|
95 | 95 | private val contextUpdaters: MutableList<ContextUpdater> = mutableListOf(ParentChainUpdater)
|
96 | 96 |
|
97 |
| - private val fieldCheckers: MutableList<IrFieldChecker> = mutableListOf() |
98 |
| - private val fieldAccessExpressionCheckers: MutableList<IrFieldAccessChecker> = mutableListOf() |
| 97 | + private val fieldCheckers: MutableList<IrElementChecker<IrField>> = mutableListOf() |
| 98 | + private val fieldAccessExpressionCheckers: MutableList<IrElementChecker<IrFieldAccessExpression>> = mutableListOf() |
99 | 99 | private val typeCheckers: MutableList<IrTypeChecker> = mutableListOf()
|
100 | 100 | private val symbolCheckers: MutableList<IrSymbolChecker> = mutableListOf()
|
101 |
| - private val declarationReferenceCheckers: MutableList<IrDeclarationReferenceChecker> = mutableListOf() |
102 |
| - private val varargCheckers: MutableList<IrVarargChecker> = mutableListOf() |
103 |
| - private val valueParameterCheckers: MutableList<IrValueParameterChecker> = mutableListOf() |
104 |
| - private val valueAccessCheckers: MutableList<IrValueAccessChecker> = mutableListOf() |
105 |
| - private val functionAccessCheckers: MutableList<IrFunctionAccessChecker> = mutableListOf(IrNoInlineUseSitesChecker) |
106 |
| - private val functionReferenceCheckers: MutableList<IrFunctionReferenceChecker> = mutableListOf() |
107 |
| - private val constCheckers: MutableList<IrConstChecker> = mutableListOf() |
108 |
| - private val stringConcatenationCheckers: MutableList<IrStringConcatenationChecker> = mutableListOf() |
109 |
| - private val getObjectValueCheckers: MutableList<IrGetObjectValueChecker> = mutableListOf() |
110 |
| - private val getValueCheckers: MutableList<IrGetValueChecker> = mutableListOf() |
111 |
| - private val setValueCheckers: MutableList<IrSetValueChecker> = mutableListOf(IrSetValueAssignabilityChecker) |
112 |
| - private val getFieldCheckers: MutableList<IrGetFieldChecker> = mutableListOf() |
113 |
| - private val setFieldCheckers: MutableList<IrSetFieldChecker> = mutableListOf() |
114 |
| - private val delegatingConstructorCallCheckers: MutableList<IrDelegatingConstructorCallChecker> = mutableListOf() |
115 |
| - private val instanceInitializerCallCheckers: MutableList<IrInstanceInitializerCallChecker> = mutableListOf() |
116 |
| - private val loopCheckers: MutableList<IrLoopChecker> = mutableListOf() |
117 |
| - private val breakContinueCheckers: MutableList<IrBreakContinueChecker> = mutableListOf() |
118 |
| - private val returnCheckers: MutableList<IrReturnChecker> = mutableListOf() |
119 |
| - private val throwCheckers: MutableList<IrThrowChecker> = mutableListOf() |
120 |
| - private val functionCheckers: MutableList<IrFunctionChecker> = mutableListOf( |
| 101 | + private val declarationReferenceCheckers: MutableList<IrElementChecker<IrDeclarationReference>> = mutableListOf() |
| 102 | + private val varargCheckers: MutableList<IrElementChecker<IrVararg>> = mutableListOf() |
| 103 | + private val valueParameterCheckers: MutableList<IrElementChecker<IrValueParameter>> = mutableListOf() |
| 104 | + private val valueAccessCheckers: MutableList<IrElementChecker<IrValueAccessExpression>> = mutableListOf() |
| 105 | + private val functionAccessCheckers: MutableList<IrElementChecker<IrFunctionAccessExpression>> = mutableListOf(IrNoInlineUseSitesChecker) |
| 106 | + private val functionReferenceCheckers: MutableList<IrElementChecker<IrFunctionReference>> = mutableListOf() |
| 107 | + private val constCheckers: MutableList<IrElementChecker<IrConst>> = mutableListOf() |
| 108 | + private val stringConcatenationCheckers: MutableList<IrElementChecker<IrStringConcatenation>> = mutableListOf() |
| 109 | + private val getObjectValueCheckers: MutableList<IrElementChecker<IrGetObjectValue>> = mutableListOf() |
| 110 | + private val getValueCheckers: MutableList<IrElementChecker<IrGetValue>> = mutableListOf() |
| 111 | + private val setValueCheckers: MutableList<IrElementChecker<IrSetValue>> = mutableListOf(IrSetValueAssignabilityChecker) |
| 112 | + private val getFieldCheckers: MutableList<IrElementChecker<IrGetField>> = mutableListOf() |
| 113 | + private val setFieldCheckers: MutableList<IrElementChecker<IrSetField>> = mutableListOf() |
| 114 | + private val delegatingConstructorCallCheckers: MutableList<IrElementChecker<IrDelegatingConstructorCall>> = mutableListOf() |
| 115 | + private val instanceInitializerCallCheckers: MutableList<IrElementChecker<IrInstanceInitializerCall>> = mutableListOf() |
| 116 | + private val loopCheckers: MutableList<IrElementChecker<IrLoop>> = mutableListOf() |
| 117 | + private val breakContinueCheckers: MutableList<IrElementChecker<IrBreakContinue>> = mutableListOf() |
| 118 | + private val returnCheckers: MutableList<IrElementChecker<IrReturn>> = mutableListOf() |
| 119 | + private val throwCheckers: MutableList<IrElementChecker<IrThrow>> = mutableListOf() |
| 120 | + private val functionCheckers: MutableList<IrElementChecker<IrFunction>> = mutableListOf( |
121 | 121 | IrFunctionDispatchReceiverChecker, IrFunctionParametersChecker, IrConstructorReceiverChecker, IrFunctionPropertiesChecker
|
122 | 122 | )
|
123 |
| - private val declarationBaseCheckers: MutableList<IrDeclarationChecker<IrDeclaration>> = mutableListOf() |
124 |
| - private val propertyReferenceCheckers: MutableList<IrPropertyReferenceChecker> = mutableListOf() |
125 |
| - private val localDelegatedPropertyReferenceCheckers: MutableList<IrLocalDelegatedPropertyReferenceChecker> = mutableListOf() |
126 |
| - private val expressionCheckers: MutableList<IrExpressionChecker<IrExpression>> = mutableListOf() |
127 |
| - private val typeOperatorCheckers: MutableList<IrTypeOperatorChecker> = mutableListOf(IrTypeOperatorTypeOperandChecker) |
128 |
| - private val propertyCheckers: MutableList<IrPropertyChecker> = mutableListOf(IrPropertyAccessorsChecker) |
129 |
| - |
130 |
| - private val callCheckers: MutableList<IrCallChecker> = mutableListOf() |
| 123 | + private val declarationBaseCheckers: MutableList<IrElementChecker<IrDeclaration>> = mutableListOf() |
| 124 | + private val propertyReferenceCheckers: MutableList<IrElementChecker<IrPropertyReference>> = mutableListOf() |
| 125 | + private val localDelegatedPropertyReferenceCheckers: MutableList<IrElementChecker<IrLocalDelegatedPropertyReference>> = mutableListOf() |
| 126 | + private val expressionCheckers: MutableList<IrElementChecker<IrExpression>> = mutableListOf() |
| 127 | + private val typeOperatorCheckers: MutableList<IrElementChecker<IrTypeOperatorCall>> = mutableListOf(IrTypeOperatorTypeOperandChecker) |
| 128 | + private val propertyCheckers: MutableList<IrElementChecker<IrProperty>> = mutableListOf(IrPropertyAccessorsChecker) |
| 129 | + |
| 130 | + private val callCheckers: MutableList<IrElementChecker<IrCall>> = mutableListOf() |
131 | 131 |
|
132 | 132 | init {
|
133 | 133 | if (config.checkValueScopes) {
|
|
0 commit comments