Page MenuHomePhabricator

ZObject model: Don’t make Z23/nothing’s Z1K1/type itself
Closed, ResolvedPublic


In AbstractText/eneyj, the type of the Z23 “nothing” object is Z23, i.e. itself. This causes issues in GraalEneyj, because an object isn’t allowed to be a “meta-object” (a type) and “null” at the same time. In the current GraalEneyj commit for meta-objects, I’ve resolved this by pretending the type of Z23 is Z4/type instead of Z23. WikiLambda doesn’t have a Z23 “nothing” object yet, but when it does, I suggest its type should not be Z23, to avoid that issue.

Event Timeline

You are right, that's actually wrong - Z23 really should be a Z4. Z23 shouldn't have any instance, not even itself. I will keep it open until the nothing type is created.

In Scala, there is a "Nothing" type that have no instances and a "Nil" type that have one instance. In some case we need to differ a bottom type and a actual null value (such as that in Java).

DVrandecic triaged this task as Lowest priority.Apr 7 2021, 5:08 AM
Jdforrester-WMF renamed this task from Don’t make Z23/nothing’s Z1K1/type itself to ZObject model: Don’t make Z23/nothing’s Z1K1/type itself.Jun 2 2021, 5:28 PM

I am resolving this. As can be seen here, Z23 is a Z4, not Z23.