roc/crates/compiler/test_mono/generated/inspect_derived_string.txt
2025-01-20 19:19:43 +01:00

285 lines
10 KiB
Text
Generated

procedure Bool.1 ():
let Bool.21 : Int1 = false;
ret Bool.21;
procedure Bool.9 (#Attr.2, #Attr.3):
let Bool.22 : Int1 = lowlevel Eq #Attr.2 #Attr.3;
ret Bool.22;
procedure Bool.9 (#Attr.2, #Attr.3):
let Bool.23 : Int1 = lowlevel Eq #Attr.2 #Attr.3;
ret Bool.23;
procedure Inspect.245 (Inspect.246, Inspect.244):
let Inspect.317 : Str = "\"";
let Inspect.316 : Str = CallByName Inspect.63 Inspect.246 Inspect.317;
dec Inspect.317;
let Inspect.312 : Str = CallByName Inspect.63 Inspect.316 Inspect.244;
let Inspect.313 : Str = "\"";
let Inspect.311 : Str = CallByName Inspect.63 Inspect.312 Inspect.313;
dec Inspect.313;
ret Inspect.311;
procedure Inspect.30 (Inspect.147):
ret Inspect.147;
procedure Inspect.33 (Inspect.152):
let Inspect.300 : Str = CallByName Inspect.5 Inspect.152;
let Inspect.299 : Str = CallByName Inspect.64 Inspect.300;
ret Inspect.299;
procedure Inspect.39 (Inspect.296):
let Inspect.306 : Str = "";
ret Inspect.306;
procedure Inspect.47 (Inspect.243):
let Inspect.327 : Str = "\u{feff}";
let Inspect.328 : Str = "\\u(feff)";
let Inspect.324 : Str = CallByName Str.45 Inspect.243 Inspect.327 Inspect.328;
dec Inspect.327;
dec Inspect.328;
let Inspect.325 : Str = "\u{200b}";
let Inspect.326 : Str = "\\u(200b)";
let Inspect.321 : Str = CallByName Str.45 Inspect.324 Inspect.325 Inspect.326;
dec Inspect.326;
dec Inspect.325;
let Inspect.322 : Str = "\u{200c}";
let Inspect.323 : Str = "\\u(200c)";
let Inspect.318 : Str = CallByName Str.45 Inspect.321 Inspect.322 Inspect.323;
dec Inspect.322;
dec Inspect.323;
let Inspect.319 : Str = "\u{200d}";
let Inspect.320 : Str = "\\u(200d)";
let Inspect.244 : Str = CallByName Str.45 Inspect.318 Inspect.319 Inspect.320;
dec Inspect.319;
dec Inspect.320;
let Inspect.308 : Str = CallByName Inspect.30 Inspect.244;
ret Inspect.308;
procedure Inspect.5 (Inspect.150):
let Inspect.307 : Str = CallByName Inspect.47 Inspect.150;
let Inspect.304 : {} = Struct {};
let Inspect.303 : Str = CallByName Inspect.39 Inspect.304;
let Inspect.302 : Str = CallByName Inspect.245 Inspect.303 Inspect.307;
dec Inspect.307;
ret Inspect.302;
procedure Inspect.63 (Inspect.295, Inspect.291):
let Inspect.315 : Str = CallByName Str.3 Inspect.295 Inspect.291;
ret Inspect.315;
procedure Inspect.64 (Inspect.297):
ret Inspect.297;
procedure Num.20 (#Attr.2, #Attr.3):
let Num.288 : U64 = lowlevel NumSub #Attr.2 #Attr.3;
ret Num.288;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.290 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
ret Num.290;
procedure Num.23 (#Attr.2, #Attr.3):
let Num.292 : Int1 = lowlevel NumLte #Attr.2 #Attr.3;
ret Num.292;
procedure Num.25 (#Attr.2, #Attr.3):
let Num.289 : Int1 = lowlevel NumGte #Attr.2 #Attr.3;
ret Num.289;
procedure Num.51 (#Attr.2, #Attr.3):
let Num.286 : U64 = lowlevel NumAddWrap #Attr.2 #Attr.3;
ret Num.286;
procedure Num.53 (#Attr.2, #Attr.3):
let Num.291 : U64 = lowlevel NumAddSaturated #Attr.2 #Attr.3;
ret Num.291;
procedure Num.77 (#Attr.2, #Attr.3):
let Num.293 : U64 = lowlevel NumSubSaturated #Attr.2 #Attr.3;
ret Num.293;
procedure Str.20 (#Attr.2):
let Str.448 : Str = lowlevel StrWithCapacity #Attr.2;
ret Str.448;
procedure Str.3 (#Attr.2, #Attr.3):
let Str.380 : Str = lowlevel StrConcat #Attr.2 #Attr.3;
ret Str.380;
procedure Str.35 (#Attr.2, #Attr.3):
let Str.438 : U8 = lowlevel StrGetUnsafe #Attr.2 #Attr.3;
ret Str.438;
procedure Str.36 (#Attr.2):
let Str.400 : U64 = lowlevel StrCountUtf8Bytes #Attr.2;
ret Str.400;
procedure Str.37 (#Attr.2, #Attr.3, #Attr.4):
let Str.398 : Str = lowlevel StrSubstringUnsafe #Attr.2 #Attr.3 #Attr.4;
ret Str.398;
procedure Str.38 (Str.211, Str.212):
let Str.394 : [C , C U64] = CallByName Str.63 Str.211 Str.212;
let Str.407 : U8 = 1i64;
let Str.408 : U8 = GetTagId Str.394;
let Str.409 : Int1 = lowlevel Eq Str.407 Str.408;
if Str.409 then
let Str.213 : U64 = UnionAtIndex (Id 1) (Index 0) Str.394;
let Str.403 : U64 = CallByName Str.36 Str.211;
let Str.404 : U64 = CallByName Str.36 Str.212;
let Str.402 : U64 = CallByName Num.20 Str.403 Str.404;
let Str.214 : U64 = CallByName Num.20 Str.402 Str.213;
let Str.401 : U64 = 0i64;
inc Str.211;
let Str.215 : Str = CallByName Str.37 Str.211 Str.401 Str.213;
let Str.399 : U64 = CallByName Str.36 Str.212;
let Str.397 : U64 = CallByName Num.51 Str.213 Str.399;
let Str.216 : Str = CallByName Str.37 Str.211 Str.397 Str.214;
let Str.396 : {Str, Str} = Struct {Str.216, Str.215};
let Str.395 : [C {}, C {Str, Str}] = TagId(1) Str.396;
ret Str.395;
else
dec Str.211;
let Str.406 : {} = Struct {};
let Str.405 : [C {}, C {Str, Str}] = TagId(0) Str.406;
ret Str.405;
procedure Str.45 (Str.190, Str.191, Str.192):
inc Str.190;
let Str.476 : [C {}, C {Str, Str}] = CallByName Str.38 Str.190 Str.191;
let Str.484 : U8 = 1i64;
let Str.485 : U8 = GetTagId Str.476;
let Str.486 : Int1 = lowlevel Eq Str.484 Str.485;
if Str.486 then
let Str.483 : {Str, Str} = UnionAtIndex (Id 1) (Index 0) Str.476;
let Str.194 : Str = StructAtIndex 0 Str.483;
let Str.193 : Str = StructAtIndex 1 Str.483;
let Str.481 : U64 = CallByName Str.36 Str.190;
dec Str.190;
let Str.480 : Str = CallByName Str.20 Str.481;
let Str.479 : Str = CallByName Str.3 Str.480 Str.193;
dec Str.193;
let Str.478 : Str = CallByName Str.3 Str.479 Str.192;
let Str.477 : Str = CallByName Str.62 Str.478 Str.194 Str.191 Str.192;
ret Str.477;
else
dec Str.476;
ret Str.190;
procedure Str.62 (Bool.24, Bool.25, Bool.26, Bool.27):
joinpoint Str.384 Str.195 Str.196 Str.197 Str.198:
inc Str.196;
let Str.385 : [C {}, C {Str, Str}] = CallByName Str.38 Str.196 Str.197;
let Str.391 : U8 = 1i64;
let Str.392 : U8 = GetTagId Str.385;
let Str.393 : Int1 = lowlevel Eq Str.391 Str.392;
if Str.393 then
dec Str.196;
let Str.390 : {Str, Str} = UnionAtIndex (Id 1) (Index 0) Str.385;
let Str.200 : Str = StructAtIndex 0 Str.390;
let Str.199 : Str = StructAtIndex 1 Str.390;
let Str.388 : Str = CallByName Str.3 Str.195 Str.199;
dec Str.199;
let Str.387 : Str = CallByName Str.3 Str.388 Str.198;
jump Str.384 Str.387 Str.200 Str.197 Str.198;
else
dec Str.385;
dec Str.198;
dec Str.197;
let Str.389 : Str = CallByName Str.3 Str.195 Str.196;
dec Str.196;
ret Str.389;
in
inc Bool.26;
inc Bool.27;
jump Str.384 Bool.24 Bool.25 Bool.26 Bool.27;
procedure Str.63 (Str.220, Str.221):
let Str.222 : U64 = CallByName Str.36 Str.220;
let Str.223 : U64 = CallByName Str.36 Str.221;
let Str.224 : U64 = CallByName Num.77 Str.222 Str.223;
let Str.411 : U64 = 0i64;
let Str.410 : [C , C U64] = CallByName Str.64 Str.220 Str.221 Str.411 Str.224;
ret Str.410;
procedure Str.64 (Bool.28, Bool.29, Bool.30, Bool.31):
joinpoint Str.412 Str.225 Str.226 Str.227 Str.228:
let Str.414 : Int1 = CallByName Num.23 Str.227 Str.228;
if Str.414 then
let Str.418 : Int1 = CallByName Str.68 Str.225 Str.227 Str.226;
if Str.418 then
dec Str.226;
dec Str.225;
let Str.419 : [C , C U64] = TagId(1) Str.227;
ret Str.419;
else
let Str.417 : U64 = 1i64;
let Str.416 : U64 = CallByName Num.51 Str.227 Str.417;
jump Str.412 Str.225 Str.226 Str.416 Str.228;
else
dec Str.226;
dec Str.225;
let Str.413 : [C , C U64] = TagId(0) ;
ret Str.413;
in
inc Bool.29;
inc Bool.28;
jump Str.412 Bool.28 Bool.29 Bool.30 Bool.31;
procedure Str.67 (Str.251, Str.252):
let Str.443 : Int1 = CallByName Num.22 Str.251 Str.252;
if Str.443 then
ret Str.251;
else
ret Str.252;
procedure Str.68 (Str.253, Str.254, Str.255):
let Str.256 : U64 = CallByName Str.36 Str.253;
let Str.257 : U64 = CallByName Str.36 Str.255;
let Str.441 : U64 = CallByName Num.53 Str.254 Str.257;
let Str.258 : U64 = CallByName Str.67 Str.441 Str.256;
let Str.440 : U64 = 0i64;
inc Str.255;
inc Str.253;
let Str.421 : {U64, Str, U64, Str, U64, U64} = Struct {Str.258, Str.253, Str.254, Str.255, Str.440, Str.257};
let Str.420 : Int1 = CallByName Str.69 Str.421;
ret Str.420;
procedure Str.69 (Str.259):
let Str.265 : U64 = StructAtIndex 0 Str.259;
let Str.260 : Str = StructAtIndex 1 Str.259;
let Str.261 : U64 = StructAtIndex 2 Str.259;
let Str.262 : Str = StructAtIndex 3 Str.259;
let Str.263 : U64 = StructAtIndex 4 Str.259;
let Str.264 : U64 = StructAtIndex 5 Str.259;
let Str.266 : Int1 = CallByName Num.25 Str.261 Str.265;
if Str.266 then
dec Str.262;
dec Str.260;
let Str.267 : Int1 = CallByName Bool.9 Str.263 Str.264;
ret Str.267;
else
let Str.436 : U8 = CallByName Str.35 Str.260 Str.261;
let Str.437 : U8 = CallByName Str.35 Str.262 Str.263;
let Str.268 : Int1 = CallByName Bool.9 Str.436 Str.437;
let Str.426 : U64 = StructAtIndex 0 Str.259;
let Str.427 : Str = StructAtIndex 1 Str.259;
let Str.429 : Str = StructAtIndex 3 Str.259;
let Str.431 : U64 = StructAtIndex 5 Str.259;
let Str.435 : U64 = 1i64;
let Str.433 : U64 = CallByName Num.51 Str.263 Str.435;
let Str.434 : U64 = 1i64;
let Str.432 : U64 = CallByName Num.51 Str.261 Str.434;
let Str.425 : {U64, Str, U64, Str, U64, U64} = Struct {Str.426, Str.427, Str.432, Str.429, Str.433, Str.431};
let Str.269 : Int1 = CallByName Str.69 Str.425;
if Str.268 then
ret Str.269;
else
let Str.423 : Int1 = CallByName Bool.1;
ret Str.423;
procedure Test.0 ():
let Test.2 : Str = "abc";
let Test.1 : Str = CallByName Inspect.33 Test.2;
ret Test.1;