Recently learned that typealiases make Java constr...
# random
s
Recently learned that typealiases make Java constructors work with named arguments, which surprised me. Anyone know if it's a documented feature?
Copy code
val e1 = java.util.NoSuchElementException(null) // ❌ overload resolution ambiguity
val e2 = java.util.NoSuchElementException(cause = null) // ❌ "can't be called with the arguments supplied"

typealias NoSuchElementException = java.util.NoSuchElementException
val e3 = NoSuchElementException(cause = null) // ✅ apparently fine?
👀 5
r
Might be this quite old bug (fixed in K2) https://youtrack.jetbrains.com/issue/KTIJ-12824
1
s
Thanks! 🤦 I should have checked that it actually compiles and runs, instead of just taking the IDE's word for it. Looks like it does indeed fail to compile.