-
-
Notifications
You must be signed in to change notification settings - Fork 320
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #6128 from roc-lang/debug-auto-opaque
Make sure late specializations of opaques inherit Inspect as needed
- Loading branch information
Showing
5 changed files
with
286 additions
and
91 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
54 changes: 54 additions & 0 deletions
54
crates/compiler/uitest/tests/ability/specialize/inspect/opaque_automatic.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
# +emit:mono | ||
app "test" provides [main] to "./platform" | ||
|
||
Op := {} | ||
|
||
main = | ||
dbg (@Op {}) | ||
1 | ||
|
||
# -emit:mono | ||
procedure Inspect.251 (Inspect.252): | ||
let Inspect.317 : Str = "<opaque>"; | ||
let Inspect.316 : Str = CallByName Inspect.61 Inspect.252 Inspect.317; | ||
ret Inspect.316; | ||
|
||
procedure Inspect.30 (Inspect.147): | ||
ret Inspect.147; | ||
|
||
procedure Inspect.35 (Inspect.300): | ||
ret Inspect.300; | ||
|
||
procedure Inspect.36 (Inspect.304): | ||
let Inspect.311 : Str = ""; | ||
ret Inspect.311; | ||
|
||
procedure Inspect.45 (Inspect.302): | ||
let Inspect.314 : {} = Struct {}; | ||
let Inspect.313 : {} = CallByName Inspect.30 Inspect.314; | ||
ret Inspect.313; | ||
|
||
procedure Inspect.5 (Inspect.150): | ||
let Inspect.312 : {} = CallByName Inspect.45 Inspect.150; | ||
let Inspect.309 : {} = Struct {}; | ||
let Inspect.308 : Str = CallByName Inspect.36 Inspect.309; | ||
let Inspect.307 : Str = CallByName Inspect.251 Inspect.308; | ||
ret Inspect.307; | ||
|
||
procedure Inspect.61 (Inspect.303, Inspect.298): | ||
let Inspect.319 : Str = CallByName Str.3 Inspect.303 Inspect.298; | ||
dec Inspect.298; | ||
ret Inspect.319; | ||
|
||
procedure Str.3 (#Attr.2, #Attr.3): | ||
let Str.292 : Str = lowlevel StrConcat #Attr.2 #Attr.3; | ||
ret Str.292; | ||
|
||
procedure Test.0 (): | ||
let Test.5 : {} = Struct {}; | ||
let Test.4 : Str = CallByName Inspect.5 Test.5; | ||
let Test.2 : Str = CallByName Inspect.35 Test.4; | ||
dbg Test.2; | ||
dec Test.2; | ||
let Test.3 : I64 = 1i64; | ||
ret Test.3; |
Oops, something went wrong.