Java's type system is Turing complete. For whatever reason, I was under the impression that Kotlin's type system (for concreteness, let's say the latest version of the language -- 1.5.30
) was not Turing complete.
I'm not sure exactly where I got this impression, but this leads to the question: Is Kotlin's type system Turing complete? Specifically, is it Turing complete by the same mechanism used in the paper linked above?
Towards the end of this paper, the author says:
Does the reduction from Section 5 apply to other languages like C] and Scala? No. Both of them adopted the recursive–expansive restriction of (Viroli 2000), as recommended by (Kennedy and Pierce 2007). Roughly, this restriction is a syntactic check that succeeds if and only if our Turing tapes are bounded.
I could not find the referenced paper outside of a pay-wall, so I cannot say exactly what this restriction is, but it leads to the question: Does Kotlin have this restriction, thus not making Kotlin's type system Turing complete (by the same mechanism as Java)?