diff --git a/hercules_opt/src/utils.rs b/hercules_opt/src/utils.rs index b26ee18c00bdee49c08ece6f3581e8fd018e6d7a..3a8ffbefd2e12141445769c84445dae7bcefc0b1 100644 --- a/hercules_opt/src/utils.rs +++ b/hercules_opt/src/utils.rs @@ -4,6 +4,10 @@ use self::hercules_ir::ir::*; use crate::*; +/* + * Substitute all uses of a dynamic constant A with dynamic constant B in a + * type. Return the substituted version of the type, once memozied. + */ pub(crate) fn substitute_dynamic_constants_in_type( dc_a: DynamicConstantID, dc_b: DynamicConstantID, @@ -53,6 +57,12 @@ pub(crate) fn substitute_dynamic_constants_in_type( } } +/* + * Substitute all uses of a dynamic constant A with dynamic constant B in a + * dynamic constant C. Return the substituted version of C, once memoized. Takes + * a mutable edit instead of an editor since this may create new dynamic + * constants, which can only be done inside an edit. + */ pub(crate) fn substitute_dynamic_constants( dc_a: DynamicConstantID, dc_b: DynamicConstantID, diff --git a/juno_samples/complex_tuple.jn b/juno_samples/complex_tuple.jn index 46d44fd0aaf622926065a1d624a7b8344337c287..739944bbf2c20b5533f2822d7035d19cb5eef008 100644 --- a/juno_samples/complex_tuple.jn +++ b/juno_samples/complex_tuple.jn @@ -4,6 +4,7 @@ fn test<x, y : usize>(a : i32[x, y]) -> (i32[x, y], i32[x,y]) { return (a, b); } +#[entry] fn main<x, y, z : usize>() -> i32[y, z] { let n : i32[y, z]; let res = test::<y, z>(n);