- previously the overrides for parameterized data types could only
reference data declarations at the module scope
- their use within procedures is still allowed, but cannot currently
refer to localparams declared within procedures
- add procedure scope location accessors to allow scoped traversals to
mark where injected items will end up in advance
- disallow using end label alone on blocks
- improved parse error for mismatches
- add label checking for non-block constructs
- allow generate block to have label before begin
- variable-size string parameter conversion restricted to modules which
depend on the size of the string parameter
- string localparams are typed as appropriately sized vectors
- remove ordered parameter binding logic from string param conversion
- fix preservation of loop variables when breaking
- extend Yosys-compatible constant loop conversion to support loop
variables declared outside of the looop
- avoid premature conversion of default struct type parameters
- allow use of $clog2, $signed, and $unsigned in type parameters
- more thorough and efficient top reference ident renaming
- precede type param conversion with hier const pass
- wait for hierarchical references within an instance's type parameters
to be resolved before instantiating the module
- references to a module's top-level named scopes are now correctly
renamed when creating new type parameter modules
- delegate cast type and sign resolution to TypeOf conversion
- internal support for injecting data declarations into statements
- fix size and sign of unbased unsized literals used in casts
- avoid generating many unnecessary explicit casts
- support casts which depend on localparams within procedures
- expression traversal correctly visits types within type casts
- fix typeof on expressions of net types
- handle additional edge cases for unsized integer array patterns
- preserve signedness of implicitly flattened unpacked integer arrays