Goose  Diff

Differences From Artifact [d999b29720]:

  • File bs/builtins/types/reference/typecheck.cpp — part of check-in [bb7e75cb1b] at 2023-05-05 18:03:24 on branch trunk — Lifetime specifications parsing (user: zlodo size: 10781)

To Artifact [e8725b5e7a]:

  • File bs/builtins/types/reference/typecheck.cpp — part of check-in [973848d259] at 2023-12-06 20:49:19 on branch trunk — Begin implementing structs. (user: zlodo size: 10783)

244
245
246
247
248
249
250
251

252
253
254
255
256
257
258
244
245
246
247
248
249
250

251
252
253
254
255
256
257
258







-
+








            LocVarToRef
        );

        // The rule above is ambiguous with the WrappedArg rule when passing a locvar
        // to a wrappedarg param. So we add a disambiguation rule that prioritizes
        // turning the locvar into a ref in that case (since typically we don't want to manipulate
        // locvars directly, so anything that wants a wrapped value probably wants whatever's in the var)
        // 0_locvars directly, so anything that wants a wrapped value probably wants whatever's in the var)
        e.typeCheckingRuleSet()->addTypeCheckingRule(

            ValueToEIR( ValuePattern(
                TSID( param ),
                ValueToEIR( BuildWrappedType( ANYTERM( _ ) ) ),
                ANYTERM( _ ) ) ),