| commit | 9495bca6f90b8689b6059bc3c795028fac4c59a9 | [log] [tgz] |
|---|---|---|
| author | Nikolay Egorov <nikolay.egorov@jetbrains.com> | Thu Jun 02 11:01:26 2022 +0300 |
| committer | Nikolay Egorov <nikolay.egorov@jetbrains.com> | Thu Jun 02 19:21:28 2022 +0300 |
| tree | 451ec797a8cc5565052de26d4ae57e9075f3f4a9 | |
| parent | 6fc27c22f44d8051bf2e89f1657c0d9741c281c0 [diff] |
Make TypeMapper use signatureWriter for scripts expression evaluation; Support nullability detection for IrScriptSymbol
diff --git a/compiler/backend.common.jvm/src/org/jetbrains/kotlin/types/AbstractTypeMapper.kt b/compiler/backend.common.jvm/src/org/jetbrains/kotlin/types/AbstractTypeMapper.kt index ac621bd..0a8f7e3 100644 --- a/compiler/backend.common.jvm/src/org/jetbrains/kotlin/types/AbstractTypeMapper.kt +++ b/compiler/backend.common.jvm/src/org/jetbrains/kotlin/types/AbstractTypeMapper.kt
@@ -102,7 +102,10 @@ mapType(context, type.original(), mode, sw) typeConstructor.isScript() -> - Type.getObjectType(context.getScriptInternalName(typeConstructor)) + Type.getObjectType(context.getScriptInternalName(typeConstructor)).let { + sw?.writeClass(it) + it + } else -> throw UnsupportedOperationException("Unknown type $type")
diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/types/IrTypeUtils.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/types/IrTypeUtils.kt index ac3ffe6..e3b5c09 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/types/IrTypeUtils.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/types/IrTypeUtils.kt
@@ -43,6 +43,7 @@ SimpleTypeNullability.NOT_SPECIFIED -> classifier.owner.superTypes.any(IrType::isNullable) SimpleTypeNullability.DEFINITELY_NOT_NULL -> false } + is IrScriptSymbol -> nullability == SimpleTypeNullability.MARKED_NULLABLE else -> error("Unsupported classifier: $classifier") } is IrDynamicType -> true