Open thomaspurchas opened 2 months ago
I don't think It's particular to fixed properties. I have the same kind of problem but with "normal" properties :
class A{
x:Int
y = x + 1
}
a = Map("x", 1).toTyped(A)
produces the following error :
Tried to read property `x` but its value is undefined.
Which is understandable since :
class A{
x:Int = 0
y = x + 1
}
a = Map("x", 1).toTyped(A)
produces :
{
"a": {
"x": 1,
"y": 1
}
}
If I'm missing something or if there is a way around it I'm interested :)
The point @thomaspurchas is making - I believe - is that he expected type
to be "Parrot"
. What isn't being respected here, is that toTyped
ignores the fixed
-ness of the property.
Ok, maybe I wrongly made a link between my problem and the one that @thomaspurchas raised.
Still there's a behavior that is not the one I would have expected when using toTyped
, i.e., it does not produce the same object as normal instantiation would have. I have found some partial workaround using let
to force evaluation at some points (I mean I think that's what it does) but it does not entirely solve the problem (in my case for instanciation of objects contained in attributes and produced by the instanciation of an object that are not instanciated when using toTyped
resulting in empty attributes).
Maybe I can sum that up and open a new issue about it.
The
toTyped
API doesn't respectfixed
properties on classes, resulting in the following unexpected outcome:produces