xls icon indicating copy to clipboard operation
xls copied to clipboard

Parameteric function with full specialization fails to compile

Open sandwichmaker opened this issue 1 year ago • 3 comments

fn array_subnormals_to_zero_using_map<N:u32, EXP_SZ:u32, FRAC_SZ:u32>(
                            terms : apfloat::APFloat<EXP_SZ, FRAC_SZ>[N])
-> apfloat::APFloat<EXP_SZ, FRAC_SZ>[N] {
    map(terms, apfloat::subnormals_to_zero<EXP_SZ, FRAC_SZ>)
}

fails with

0019:                             terms : apfloat::APFloat<EXP_SZ, FRAC_SZ>[N])
0020: -> apfloat::APFloat<EXP_SZ, FRAC_SZ>[N] {
0021:     map(terms, apfloat::subnormals_to_zero<EXP_SZ, FRAC_SZ>)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ ParseError: Expected '(', got ')': Expected a '(' after parametrics for function invocation.
0022: }
0023: 

however

fn array_subnormals_to_zero_using_map<N:u32, EXP_SZ:u32, FRAC_SZ:u32>(
                            terms : apfloat::APFloat<EXP_SZ, FRAC_SZ>[N])
-> apfloat::APFloat<EXP_SZ, FRAC_SZ>[N] {
    map(terms, apfloat::subnormals_to_zero)
}

compiles fine.

sandwichmaker avatar Jul 12 '23 21:07 sandwichmaker