Thanks, this works perfectly!  By the way, what does the "&int >>  _" 
syntax mean in this case?

On Friday, January 22, 2021 at 1:46:15 AM UTC-5 gmhwxi wrote:

> There are a couple of issues. Maybe the following code is what
> you wanted:
>
> fn chng_int_test ( i: &int >> _ ) : void = i := i + 1
>
>
> fn test_chnge () : int = let
>   var i: int = 0
>
>   val () = chng_int_test(i)
> in
>   i
> end
> On Fri, Jan 22, 2021 at 12:51 AM d4v3y_5c0n3s <tmj...@gmail.com> wrote:
>
>> I'm trying to use call by reference in the following example, but I'm 
>> running into issues trying to get it to compile.  It's late, so I'll 
>> explain more tomorrow, but any help is appreciated.
>>
>> fn chng_int_test ( i: &int? >> _ ) : void = i + 1
>>
>> fn test_chnge () : int = let
>>     var i = 0
>>     val () = chng_int_test(i)
>> in
>>     i
>> end
>>
>> /tmp/patsopt_tcats_SwYDb2: 46(line=2, offs=45) -- 47(line=2, offs=46): 
>> error(3): the dynamic expression cannot be assigned the type 
>> [S2Eapp(S2Ecst(g1uint_int_t0ype); S2Eextkind(atstype_size), S2EVar(0))].
>> /tmp/patsopt_tcats_SwYDb2: 46(line=2, offs=45) -- 47(line=2, offs=46): 
>> error(3): mismatch of static terms (tyleq):
>> The actual term is: S2Etop(knd=0; S2Eapp(S2Ecst(g0int_t0ype); 
>> S2Eextkind(atstype_int)))
>> The needed term is: S2Eapp(S2Ecst(g1uint_int_t0ype); 
>> S2Eextkind(atstype_size), S2EVar(0))
>> /tmp/patsopt_tcats_SwYDb2: 46(line=2, offs=45) -- 51(line=2, offs=50): 
>> error(3): the linear dynamic variable [i$view$74(-1)] is preserved but with 
>> an incompatible type.
>> /tmp/patsopt_tcats_SwYDb2: 46(line=2, offs=45) -- 51(line=2, offs=50): 
>> error(3): mismatch of static terms (tyleq):
>> The actual term is: S2Etop(knd=0; S2Eapp(S2Ecst(g0int_t0ype); 
>> S2Eextkind(atstype_int)))
>> The needed term is: S2Eapp(S2Ecst(g0int_t0ype); S2Eextkind(atstype_int))
>> /tmp/patsopt_tcats_SwYDb2: 46(line=2, offs=45) -- 51(line=2, offs=50): 
>> error(3): mismatch of static terms (tyleq):
>> The actual term is: S2Eat(S2Etop(knd=0; S2Eapp(S2Ecst(g0int_t0ype); 
>> S2Eextkind(atstype_int))); S2Evar(i(4314)))
>> The needed term is: S2Eat(S2Eapp(S2Ecst(g0int_t0ype); 
>> S2Eextkind(atstype_int)); S2Evar(i(4314)))
>> /tmp/patsopt_tcats_SwYDb2: 46(line=2, offs=45) -- 51(line=2, offs=50): 
>> error(3): the dynamic expression cannot be assigned the type 
>> [S2Ecst(atsvoid_t0ype)].
>> /tmp/patsopt_tcats_SwYDb2: 46(line=2, offs=45) -- 51(line=2, offs=50): 
>> error(3): mismatch of static terms (tyleq):
>> The actual term is: S2Eapp(S2Ecst(g1uint_int_t0ype); 
>> S2Eextkind(atstype_size), S2Eapp(S2Ecst(add_int_int); S2EVar(0), 
>> S2Eintinf(1)))
>> The needed term is: S2Ecst(atsvoid_t0ype)
>> /tmp/patsopt_tcats_SwYDb2: 78(line=4, offs=26) -- 138(line=9, offs=4): 
>> error(3): the linear dynamic variable [i$view$75(-1)] is preserved but with 
>> an incompatible type.
>> /tmp/patsopt_tcats_SwYDb2: 78(line=4, offs=26) -- 138(line=9, offs=4): 
>> error(3): mismatch of static terms (tyleq):
>> The actual term is: S2Eapp(S2Ecst(g0int_t0ype); S2Eextkind(atstype_int))
>> The needed term is: S2Eapp(S2Ecst(g1int_int_t0ype); 
>> S2Eextkind(atstype_int), S2Eintinf(0))
>> /tmp/patsopt_tcats_SwYDb2: 78(line=4, offs=26) -- 138(line=9, offs=4): 
>> error(3): mismatch of static terms (tyleq):
>> The actual term is: S2Etop(knd=0; S2Eapp(S2Ecst(g0int_t0ype); 
>> S2Eextkind(atstype_int)))
>> The needed term is: S2Etop(knd=0; S2Eapp(S2Ecst(g1int_int_t0ype); 
>> S2Eextkind(atstype_int), S2Eintinf(0)))
>> /tmp/patsopt_tcats_SwYDb2: 78(line=4, offs=26) -- 138(line=9, offs=4): 
>> error(3): mismatch of static terms (tyleq):
>> The actual term is: S2Eat(S2Etop(knd=0; S2Eapp(S2Ecst(g0int_t0ype); 
>> S2Eextkind(atstype_int))); S2Evar(i(4313)))
>> The needed term is: S2Eat(S2Etop(knd=0; S2Eapp(S2Ecst(g1int_int_t0ype); 
>> S2Eextkind(atstype_int), S2Eintinf(0))); S2Evar(i(4313)))
>> patsopt(TRANS3): there are [4] errors in total.
>> exit(ATS): uncaught exception: 
>> _2home_2hwxi_2Research_2ATS_2dPostiats_2src_2pats_error_2esats__FatalErrorExn(1025)
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "ats-lang-users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to ats-lang-user...@googlegroups.com.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/ats-lang-users/b7580da8-275c-4d17-b796-90e81404ee5dn%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/ats-lang-users/b7580da8-275c-4d17-b796-90e81404ee5dn%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"ats-lang-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to ats-lang-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ats-lang-users/67c75864-2a19-4035-8c9d-33e66ca1797fn%40googlegroups.com.

Reply via email to