mirror of
https://github.com/roc-lang/roc.git
synced 2025-08-04 12:18:19 +00:00
Do not attempt to handle aliasing of procs in variable assignments
Please see the comment in the diff to explain the rationale of this change. Closes #4636
This commit is contained in:
parent
2dfe0276e4
commit
68e364d897
10 changed files with 119 additions and 31 deletions
|
@ -0,0 +1,13 @@
|
|||
procedure Test.1 (Test.5):
|
||||
let Test.9 : U64 = 1i64;
|
||||
ret Test.9;
|
||||
|
||||
procedure Test.2 (Test.3):
|
||||
let Test.8 : {} = Struct {};
|
||||
let Test.7 : U64 = CallByName Test.1 Test.8;
|
||||
ret Test.7;
|
||||
|
||||
procedure Test.0 ():
|
||||
let Test.4 : {} = Struct {};
|
||||
let Test.6 : U64 = CallByName Test.2 Test.4;
|
||||
ret Test.6;
|
|
@ -1,7 +1,8 @@
|
|||
procedure Test.2 (Test.3):
|
||||
procedure Test.1 (Test.3):
|
||||
ret Test.3;
|
||||
|
||||
procedure Test.0 ():
|
||||
let Test.2 : {} = Struct {};
|
||||
let Test.6 : I64 = 42i64;
|
||||
let Test.5 : I64 = CallByName Test.2 Test.6;
|
||||
let Test.5 : I64 = CallByName Test.1 Test.6;
|
||||
ret Test.5;
|
||||
|
|
|
@ -14,12 +14,12 @@ procedure Test.16 (Test.54):
|
|||
ret Test.56;
|
||||
|
||||
procedure Test.2 (Test.7, Test.8):
|
||||
let Test.9 : [C {} {}, C {} {}] = TagId(0) Test.7 Test.8;
|
||||
ret Test.9;
|
||||
let Test.30 : [C {} {}, C {} {}] = TagId(0) Test.7 Test.8;
|
||||
ret Test.30;
|
||||
|
||||
procedure Test.2 (Test.7, Test.8):
|
||||
let Test.9 : [C {} {}, C {} {}] = TagId(1) Test.7 Test.8;
|
||||
ret Test.9;
|
||||
let Test.44 : [C {} {}, C {} {}] = TagId(1) Test.7 Test.8;
|
||||
ret Test.44;
|
||||
|
||||
procedure Test.3 (Test.17):
|
||||
let Test.36 : {} = Struct {};
|
||||
|
|
|
@ -49,8 +49,8 @@ procedure Test.0 ():
|
|||
jump Test.16 Test.17;
|
||||
|
||||
case 1:
|
||||
let Test.2 : [C , C U64, C {}] = TagId(0) ;
|
||||
jump Test.16 Test.2;
|
||||
let Test.23 : [C , C U64, C {}] = TagId(0) ;
|
||||
jump Test.16 Test.23;
|
||||
|
||||
default:
|
||||
let Test.26 : U64 = 1i64;
|
||||
|
|
|
@ -50,8 +50,8 @@ procedure Test.0 ():
|
|||
in
|
||||
let Test.23 : Int1 = CallByName Bool.2;
|
||||
if Test.23 then
|
||||
let Test.7 : [C I64, C I64 Int1] = TagId(0) Test.4;
|
||||
jump Test.20 Test.7;
|
||||
let Test.19 : [C I64, C I64 Int1] = TagId(0) Test.4;
|
||||
jump Test.20 Test.19;
|
||||
else
|
||||
let Test.8 : [C I64, C I64 Int1] = TagId(1) Test.5 Test.6;
|
||||
jump Test.20 Test.8;
|
||||
let Test.19 : [C I64, C I64 Int1] = TagId(1) Test.5 Test.6;
|
||||
jump Test.20 Test.19;
|
||||
|
|
|
@ -41,8 +41,8 @@ procedure Test.0 ():
|
|||
in
|
||||
let Test.20 : Int1 = CallByName Bool.2;
|
||||
if Test.20 then
|
||||
let Test.6 : [C I64, C I64] = TagId(0) Test.4;
|
||||
jump Test.18 Test.6;
|
||||
let Test.17 : [C I64, C I64] = TagId(0) Test.4;
|
||||
jump Test.18 Test.17;
|
||||
else
|
||||
let Test.7 : [C I64, C I64] = TagId(1) Test.5;
|
||||
jump Test.18 Test.7;
|
||||
let Test.17 : [C I64, C I64] = TagId(1) Test.5;
|
||||
jump Test.18 Test.17;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
procedure Test.1 (Test.2):
|
||||
let Test.3 : Int1 = false;
|
||||
ret Test.3;
|
||||
let Test.14 : Int1 = false;
|
||||
ret Test.14;
|
||||
|
||||
procedure Test.3 (Test.13):
|
||||
let Test.15 : Str = "t1";
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue