[Nickle] initializers bug
Keith Packard
nickle@nickle.org
Tue, 05 Nov 2002 11:02:36 -0800
Around 9 o'clock on Nov 5, Bart Massey wrote:
> -> dtree d = { node = { attr = 0, neg = &neg, pos = &pos } };
> /tmp/dtx.5c:25: Incompatible types, storage '*dtree', value '*dtree', for initializer
> -> dtree d = { node = { attr = 0, neg = &neg, pos = &pos } };
> /tmp/dtx.5c:25: Incompatible types, storage '*dtree', value '*dtree', for initializer
Tricky. Bad design on my part -- type expressions involving typedef were
hoisting the referenced type out of the symbol. References to undefined
types were allowed to remain undefined, but the hoisting wasn't ever
reevaluated so they'd never get fixed.
Now typedef type expressions just reference the underlying symbol, so the
reference type can be tested as soon as the symbol gets it's type defined.
-keith