Skip to content

Commit 19e2097

Browse files
francescoo22Space Team
authored andcommitted
[FIR] Remove org.jetbrains.kotlin.contracts.parsing.ContractsDslNames
^KT-74763
1 parent 3261c4b commit 19e2097

File tree

6 files changed

+39
-60
lines changed

6 files changed

+39
-60
lines changed

compiler/frontend.common/src/org/jetbrains/kotlin/resolve/ContractsDslNames.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,16 @@ import org.jetbrains.kotlin.name.FqName
1010
import org.jetbrains.kotlin.name.Name
1111

1212
object ContractsDslNames {
13+
// Internal marker-annotation for distinguishing our API
14+
val CONTRACTS_DSL_ANNOTATION_FQN = FqName("kotlin.internal.ContractsDsl")
15+
1316
// Types
1417
val SIMPLE_EFFECT: CallableId = id("SimpleEffect")
18+
val EFFECT = id("Effect")
19+
val CONDITIONAL_EFFECT = id("ConditionalEffect")
20+
val RETURNS_EFFECT = id("Returns")
21+
val RETURNS_NOT_NULL_EFFECT = id("ReturnsNotNull")
22+
val CALLS_IN_PLACE_EFFECT = id("CallsInPlace")
1523

1624
// Structure-defining calls
1725
val CONTRACT: CallableId = id("contract")

compiler/frontend/src/org/jetbrains/kotlin/contracts/parsing/PsiContractParserDispatcher.kt

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,10 @@ import org.jetbrains.kotlin.contracts.description.expressions.BooleanVariableRef
2525
import org.jetbrains.kotlin.contracts.description.expressions.ConstantReference
2626
import org.jetbrains.kotlin.contracts.description.expressions.ContractDescriptionValue
2727
import org.jetbrains.kotlin.contracts.description.expressions.VariableReference
28-
import org.jetbrains.kotlin.contracts.parsing.ContractsDslNames.CALLS_IN_PLACE_EFFECT
29-
import org.jetbrains.kotlin.contracts.parsing.ContractsDslNames.CONDITIONAL_EFFECT
30-
import org.jetbrains.kotlin.contracts.parsing.ContractsDslNames.RETURNS_EFFECT
31-
import org.jetbrains.kotlin.contracts.parsing.ContractsDslNames.RETURNS_NOT_NULL_EFFECT
28+
import org.jetbrains.kotlin.resolve.ContractsDslNames.CALLS_IN_PLACE_EFFECT
29+
import org.jetbrains.kotlin.resolve.ContractsDslNames.CONDITIONAL_EFFECT
30+
import org.jetbrains.kotlin.resolve.ContractsDslNames.RETURNS_EFFECT
31+
import org.jetbrains.kotlin.resolve.ContractsDslNames.RETURNS_NOT_NULL_EFFECT
3232
import org.jetbrains.kotlin.contracts.parsing.effects.PsiCallsEffectParser
3333
import org.jetbrains.kotlin.contracts.parsing.effects.PsiConditionalEffectParser
3434
import org.jetbrains.kotlin.contracts.parsing.effects.PsiReturnsEffectParser
@@ -48,10 +48,10 @@ internal class PsiContractParserDispatcher(
4848
private val conditionParser = PsiConditionParser(collector, callContext, this)
4949
private val constantParser = PsiConstantParser(callContext)
5050
private val effectsParsers: Map<Name, PsiEffectParser> = mapOf(
51-
RETURNS_EFFECT to PsiReturnsEffectParser(collector, callContext, this),
52-
RETURNS_NOT_NULL_EFFECT to PsiReturnsEffectParser(collector, callContext, this),
53-
CALLS_IN_PLACE_EFFECT to PsiCallsEffectParser(collector, callContext, this),
54-
CONDITIONAL_EFFECT to PsiConditionalEffectParser(collector, callContext, this)
51+
RETURNS_EFFECT.callableName to PsiReturnsEffectParser(collector, callContext, this),
52+
RETURNS_NOT_NULL_EFFECT.callableName to PsiReturnsEffectParser(collector, callContext, this),
53+
CALLS_IN_PLACE_EFFECT.callableName to PsiCallsEffectParser(collector, callContext, this),
54+
CONDITIONAL_EFFECT.callableName to PsiConditionalEffectParser(collector, callContext, this)
5555
)
5656

5757
fun parseContract(): ContractDescription? {

compiler/frontend/src/org/jetbrains/kotlin/contracts/parsing/PsiContractsUtils.kt

Lines changed: 16 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,14 @@ package org.jetbrains.kotlin.contracts.parsing
1818

1919
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
2020
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
21-
import org.jetbrains.kotlin.contracts.parsing.ContractsDslNames.CALLS_IN_PLACE
22-
import org.jetbrains.kotlin.contracts.parsing.ContractsDslNames.CONTRACT
23-
import org.jetbrains.kotlin.contracts.parsing.ContractsDslNames.CONTRACTS_DSL_ANNOTATION_FQN
24-
import org.jetbrains.kotlin.contracts.parsing.ContractsDslNames.EFFECT
25-
import org.jetbrains.kotlin.contracts.parsing.ContractsDslNames.IMPLIES
26-
import org.jetbrains.kotlin.contracts.parsing.ContractsDslNames.INVOCATION_KIND_ENUM
27-
import org.jetbrains.kotlin.contracts.parsing.ContractsDslNames.RETURNS
28-
import org.jetbrains.kotlin.contracts.parsing.ContractsDslNames.RETURNS_NOT_NULL
29-
import org.jetbrains.kotlin.name.FqName
21+
import org.jetbrains.kotlin.resolve.ContractsDslNames.CALLS_IN_PLACE
22+
import org.jetbrains.kotlin.resolve.ContractsDslNames.CONTRACT
23+
import org.jetbrains.kotlin.resolve.ContractsDslNames.CONTRACTS_DSL_ANNOTATION_FQN
24+
import org.jetbrains.kotlin.resolve.ContractsDslNames.EFFECT
25+
import org.jetbrains.kotlin.resolve.ContractsDslNames.IMPLIES
26+
import org.jetbrains.kotlin.resolve.ContractsDslNames.INVOCATION_KIND_ENUM
27+
import org.jetbrains.kotlin.resolve.ContractsDslNames.RETURNS
28+
import org.jetbrains.kotlin.resolve.ContractsDslNames.RETURNS_NOT_NULL
3029
import org.jetbrains.kotlin.name.Name
3130
import org.jetbrains.kotlin.psi.KtExpression
3231
import org.jetbrains.kotlin.resolve.calls.model.ExpressionValueArgument
@@ -35,54 +34,25 @@ import org.jetbrains.kotlin.types.typeUtil.isBoolean
3534
import org.jetbrains.kotlin.types.typeUtil.isNullableAny
3635

3736

38-
object ContractsDslNames {
39-
// Internal marker-annotation for distinguishing our API
40-
val CONTRACTS_DSL_ANNOTATION_FQN = FqName("kotlin.internal.ContractsDsl")
41-
42-
// Types
43-
val EFFECT = Name.identifier("Effect")
44-
val CONDITIONAL_EFFECT = Name.identifier("ConditionalEffect")
45-
val SIMPLE_EFFECT = Name.identifier("SimpleEffect")
46-
val RETURNS_EFFECT = Name.identifier("Returns")
47-
val RETURNS_NOT_NULL_EFFECT = Name.identifier("ReturnsNotNull")
48-
val CALLS_IN_PLACE_EFFECT = Name.identifier("CallsInPlace")
49-
50-
// Structure-defining calls
51-
val CONTRACT = Name.identifier("contract")
52-
val IMPLIES = Name.identifier("implies")
53-
54-
// Effect-declaration calls
55-
val RETURNS = Name.identifier("returns")
56-
val RETURNS_NOT_NULL = Name.identifier("returnsNotNull")
57-
val CALLS_IN_PLACE = Name.identifier("callsInPlace")
58-
59-
// enum class InvocationKind
60-
val INVOCATION_KIND_ENUM = Name.identifier("InvocationKind")
61-
val EXACTLY_ONCE_KIND = Name.identifier("EXACTLY_ONCE")
62-
val AT_LEAST_ONCE_KIND = Name.identifier("AT_LEAST_ONCE")
63-
val UNKNOWN_KIND = Name.identifier("UNKNOWN")
64-
val AT_MOST_ONCE_KIND = Name.identifier("AT_MOST_ONCE")
65-
}
66-
6737
fun DeclarationDescriptor.isFromContractDsl(): Boolean = this.annotations.hasAnnotation(CONTRACTS_DSL_ANNOTATION_FQN)
6838

69-
fun DeclarationDescriptor.isContractCallDescriptor(): Boolean = equalsDslDescriptor(CONTRACT)
39+
fun DeclarationDescriptor.isContractCallDescriptor(): Boolean = equalsDslDescriptor(CONTRACT.callableName)
7040

71-
fun DeclarationDescriptor.isImpliesCallDescriptor(): Boolean = equalsDslDescriptor(IMPLIES)
41+
fun DeclarationDescriptor.isImpliesCallDescriptor(): Boolean = equalsDslDescriptor(IMPLIES.callableName)
7242

73-
fun DeclarationDescriptor.isReturnsEffectDescriptor(): Boolean = equalsDslDescriptor(RETURNS)
43+
fun DeclarationDescriptor.isReturnsEffectDescriptor(): Boolean = equalsDslDescriptor(RETURNS.callableName)
7444

75-
fun DeclarationDescriptor.isReturnsNotNullDescriptor(): Boolean = equalsDslDescriptor(RETURNS_NOT_NULL)
45+
fun DeclarationDescriptor.isReturnsNotNullDescriptor(): Boolean = equalsDslDescriptor(RETURNS_NOT_NULL.callableName)
7646

77-
fun DeclarationDescriptor.isReturnsWildcardDescriptor(): Boolean = equalsDslDescriptor(RETURNS) &&
47+
fun DeclarationDescriptor.isReturnsWildcardDescriptor(): Boolean = equalsDslDescriptor(RETURNS.callableName) &&
7848
this is FunctionDescriptor &&
7949
valueParameters.isEmpty()
8050

81-
fun DeclarationDescriptor.isEffectDescriptor(): Boolean = equalsDslDescriptor(EFFECT)
51+
fun DeclarationDescriptor.isEffectDescriptor(): Boolean = equalsDslDescriptor(EFFECT.callableName)
8252

83-
fun DeclarationDescriptor.isCallsInPlaceEffectDescriptor(): Boolean = equalsDslDescriptor(CALLS_IN_PLACE)
53+
fun DeclarationDescriptor.isCallsInPlaceEffectDescriptor(): Boolean = equalsDslDescriptor(CALLS_IN_PLACE.callableName)
8454

85-
fun DeclarationDescriptor.isInvocationKindEnum(): Boolean = equalsDslDescriptor(INVOCATION_KIND_ENUM)
55+
fun DeclarationDescriptor.isInvocationKindEnum(): Boolean = equalsDslDescriptor(INVOCATION_KIND_ENUM.callableName)
8656

8757
fun DeclarationDescriptor.isEqualsDescriptor(): Boolean =
8858
this is FunctionDescriptor && this.name == Name.identifier("equals") && dispatchReceiverParameter != null && // fast checks

compiler/frontend/src/org/jetbrains/kotlin/contracts/parsing/effects/PsiCallsEffectParser.kt

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import org.jetbrains.kotlin.contracts.description.CallsEffectDeclaration
2020
import org.jetbrains.kotlin.contracts.description.EffectDeclaration
2121
import org.jetbrains.kotlin.contracts.description.EventOccurrencesRange
2222
import org.jetbrains.kotlin.contracts.parsing.*
23+
import org.jetbrains.kotlin.resolve.ContractsDslNames
2324
import org.jetbrains.kotlin.psi.KtExpression
2425
import org.jetbrains.kotlin.resolve.BindingContext
2526
import org.jetbrains.kotlin.resolve.calls.util.getResolvedCall
@@ -64,10 +65,10 @@ internal class PsiCallsEffectParser(
6465
if (!descriptor.parents.first().isInvocationKindEnum()) return null
6566

6667
return when (descriptor.fqNameSafe.shortName()) {
67-
ContractsDslNames.AT_MOST_ONCE_KIND -> EventOccurrencesRange.AT_MOST_ONCE
68-
ContractsDslNames.EXACTLY_ONCE_KIND -> EventOccurrencesRange.EXACTLY_ONCE
69-
ContractsDslNames.AT_LEAST_ONCE_KIND -> EventOccurrencesRange.AT_LEAST_ONCE
70-
ContractsDslNames.UNKNOWN_KIND -> EventOccurrencesRange.UNKNOWN
68+
ContractsDslNames.AT_MOST_ONCE_KIND.callableName -> EventOccurrencesRange.AT_MOST_ONCE
69+
ContractsDslNames.EXACTLY_ONCE_KIND.callableName -> EventOccurrencesRange.EXACTLY_ONCE
70+
ContractsDslNames.AT_LEAST_ONCE_KIND.callableName -> EventOccurrencesRange.AT_LEAST_ONCE
71+
ContractsDslNames.UNKNOWN_KIND.callableName -> EventOccurrencesRange.UNKNOWN
7172
else -> null
7273
}
7374
}

compiler/ir/ir.inline/src/org/jetbrains/kotlin/ir/inline/FunctionInlining.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import org.jetbrains.kotlin.backend.common.lower.at
1111
import org.jetbrains.kotlin.backend.common.lower.createIrBuilder
1212
import org.jetbrains.kotlin.backend.common.phaser.PhaseDescription
1313
import org.jetbrains.kotlin.builtins.StandardNames
14-
import org.jetbrains.kotlin.contracts.parsing.ContractsDslNames
14+
import org.jetbrains.kotlin.resolve.ContractsDslNames
1515
import org.jetbrains.kotlin.ir.IrElement
1616
import org.jetbrains.kotlin.ir.IrStatement
1717
import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET

kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/ContractsDslRemover.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.backend.konan.lower
77

88
import org.jetbrains.kotlin.backend.common.DeclarationContainerLoweringPass
99
import org.jetbrains.kotlin.backend.konan.Context
10-
import org.jetbrains.kotlin.contracts.parsing.ContractsDslNames
10+
import org.jetbrains.kotlin.resolve.ContractsDslNames
1111
import org.jetbrains.kotlin.ir.declarations.IrClass
1212
import org.jetbrains.kotlin.ir.declarations.IrDeclarationContainer
1313
import org.jetbrains.kotlin.ir.util.hasAnnotation

0 commit comments

Comments
 (0)