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
Additionally, the actual parameters should be accessible at the position of the generics declaration. For example, module names can be used as actual parameters because it is accessible through the whole project. On the other hand, local parameters can’t be used as actual parameters in many cases. This is caused by that the local parameters is not accessible from the potision of the generics declaration.
The above case should be written like below:
packagePackageA{type my_logic = logic;
functionFuncA::<T>->T{ var a:T;
a =0;
return a;
}}moduleModuleA{let _a: logic=PackageA::FuncA::<PackageA::my_logic>();
}
Copying the type declaration will not work fine in many cases like below:
moduleModuleA#(
param my_logic: type = logic,
) {let _a: logic=PackageA::FuncA::<my_logic>();
}moduleModuleA#(
param TYPE: type = logic,
) {type my_logic = TYPE;
let _a: logic=PackageA::FuncA::<my_logic>();
}
Veryl reports an undefined identifier error for a generic type argument pointing a type locally defined.
For exmaple:
The text was updated successfully, but these errors were encountered: