Commit graph

27 commits

Author SHA1 Message Date
LoipesMas
a9196a9abb Add more generated files 2023-12-05 00:18:32 +01:00
Brendan Hansknecht
e1c850e2d1
update uitest and mono_test 2023-12-03 12:41:04 -08:00
Brendan Hansknecht
b04699acdf
change debug to call Inspect.inspect instead of inlining it
This is to workaround #6167 and can be reverted once it is fixed
2023-12-03 09:51:55 -08:00
Brendan Hansknecht
be17c0cadb
load world abilities sooner 2023-12-02 21:18:32 -08:00
Brendan Hansknecht
4587c4ebc5
update uitest and mono_test 2023-12-02 21:18:31 -08:00
Ayaz Hafiz
a53da2bc24
Make sure late specializations of opaques inherit Inspect as needed
A "late specialization" of a type is an ability specialization that
is not visible or needed until after type-specialization; i.e. during
monomorphization.

The `Inspect.toInspector` ability is special-cased for opaques that do
not claim or explicitly implement `Inspect`. In such cases, they are
treated as structural types, and given the immediate specialization of
`Inpect.inspectOpaque`.

However, prior to this commit, that special-casing would only be applied
during early specialiation (i.e. specializations visible during
generalized type inference). This commit applies the special case to
late specialization as well - the specialization decision for an opaque
type is always the specialization of the opaque type in the late case,
but now, when we go to look up the ambient lambda set of the
specialization, if it does not exist and corresponds to
`Inspect.toInspector`, we fall back to the immediate.

One concern I have here is that in a case like

```
Op := {}

x =
    dbg (@Op {})
```

the specialization of `Inspect.toInspector` for `Op` should be known
early. Indeed, the program

```
Op := {}

x =
    Inspect.toInspector (@Op {}) |> Inspect.apply (Inspect.init {}) |> Inspect.toDbgStr
```

Compiles fine without this change. This makes me suspect there is an
issue with the implementation of `dbg`'s desugaring. If possible, this
should be addressed sooner rather than later.

Closes #6127
2023-11-30 22:25:08 -06:00
Brendan Hansknecht
5e36395369
correct Inspect custom impl to use Inspect.apply 2023-11-28 16:40:42 -08:00
Brendan Hansknecht
4c25c60cdc
expand ui tests for inspect 2023-11-28 16:40:41 -08:00
Brendan Hansknecht
c443bdcf4f
check_adhoc for inspect 2023-11-28 16:40:41 -08:00
Brendan Hansknecht
a1a563074d
expand ui tests to numbers 2023-11-28 16:40:41 -08:00
Brendan Hansknecht
f0dee1f6e9
add missing ToInspector case 2023-11-28 16:40:40 -08:00
Brendan Hansknecht
c57bc4db11
add uitest to view bool inspect derive 2023-11-28 16:40:40 -08:00
Ayaz Hafiz
d36eba98fc
Add a few more opaque tests
`specialize/inspect/opaque_derived` does not yet pass.
2023-11-28 16:40:39 -08:00
Ayaz Hafiz
5c805ce80f
Get first inspect for non-Inspect-implementing opaques specialized 2023-11-28 16:40:39 -08:00
Isaac Van Doren
139d3c6f89
make dropFirst and dropLast drop n elements 2023-10-29 13:23:33 -05:00
Richard Feldman
7908645895
Fix more tests 2023-08-10 22:24:24 -04:00
Richard Feldman
2da41be29f
Merge remote-tracking branch 'origin/main' into abilities-syntax 2023-08-10 20:36:01 -04:00
Richard Feldman
f12b378249
cargo uitest 2023-06-27 16:20:27 -04:00
Bryce Miller
cb08225bf0
| -> where 2023-06-05 20:19:00 -04:00
Bryce Miller
ffa622e065
Merge branch 'main' into abilities-syntax
Signed-off-by: Bryce Miller <sandprickle@users.noreply.github.com>
2023-05-29 13:42:36 +02:00
Bryce Miller
c68807bc5a
has -> implements in roc code 2023-05-26 20:39:01 -04:00
Ayaz Hafiz
3585d5bb5b
Implement hash for Dec 2023-05-26 11:38:30 -05:00
Bryce Miller
91e37293a2
abilities syntax has -> implements 2023-05-24 21:29:38 -04:00
Ayaz Hafiz
67364e1a42
Migrate polymorphic lambda set specialization tests 2023-04-02 13:12:51 -05:00
Ayaz Hafiz
88b044a765
Migrate ability resolution tests 2023-04-02 13:02:01 -05:00
Ayaz Hafiz
05af17af43
Migrate even more tests 2023-04-02 12:56:01 -05:00
Ayaz Hafiz
2f43aad8d0
Move uitests to their own crate 2023-04-02 09:11:31 -05:00