Skip to content

Commit a6fce19

Browse files
committed
Kotlin: Fix build with 2.1.0-Beta1
1 parent 5a03c35 commit a6fce19

File tree

11 files changed

+39
-46
lines changed

11 files changed

+39
-46
lines changed

java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt

Lines changed: 6 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -27,30 +27,7 @@ import org.jetbrains.kotlin.ir.expressions.impl.*
2727
import org.jetbrains.kotlin.ir.symbols.*
2828
import org.jetbrains.kotlin.ir.types.*
2929
import org.jetbrains.kotlin.ir.types.impl.makeTypeProjection
30-
import org.jetbrains.kotlin.ir.util.companionObject
31-
import org.jetbrains.kotlin.ir.util.constructors
32-
import org.jetbrains.kotlin.ir.util.fqNameWhenAvailable
33-
import org.jetbrains.kotlin.ir.util.hasAnnotation
34-
import org.jetbrains.kotlin.ir.util.hasInterfaceParent
35-
import org.jetbrains.kotlin.ir.util.isAnnotationClass
36-
import org.jetbrains.kotlin.ir.util.isAnonymousObject
37-
import org.jetbrains.kotlin.ir.util.isFakeOverride
38-
import org.jetbrains.kotlin.ir.util.isFunctionOrKFunction
39-
import org.jetbrains.kotlin.ir.util.isInterface
40-
import org.jetbrains.kotlin.ir.util.isLocal
41-
import org.jetbrains.kotlin.ir.util.isNonCompanionObject
42-
import org.jetbrains.kotlin.ir.util.isObject
43-
import org.jetbrains.kotlin.ir.util.isSuspend
44-
import org.jetbrains.kotlin.ir.util.isSuspendFunctionOrKFunction
45-
import org.jetbrains.kotlin.ir.util.isVararg
46-
import org.jetbrains.kotlin.ir.util.kotlinFqName
47-
import org.jetbrains.kotlin.ir.util.packageFqName
48-
import org.jetbrains.kotlin.ir.util.parentAsClass
49-
import org.jetbrains.kotlin.ir.util.parentClassOrNull
50-
import org.jetbrains.kotlin.ir.util.parents
51-
import org.jetbrains.kotlin.ir.util.primaryConstructor
52-
import org.jetbrains.kotlin.ir.util.render
53-
import org.jetbrains.kotlin.ir.util.target
30+
import org.jetbrains.kotlin.ir.util.*
5431
import org.jetbrains.kotlin.load.java.JvmAnnotationNames
5532
import org.jetbrains.kotlin.load.java.NOT_NULL_ANNOTATIONS
5633
import org.jetbrains.kotlin.load.java.NULLABLE_ANNOTATIONS
@@ -826,7 +803,7 @@ open class KotlinFileExtractor(
826803
fun exprId() = tw.getLabelFor<DbExpr>("@\"annotationExpr;{$parent};$idx\"")
827804

828805
return when (v) {
829-
is IrConst<*> -> {
806+
is CodeQLIrConst<*> -> {
830807
extractConstant(v, parent, idx, null, null, overrideId = exprId())
831808
}
832809
is IrGetEnumValue -> {
@@ -5998,7 +5975,7 @@ open class KotlinFileExtractor(
59985975
extractExpressionExpr(a, callable, id, i, exprParent.enclosingStmt)
59995976
}
60005977
}
6001-
is IrConst<*> -> {
5978+
is CodeQLIrConst<*> -> {
60025979
val exprParent = parent.expr(e, callable)
60035980
extractConstant(
60045981
e,
@@ -6210,9 +6187,9 @@ open class KotlinFileExtractor(
62106187
if (
62116188
(isAndAnd || isOrOr) &&
62126189
e.branches.size == 2 &&
6213-
(e.branches[1].condition as? IrConst<*>)?.value == true &&
6190+
(e.branches[1].condition as? CodeQLIrConst<*>)?.value == true &&
62146191
(e.branches[if (e.origin == IrStatementOrigin.ANDAND) 1 else 0].result
6215-
as? IrConst<*>)
6192+
as? CodeQLIrConst<*>)
62166193
?.value == isOrOr
62176194
) {
62186195

@@ -6868,7 +6845,7 @@ open class KotlinFileExtractor(
68686845
}
68696846

68706847
private fun extractConstant(
6871-
e: IrConst<*>,
6848+
e: CodeQLIrConst<*>,
68726849
parent: Label<out DbExprparent>,
68736850
idx: Int,
68746851
enclosingCallable: Label<out DbCallable>?,

java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import com.github.codeql.utils.versions.*
55
import com.semmle.extractor.java.OdasaOutput
66
import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext
77
import org.jetbrains.kotlin.backend.common.ir.*
8-
import org.jetbrains.kotlin.backend.jvm.ir.propertyIfAccessor
8+
import org.jetbrains.kotlin.backend.jvm.ir.*
99
import org.jetbrains.kotlin.codegen.JvmCodegenUtil
1010
import org.jetbrains.kotlin.descriptors.*
1111
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
@@ -24,6 +24,7 @@ import org.jetbrains.kotlin.load.kotlin.getJvmModuleNameForDeserializedDescripto
2424
import org.jetbrains.kotlin.name.FqName
2525
import org.jetbrains.kotlin.name.NameUtils
2626
import org.jetbrains.kotlin.name.SpecialNames
27+
import org.jetbrains.kotlin.resolve.descriptorUtil.propertyIfAccessor
2728
import org.jetbrains.kotlin.types.Variance
2829
import org.jetbrains.kotlin.util.OperatorNameConventions
2930

@@ -84,7 +85,7 @@ open class KotlinUsesExtractor(
8485
}
8586

8687
private fun extractFileClass(fqName: FqName): Label<out DbClassorinterface> {
87-
val pkg = if (fqName.isRoot()) "" else fqName.parent().asString()
88+
val pkg = if (fqName.codeQlIsRoot()) "" else fqName.parent().asString()
8889
val jvmName = fqName.shortName().asString()
8990
return extractFileClass(pkg, jvmName)
9091
}
@@ -906,7 +907,7 @@ open class KotlinUsesExtractor(
906907
return arrayInfo.componentTypeResults
907908
}
908909
owner is IrClass -> {
909-
val args = if (s.isRawType()) null else s.arguments
910+
val args = if (s.codeQlIsRawType()) null else s.arguments
910911

911912
return useSimpleTypeClass(owner, args, s.isNullable())
912913
}
@@ -1232,9 +1233,10 @@ open class KotlinUsesExtractor(
12321233
// false if it has `@JvmSuppressWildcards(false)`,
12331234
// and null if the annotation is not present.
12341235
@Suppress("UNCHECKED_CAST")
1235-
private fun getWildcardSuppressionDirective(t: IrAnnotationContainer) =
1236+
private fun getWildcardSuppressionDirective(t: IrAnnotationContainer): Boolean? =
12361237
t.getAnnotation(jvmWildcardSuppressionAnnotation)?.let {
1237-
(it.getValueArgument(0) as? IrConst<Boolean>)?.value ?: true
1238+
@Suppress("USELESS_CAST") // `as? Boolean` is not needed for Kotlin < 2.1
1239+
(it.getValueArgument(0) as? CodeQLIrConst<Boolean>)?.value as? Boolean ?: true
12381240
}
12391241

12401242
private fun addJavaLoweringArgumentWildcards(

java/kotlin-extractor/src/main/kotlin/MetaAnnotationSupport.kt

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,7 @@ import org.jetbrains.kotlin.ir.expressions.IrClassReference
2727
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
2828
import org.jetbrains.kotlin.ir.expressions.IrGetEnumValue
2929
import org.jetbrains.kotlin.ir.expressions.IrVararg
30-
import org.jetbrains.kotlin.ir.expressions.impl.IrClassReferenceImpl
31-
import org.jetbrains.kotlin.ir.expressions.impl.IrConstructorCallImpl
32-
import org.jetbrains.kotlin.ir.expressions.impl.IrGetEnumValueImpl
33-
import org.jetbrains.kotlin.ir.expressions.impl.IrGetFieldImpl
34-
import org.jetbrains.kotlin.ir.expressions.impl.IrGetValueImpl
35-
import org.jetbrains.kotlin.ir.expressions.impl.IrReturnImpl
36-
import org.jetbrains.kotlin.ir.expressions.impl.IrVarargImpl
30+
import org.jetbrains.kotlin.ir.expressions.impl.*
3731
import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
3832
import org.jetbrains.kotlin.ir.types.typeWith
3933
import org.jetbrains.kotlin.ir.util.constructedClass

java/kotlin-extractor/src/main/kotlin/utils/JvmNames.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
package com.github.codeql.utils
22

33
import com.github.codeql.utils.versions.allOverriddenIncludingSelf
4+
import com.github.codeql.utils.versions.CodeQLIrConst
45
import org.jetbrains.kotlin.builtins.StandardNames
56
import org.jetbrains.kotlin.ir.declarations.IrAnnotationContainer
67
import org.jetbrains.kotlin.ir.declarations.IrClass
78
import org.jetbrains.kotlin.ir.declarations.IrFunction
89
import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction
9-
import org.jetbrains.kotlin.ir.expressions.IrConst
1010
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
1111
import org.jetbrains.kotlin.ir.types.IrSimpleType
1212
import org.jetbrains.kotlin.ir.util.fqNameWhenAvailable
@@ -82,7 +82,7 @@ fun getJvmName(container: IrAnnotationContainer): String? {
8282
if (owner is IrClass) {
8383
val aPkg = owner.packageFqName?.asString()
8484
val name = owner.name.asString()
85-
if (aPkg == "kotlin.jvm" && name == "JvmName" && v is IrConst<*>) {
85+
if (aPkg == "kotlin.jvm" && name == "JvmName" && v is CodeQLIrConst<*>) {
8686
val value = v.value
8787
if (value is String) {
8888
return value

java/kotlin-extractor/src/main/kotlin/utils/TypeSubstitution.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import org.jetbrains.kotlin.ir.declarations.IrTypeParametersContainer
1515
import org.jetbrains.kotlin.ir.declarations.impl.IrExternalPackageFragmentImpl
1616
import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImpl
1717
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
18-
import org.jetbrains.kotlin.ir.expressions.impl.IrConstructorCallImpl
18+
import org.jetbrains.kotlin.ir.expressions.impl.*
1919
import org.jetbrains.kotlin.ir.symbols.IrTypeParameterSymbol
2020
import org.jetbrains.kotlin.ir.symbols.impl.DescriptorlessExternalPackageFragmentSymbol
2121
import org.jetbrains.kotlin.ir.types.*
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package com.github.codeql.utils.versions
2+
3+
import org.jetbrains.kotlin.ir.expressions.IrConst
4+
5+
typealias CodeQLIrConst<T> = IrConst<T>
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package com.github.codeql.utils.versions
2+
3+
import org.jetbrains.kotlin.name.FqName
4+
5+
fun FqName.codeQlIsRoot() = this.isRoot()

java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/Types.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ package com.github.codeql.utils.versions
33
import org.jetbrains.kotlin.backend.jvm.codegen.isRawType
44
import org.jetbrains.kotlin.ir.types.IrSimpleType
55

6-
fun IrSimpleType.isRawType() = this.isRawType()
6+
fun IrSimpleType.codeQlIsRawType() = this.isRawType()

java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_20/Types.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ package com.github.codeql.utils.versions
33
import org.jetbrains.kotlin.backend.jvm.ir.isRawType
44
import org.jetbrains.kotlin.ir.types.IrSimpleType
55

6-
fun IrSimpleType.isRawType() = this.isRawType()
6+
fun IrSimpleType.codeQlIsRawType() = this.isRawType()
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package com.github.codeql.utils.versions
2+
3+
import org.jetbrains.kotlin.ir.expressions.IrConst
4+
5+
typealias CodeQLIrConst<T> = IrConst

0 commit comments

Comments
 (0)