You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Moves the `__init__` hook into a metaclass hook on `__init__` instead of
the previously explicit `@init_in_parent` decorator. Cleans up the hook
logic. Deprecates `@init_in_parent`.
It seems this must be an `__init__` hook of some kind, since it needs to
inspect each `super().__init__` call, recursively, with the context it
is called in. The `__init__` hook does double duty:
- For the top-level block being elaborated, it materializes missing
params with dummy values
- For inner blocks, it 'wraps' arg values by creating a param based on
the type annotation
Internally, removes the `Block._init_param_values`, which used to be the
source of truth for init values. Instead, init params have an
InitParamBinding, which stores the value, if any
This changes (fixes, imo) some behavior:
- No longer materializes missing params except for the top-level block.
Calls to blocks that are missing params will now fail, as expected.
- *Expr (eg, RangeExpr, FloatExpr) are no longer allowed as annotation
types, instead must use *Like (eg, RangeLike, FloatLike)
Removes `@init_in_parent` in all the library code. There's a bunch.
Fixes some libraries which are broken. Removes obsoleted unit tests.
Adds a dead-simple LED test, probably the simplest possible circuit
here.
Resolves#409
0 commit comments