From 0a24bf161380eb2884ec3527d583fa504b402436 Mon Sep 17 00:00:00 2001 From: Stanislav Erokhin Date: Tue, 21 Feb 2017 17:26:07 +0300 Subject: [PATCH] Fix type deserialization for suspend function types which was written by pre-release compiler. Notes: if arity == 0, it means that type was `suspend () -> String` => arguments.size == 1, and it means that SuspendFunction0 has only one type argument and it is return type. --- .../kotlin/serialization/deserialization/TypeDeserializer.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/TypeDeserializer.kt b/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/TypeDeserializer.kt index 0286829e54c..0ffda78efcd 100644 --- a/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/TypeDeserializer.kt +++ b/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/TypeDeserializer.kt @@ -147,7 +147,7 @@ class TypeDeserializer( // This case for types written by eap compiler 1.1 1 -> { val arity = arguments.size - 1 - if (arity > 0) { + if (arity >= 0) { KotlinTypeFactory.simpleType(annotations, functionTypeConstructor.builtIns.getSuspendFunction(arity).typeConstructor, arguments, nullable) } else {