Conversation
… into claudio/check-ir
…ypD, ClassD and syntactic types
…ntroduced by tailcail.ml
…uivalence check; cleanup code
…s in record types
… future, more type info)
… issue 129); fix typing error message; refactor anon identifier creation.
Fix for issue 129
The declaration syntax
```new/actor/object/shared id? =? {...};```
desugars to let binding (LetD)
```let id? = new/actor/object/shared id? =? (...) ;```
which, unfortunately, has unit type `()`.
I imagine you were (reasonably) expecting this to desugar to
a declaration expression (ExpD):
```new/actor/object/shared id? =? {...}```.
It might make more sense to only do the desugaring for declarations of the form
`new/actor/object/shared x = { }` (with an explicit `=`) but that would break current test [`tests\run\actor.as`](https://github.com/dfinity-lab/actorscript/blob/master/test/run/actors.as);
rossberg
left a comment
There was a problem hiding this comment.
Yeah, this is even more hacky now. I don't like that it now makes a difference for typing whether you give it a recursive name. But I suppose it's okay as a temporary fix.
I'm a bit confused about the gigantic set of commits in this PR, though. Something seems messed up. Can you rebase your change on master?
Btw, when you cite an issue or PR number as #129 then GitHub will automatically convert it into a link.
|
I've squashed and merged it instead of rebasing. I think the problem was because I branched of check_ir but then squashed check_ir before merging. |
| let p = VarP(xf anon $sloc) @! at $sloc in | ||
| LetD(p, ObjE(s, xf anon $sloc, efs') @? at $sloc) @? at $sloc } | ||
| let r = at $sloc in | ||
| (* desugar anonymous objects to ExpD, named ones to LetD. *) |
There was a problem hiding this comment.
Doing desugaring in the Parser causes confusing type error messages if the type checker wants to pretty print expressions, i.e. code that is different from what the user wrote.
I know it is tedious to have a large source AST that needs to be typechecked, but it is the proper thing to do. Desguaring should happen in, well, desguar.
There was a problem hiding this comment.
I'm fine with trivial desugarings like this being done in the parser. Don't think we want to print ASTs in error messages anyway, that's what source locations are for.
There was a problem hiding this comment.
But even if we don’t print actual AST fragments, there is still a risk to say “in a let-binding at …” where there isn’t a let binding there, but rather an object declaration.
But not a big deal and we have more important things to do, so I will not press this issue.
* more selective desugaring of literal objects in declarations (fix for issue 129); fix typing error message; refactor anon identifier creation.
Fix for issue 129
The declaration syntax
```new/actor/object/shared id? =? {...};```
desugars to let binding (LetD)
```let id? = new/actor/object/shared id? =? (...) ;```
which, unfortunately, has unit type `()`.
I imagine you were (reasonably) expecting this to desugar to
a declaration expression (ExpD):
```new/actor/object/shared id? =? {...}```.
It might make more sense to only do the desugaring for declarations of the form
`new/actor/object/shared x = { }` (with an explicit `=`) but that would break current test [`tests\run\actor.as`](https://github.com/dfinity-lab/actorscript/blob/master/test/run/actors.as);
## Changelog for candid: Branch: Commits: [dfinity/candid@f838407c...d768917c](dfinity/candid@f838407...d768917) * [`d768917c`](dfinity/candid@d768917) More decoding: reserved ~> null : opt _ ([dfinity/candid#134](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/134))
## Changelog for candid: Branch: Commits: [dfinity/candid@f838407c...d768917c](dfinity/candid@f838407...d768917) * [`d768917c`](dfinity/candid@d768917) More decoding: reserved ~> null : opt _ ([dfinity/candid#134](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/134))
## Changelog for ic-hs: Branch: master Commits: [dfinity/ic-hs@2c9f2ea8...67029cb8](dfinity/ic-hs@2c9f2ea...67029cb) * [`8f47bec4`](dfinity/ic-hs@8f47bec) provisional_create_canister_with_cycles takes an optional specified_id ([dfinity/ic-hs#126](https://github.com/dfinity/ic-hs/issues/126)) * [`af73f215`](dfinity/ic-hs@af73f21) Implement ic0.mint_cycles in ic-hs ([dfinity/ic-hs#127](https://github.com/dfinity/ic-hs/issues/127)) * [`cb9b35d6`](dfinity/ic-hs@cb9b35d) Support requests to a subnet ID ([dfinity/ic-hs#128](https://github.com/dfinity/ic-hs/issues/128)) * [`4cd1c3d3`](dfinity/ic-hs@4cd1c3d) charge canister http_request based on target subnet ([dfinity/ic-hs#130](https://github.com/dfinity/ic-hs/issues/130)) * [`5f07313f`](dfinity/ic-hs@5f07313) replace base64 by ascii endpoint in canister http tests ([dfinity/ic-hs#131](https://github.com/dfinity/ic-hs/issues/131)) * [`9607be0c`](dfinity/ic-hs@9607be0) omit ic-ref binary in ic-ref-test artifact ([dfinity/ic-hs#132](https://github.com/dfinity/ic-hs/issues/132)) * [`67029cb8`](dfinity/ic-hs@67029cb) RUN-509: Enable Canister Timers in pre-upgrade ([dfinity/ic-hs#134](https://github.com/dfinity/ic-hs/issues/134))
## Changelog for ic-hs: Branch: master Commits: [dfinity/ic-hs@2c9f2ea8...67029cb8](dfinity/ic-hs@2c9f2ea...67029cb) * [`8f47bec4`](dfinity/ic-hs@8f47bec) provisional_create_canister_with_cycles takes an optional specified_id ([dfinity/ic-hs#126](https://github.com/dfinity/ic-hs/issues/126)) * [`af73f215`](dfinity/ic-hs@af73f21) Implement ic0.mint_cycles in ic-hs ([dfinity/ic-hs#127](https://github.com/dfinity/ic-hs/issues/127)) * [`cb9b35d6`](dfinity/ic-hs@cb9b35d) Support requests to a subnet ID ([dfinity/ic-hs#128](https://github.com/dfinity/ic-hs/issues/128)) * [`4cd1c3d3`](dfinity/ic-hs@4cd1c3d) charge canister http_request based on target subnet ([dfinity/ic-hs#130](https://github.com/dfinity/ic-hs/issues/130)) * [`5f07313f`](dfinity/ic-hs@5f07313) replace base64 by ascii endpoint in canister http tests ([dfinity/ic-hs#131](https://github.com/dfinity/ic-hs/issues/131)) * [`9607be0c`](dfinity/ic-hs@9607be0) omit ic-ref binary in ic-ref-test artifact ([dfinity/ic-hs#132](https://github.com/dfinity/ic-hs/issues/132)) * [`67029cb8`](dfinity/ic-hs@67029cb) RUN-509: Enable Canister Timers in pre-upgrade ([dfinity/ic-hs#134](https://github.com/dfinity/ic-hs/issues/134))
## Changelog for ic-hs: Branch: master Commits: [dfinity/ic-hs@2c9f2ea8...67029cb8](dfinity/ic-hs@2c9f2ea...67029cb) * [`8f47bec4`](dfinity/ic-hs@8f47bec) provisional_create_canister_with_cycles takes an optional specified_id ([dfinity/ic-hs#126](https://github.com/dfinity/ic-hs/issues/126)) * [`af73f215`](dfinity/ic-hs@af73f21) Implement ic0.mint_cycles in ic-hs ([dfinity/ic-hs#127](https://github.com/dfinity/ic-hs/issues/127)) * [`cb9b35d6`](dfinity/ic-hs@cb9b35d) Support requests to a subnet ID ([dfinity/ic-hs#128](https://github.com/dfinity/ic-hs/issues/128)) * [`4cd1c3d3`](dfinity/ic-hs@4cd1c3d) charge canister http_request based on target subnet ([dfinity/ic-hs#130](https://github.com/dfinity/ic-hs/issues/130)) * [`5f07313f`](dfinity/ic-hs@5f07313) replace base64 by ascii endpoint in canister http tests ([dfinity/ic-hs#131](https://github.com/dfinity/ic-hs/issues/131)) * [`9607be0c`](dfinity/ic-hs@9607be0) omit ic-ref binary in ic-ref-test artifact ([dfinity/ic-hs#132](https://github.com/dfinity/ic-hs/issues/132)) * [`67029cb8`](dfinity/ic-hs@67029cb) RUN-509: Enable Canister Timers in pre-upgrade ([dfinity/ic-hs#134](https://github.com/dfinity/ic-hs/issues/134))
## Changelog for ic-hs: Branch: master Commits: [dfinity/ic-hs@2c9f2ea8...67029cb8](dfinity/ic-hs@2c9f2ea...67029cb) * [`8f47bec4`](dfinity/ic-hs@8f47bec) provisional_create_canister_with_cycles takes an optional specified_id ([dfinity/ic-hs#126](https://github.com/dfinity/ic-hs/issues/126)) * [`af73f215`](dfinity/ic-hs@af73f21) Implement ic0.mint_cycles in ic-hs ([dfinity/ic-hs#127](https://github.com/dfinity/ic-hs/issues/127)) * [`cb9b35d6`](dfinity/ic-hs@cb9b35d) Support requests to a subnet ID ([dfinity/ic-hs#128](https://github.com/dfinity/ic-hs/issues/128)) * [`4cd1c3d3`](dfinity/ic-hs@4cd1c3d) charge canister http_request based on target subnet ([dfinity/ic-hs#130](https://github.com/dfinity/ic-hs/issues/130)) * [`5f07313f`](dfinity/ic-hs@5f07313) replace base64 by ascii endpoint in canister http tests ([dfinity/ic-hs#131](https://github.com/dfinity/ic-hs/issues/131)) * [`9607be0c`](dfinity/ic-hs@9607be0) omit ic-ref binary in ic-ref-test artifact ([dfinity/ic-hs#132](https://github.com/dfinity/ic-hs/issues/132)) * [`67029cb8`](dfinity/ic-hs@67029cb) RUN-509: Enable Canister Timers in pre-upgrade ([dfinity/ic-hs#134](https://github.com/dfinity/ic-hs/issues/134))
## Changelog for ic-hs: Branch: master Commits: [dfinity/ic-hs@2c9f2ea8...67029cb8](dfinity/ic-hs@2c9f2ea...67029cb) * [`8f47bec4`](dfinity/ic-hs@8f47bec) provisional_create_canister_with_cycles takes an optional specified_id ([dfinity/ic-hs#126](https://github.com/dfinity/ic-hs/issues/126)) * [`af73f215`](dfinity/ic-hs@af73f21) Implement ic0.mint_cycles in ic-hs ([dfinity/ic-hs#127](https://github.com/dfinity/ic-hs/issues/127)) * [`cb9b35d6`](dfinity/ic-hs@cb9b35d) Support requests to a subnet ID ([dfinity/ic-hs#128](https://github.com/dfinity/ic-hs/issues/128)) * [`4cd1c3d3`](dfinity/ic-hs@4cd1c3d) charge canister http_request based on target subnet ([dfinity/ic-hs#130](https://github.com/dfinity/ic-hs/issues/130)) * [`5f07313f`](dfinity/ic-hs@5f07313) replace base64 by ascii endpoint in canister http tests ([dfinity/ic-hs#131](https://github.com/dfinity/ic-hs/issues/131)) * [`9607be0c`](dfinity/ic-hs@9607be0) omit ic-ref binary in ic-ref-test artifact ([dfinity/ic-hs#132](https://github.com/dfinity/ic-hs/issues/132)) * [`67029cb8`](dfinity/ic-hs@67029cb) RUN-509: Enable Canister Timers in pre-upgrade ([dfinity/ic-hs#134](https://github.com/dfinity/ic-hs/issues/134))
## Changelog for ic-hs: Branch: master Commits: [dfinity/ic-hs@2c9f2ea8...67029cb8](dfinity/ic-hs@2c9f2ea...67029cb) * [`8f47bec4`](dfinity/ic-hs@8f47bec) provisional_create_canister_with_cycles takes an optional specified_id ([dfinity/ic-hs#126](https://github.com/dfinity/ic-hs/issues/126)) * [`af73f215`](dfinity/ic-hs@af73f21) Implement ic0.mint_cycles in ic-hs ([dfinity/ic-hs#127](https://github.com/dfinity/ic-hs/issues/127)) * [`cb9b35d6`](dfinity/ic-hs@cb9b35d) Support requests to a subnet ID ([dfinity/ic-hs#128](https://github.com/dfinity/ic-hs/issues/128)) * [`4cd1c3d3`](dfinity/ic-hs@4cd1c3d) charge canister http_request based on target subnet ([dfinity/ic-hs#130](https://github.com/dfinity/ic-hs/issues/130)) * [`5f07313f`](dfinity/ic-hs@5f07313) replace base64 by ascii endpoint in canister http tests ([dfinity/ic-hs#131](https://github.com/dfinity/ic-hs/issues/131)) * [`9607be0c`](dfinity/ic-hs@9607be0) omit ic-ref binary in ic-ref-test artifact ([dfinity/ic-hs#132](https://github.com/dfinity/ic-hs/issues/132)) * [`67029cb8`](dfinity/ic-hs@67029cb) RUN-509: Enable Canister Timers in pre-upgrade ([dfinity/ic-hs#134](https://github.com/dfinity/ic-hs/issues/134))
## Changelog for ic-hs: Branch: master Commits: [dfinity/ic-hs@2c9f2ea8...52736f33](dfinity/ic-hs@2c9f2ea...52736f3) * [`8f47bec4`](dfinity/ic-hs@8f47bec) provisional_create_canister_with_cycles takes an optional specified_id ([dfinity/ic-hs#126](https://github.com/dfinity/ic-hs/issues/126)) * [`af73f215`](dfinity/ic-hs@af73f21) Implement ic0.mint_cycles in ic-hs ([dfinity/ic-hs#127](https://github.com/dfinity/ic-hs/issues/127)) * [`cb9b35d6`](dfinity/ic-hs@cb9b35d) Support requests to a subnet ID ([dfinity/ic-hs#128](https://github.com/dfinity/ic-hs/issues/128)) * [`4cd1c3d3`](dfinity/ic-hs@4cd1c3d) charge canister http_request based on target subnet ([dfinity/ic-hs#130](https://github.com/dfinity/ic-hs/issues/130)) * [`5f07313f`](dfinity/ic-hs@5f07313) replace base64 by ascii endpoint in canister http tests ([dfinity/ic-hs#131](https://github.com/dfinity/ic-hs/issues/131)) * [`9607be0c`](dfinity/ic-hs@9607be0) omit ic-ref binary in ic-ref-test artifact ([dfinity/ic-hs#132](https://github.com/dfinity/ic-hs/issues/132)) * [`67029cb8`](dfinity/ic-hs@67029cb) RUN-509: Enable Canister Timers in pre-upgrade ([dfinity/ic-hs#134](https://github.com/dfinity/ic-hs/issues/134)) * [`52736f33`](dfinity/ic-hs@52736f3) add test for timer in post-upgrade on stopped and stopping canister ([dfinity/ic-hs#133](https://github.com/dfinity/ic-hs/issues/133))
## Changelog for ic-hs: Branch: master Commits: [dfinity/ic-hs@2c9f2ea8...ed328b87](dfinity/ic-hs@2c9f2ea...ed328b8) * [`8f47bec4`](dfinity/ic-hs@8f47bec) provisional_create_canister_with_cycles takes an optional specified_id ([dfinity/ic-hs#126](https://github.com/dfinity/ic-hs/issues/126)) * [`af73f215`](dfinity/ic-hs@af73f21) Implement ic0.mint_cycles in ic-hs ([dfinity/ic-hs#127](https://github.com/dfinity/ic-hs/issues/127)) * [`cb9b35d6`](dfinity/ic-hs@cb9b35d) Support requests to a subnet ID ([dfinity/ic-hs#128](https://github.com/dfinity/ic-hs/issues/128)) * [`4cd1c3d3`](dfinity/ic-hs@4cd1c3d) charge canister http_request based on target subnet ([dfinity/ic-hs#130](https://github.com/dfinity/ic-hs/issues/130)) * [`5f07313f`](dfinity/ic-hs@5f07313) replace base64 by ascii endpoint in canister http tests ([dfinity/ic-hs#131](https://github.com/dfinity/ic-hs/issues/131)) * [`9607be0c`](dfinity/ic-hs@9607be0) omit ic-ref binary in ic-ref-test artifact ([dfinity/ic-hs#132](https://github.com/dfinity/ic-hs/issues/132)) * [`67029cb8`](dfinity/ic-hs@67029cb) RUN-509: Enable Canister Timers in pre-upgrade ([dfinity/ic-hs#134](https://github.com/dfinity/ic-hs/issues/134)) * [`52736f33`](dfinity/ic-hs@52736f3) add test for timer in post-upgrade on stopped and stopping canister ([dfinity/ic-hs#133](https://github.com/dfinity/ic-hs/issues/133)) * [`ed328b87`](dfinity/ic-hs@ed328b8) implement canister range checks in ic-ref-test ([dfinity/ic-hs#135](https://github.com/dfinity/ic-hs/issues/135))
## Changelog for ic-hs: Branch: master Commits: [dfinity/ic-hs@2c9f2ea8...ed328b87](dfinity/ic-hs@2c9f2ea...ed328b8) * [`8f47bec4`](dfinity/ic-hs@8f47bec) provisional_create_canister_with_cycles takes an optional specified_id ([dfinity/ic-hs#126](https://github.com/dfinity/ic-hs/issues/126)) * [`af73f215`](dfinity/ic-hs@af73f21) Implement ic0.mint_cycles in ic-hs ([dfinity/ic-hs#127](https://github.com/dfinity/ic-hs/issues/127)) * [`cb9b35d6`](dfinity/ic-hs@cb9b35d) Support requests to a subnet ID ([dfinity/ic-hs#128](https://github.com/dfinity/ic-hs/issues/128)) * [`4cd1c3d3`](dfinity/ic-hs@4cd1c3d) charge canister http_request based on target subnet ([dfinity/ic-hs#130](https://github.com/dfinity/ic-hs/issues/130)) * [`5f07313f`](dfinity/ic-hs@5f07313) replace base64 by ascii endpoint in canister http tests ([dfinity/ic-hs#131](https://github.com/dfinity/ic-hs/issues/131)) * [`9607be0c`](dfinity/ic-hs@9607be0) omit ic-ref binary in ic-ref-test artifact ([dfinity/ic-hs#132](https://github.com/dfinity/ic-hs/issues/132)) * [`67029cb8`](dfinity/ic-hs@67029cb) RUN-509: Enable Canister Timers in pre-upgrade ([dfinity/ic-hs#134](https://github.com/dfinity/ic-hs/issues/134)) * [`52736f33`](dfinity/ic-hs@52736f3) add test for timer in post-upgrade on stopped and stopping canister ([dfinity/ic-hs#133](https://github.com/dfinity/ic-hs/issues/133)) * [`ed328b87`](dfinity/ic-hs@ed328b8) implement canister range checks in ic-ref-test ([dfinity/ic-hs#135](https://github.com/dfinity/ic-hs/issues/135))
## Changelog for ic-hs: Branch: master Commits: [dfinity/ic-hs@2c9f2ea8...ed328b87](dfinity/ic-hs@2c9f2ea...ed328b8) * [`8f47bec4`](dfinity/ic-hs@8f47bec) provisional_create_canister_with_cycles takes an optional specified_id ([dfinity/ic-hs#126](https://github.com/dfinity/ic-hs/issues/126)) * [`af73f215`](dfinity/ic-hs@af73f21) Implement ic0.mint_cycles in ic-hs ([dfinity/ic-hs#127](https://github.com/dfinity/ic-hs/issues/127)) * [`cb9b35d6`](dfinity/ic-hs@cb9b35d) Support requests to a subnet ID ([dfinity/ic-hs#128](https://github.com/dfinity/ic-hs/issues/128)) * [`4cd1c3d3`](dfinity/ic-hs@4cd1c3d) charge canister http_request based on target subnet ([dfinity/ic-hs#130](https://github.com/dfinity/ic-hs/issues/130)) * [`5f07313f`](dfinity/ic-hs@5f07313) replace base64 by ascii endpoint in canister http tests ([dfinity/ic-hs#131](https://github.com/dfinity/ic-hs/issues/131)) * [`9607be0c`](dfinity/ic-hs@9607be0) omit ic-ref binary in ic-ref-test artifact ([dfinity/ic-hs#132](https://github.com/dfinity/ic-hs/issues/132)) * [`67029cb8`](dfinity/ic-hs@67029cb) RUN-509: Enable Canister Timers in pre-upgrade ([dfinity/ic-hs#134](https://github.com/dfinity/ic-hs/issues/134)) * [`52736f33`](dfinity/ic-hs@52736f3) add test for timer in post-upgrade on stopped and stopping canister ([dfinity/ic-hs#133](https://github.com/dfinity/ic-hs/issues/133)) * [`ed328b87`](dfinity/ic-hs@ed328b8) implement canister range checks in ic-ref-test ([dfinity/ic-hs#135](https://github.com/dfinity/ic-hs/issues/135))
## Changelog for ic-hs: Branch: master Commits: [dfinity/ic-hs@2c9f2ea8...e29764e9](dfinity/ic-hs@2c9f2ea...e29764e) * [`8f47bec4`](dfinity/ic-hs@8f47bec) provisional_create_canister_with_cycles takes an optional specified_id ([dfinity/ic-hs#126](https://github.com/dfinity/ic-hs/issues/126)) * [`af73f215`](dfinity/ic-hs@af73f21) Implement ic0.mint_cycles in ic-hs ([dfinity/ic-hs#127](https://github.com/dfinity/ic-hs/issues/127)) * [`cb9b35d6`](dfinity/ic-hs@cb9b35d) Support requests to a subnet ID ([dfinity/ic-hs#128](https://github.com/dfinity/ic-hs/issues/128)) * [`4cd1c3d3`](dfinity/ic-hs@4cd1c3d) charge canister http_request based on target subnet ([dfinity/ic-hs#130](https://github.com/dfinity/ic-hs/issues/130)) * [`5f07313f`](dfinity/ic-hs@5f07313) replace base64 by ascii endpoint in canister http tests ([dfinity/ic-hs#131](https://github.com/dfinity/ic-hs/issues/131)) * [`9607be0c`](dfinity/ic-hs@9607be0) omit ic-ref binary in ic-ref-test artifact ([dfinity/ic-hs#132](https://github.com/dfinity/ic-hs/issues/132)) * [`67029cb8`](dfinity/ic-hs@67029cb) RUN-509: Enable Canister Timers in pre-upgrade ([dfinity/ic-hs#134](https://github.com/dfinity/ic-hs/issues/134)) * [`52736f33`](dfinity/ic-hs@52736f3) add test for timer in post-upgrade on stopped and stopping canister ([dfinity/ic-hs#133](https://github.com/dfinity/ic-hs/issues/133)) * [`ed328b87`](dfinity/ic-hs@ed328b8) implement canister range checks in ic-ref-test ([dfinity/ic-hs#135](https://github.com/dfinity/ic-hs/issues/135)) * [`e29764e9`](dfinity/ic-hs@e29764e) fix conditions on read_state requests ([dfinity/ic-hs#136](https://github.com/dfinity/ic-hs/issues/136))
## Changelog for ic-hs: Branch: master Commits: [dfinity/ic-hs@2c9f2ea8...ebedfe6e](dfinity/ic-hs@2c9f2ea...ebedfe6) * [`8f47bec4`](dfinity/ic-hs@8f47bec) provisional_create_canister_with_cycles takes an optional specified_id ([dfinity/ic-hs#126](https://github.com/dfinity/ic-hs/issues/126)) * [`af73f215`](dfinity/ic-hs@af73f21) Implement ic0.mint_cycles in ic-hs ([dfinity/ic-hs#127](https://github.com/dfinity/ic-hs/issues/127)) * [`cb9b35d6`](dfinity/ic-hs@cb9b35d) Support requests to a subnet ID ([dfinity/ic-hs#128](https://github.com/dfinity/ic-hs/issues/128)) * [`4cd1c3d3`](dfinity/ic-hs@4cd1c3d) charge canister http_request based on target subnet ([dfinity/ic-hs#130](https://github.com/dfinity/ic-hs/issues/130)) * [`5f07313f`](dfinity/ic-hs@5f07313) replace base64 by ascii endpoint in canister http tests ([dfinity/ic-hs#131](https://github.com/dfinity/ic-hs/issues/131)) * [`9607be0c`](dfinity/ic-hs@9607be0) omit ic-ref binary in ic-ref-test artifact ([dfinity/ic-hs#132](https://github.com/dfinity/ic-hs/issues/132)) * [`67029cb8`](dfinity/ic-hs@67029cb) RUN-509: Enable Canister Timers in pre-upgrade ([dfinity/ic-hs#134](https://github.com/dfinity/ic-hs/issues/134)) * [`52736f33`](dfinity/ic-hs@52736f3) add test for timer in post-upgrade on stopped and stopping canister ([dfinity/ic-hs#133](https://github.com/dfinity/ic-hs/issues/133)) * [`ed328b87`](dfinity/ic-hs@ed328b8) implement canister range checks in ic-ref-test ([dfinity/ic-hs#135](https://github.com/dfinity/ic-hs/issues/135)) * [`e29764e9`](dfinity/ic-hs@e29764e) fix conditions on read_state requests ([dfinity/ic-hs#136](https://github.com/dfinity/ic-hs/issues/136)) * [`ebedfe6e`](dfinity/ic-hs@ebedfe6) make nonexisting canister id in the subnet's ranges ([dfinity/ic-hs#137](https://github.com/dfinity/ic-hs/issues/137))
## Changelog for ic-hs: Branch: master Commits: [dfinity/ic-hs@2c9f2ea8...80875f3a](dfinity/ic-hs@2c9f2ea...80875f3) * [`8f47bec4`](dfinity/ic-hs@8f47bec) provisional_create_canister_with_cycles takes an optional specified_id ([dfinity/ic-hs#126](https://github.com/dfinity/ic-hs/issues/126)) * [`af73f215`](dfinity/ic-hs@af73f21) Implement ic0.mint_cycles in ic-hs ([dfinity/ic-hs#127](https://github.com/dfinity/ic-hs/issues/127)) * [`cb9b35d6`](dfinity/ic-hs@cb9b35d) Support requests to a subnet ID ([dfinity/ic-hs#128](https://github.com/dfinity/ic-hs/issues/128)) * [`4cd1c3d3`](dfinity/ic-hs@4cd1c3d) charge canister http_request based on target subnet ([dfinity/ic-hs#130](https://github.com/dfinity/ic-hs/issues/130)) * [`5f07313f`](dfinity/ic-hs@5f07313) replace base64 by ascii endpoint in canister http tests ([dfinity/ic-hs#131](https://github.com/dfinity/ic-hs/issues/131)) * [`9607be0c`](dfinity/ic-hs@9607be0) omit ic-ref binary in ic-ref-test artifact ([dfinity/ic-hs#132](https://github.com/dfinity/ic-hs/issues/132)) * [`67029cb8`](dfinity/ic-hs@67029cb) RUN-509: Enable Canister Timers in pre-upgrade ([dfinity/ic-hs#134](https://github.com/dfinity/ic-hs/issues/134)) * [`52736f33`](dfinity/ic-hs@52736f3) add test for timer in post-upgrade on stopped and stopping canister ([dfinity/ic-hs#133](https://github.com/dfinity/ic-hs/issues/133)) * [`ed328b87`](dfinity/ic-hs@ed328b8) implement canister range checks in ic-ref-test ([dfinity/ic-hs#135](https://github.com/dfinity/ic-hs/issues/135)) * [`e29764e9`](dfinity/ic-hs@e29764e) fix conditions on read_state requests ([dfinity/ic-hs#136](https://github.com/dfinity/ic-hs/issues/136)) * [`ebedfe6e`](dfinity/ic-hs@ebedfe6) make nonexisting canister id in the subnet's ranges ([dfinity/ic-hs#137](https://github.com/dfinity/ic-hs/issues/137)) * [`80875f3a`](dfinity/ic-hs@80875f3) increase error msg length limit ([dfinity/ic-hs#139](https://github.com/dfinity/ic-hs/issues/139))
## Changelog for ic-hs: Branch: master Commits: [dfinity/ic-hs@2c9f2ea8...80875f3a](dfinity/ic-hs@2c9f2ea...80875f3) * [`8f47bec4`](dfinity/ic-hs@8f47bec) provisional_create_canister_with_cycles takes an optional specified_id ([dfinity/ic-hs#126](https://github.com/dfinity/ic-hs/issues/126)) * [`af73f215`](dfinity/ic-hs@af73f21) Implement ic0.mint_cycles in ic-hs ([dfinity/ic-hs#127](https://github.com/dfinity/ic-hs/issues/127)) * [`cb9b35d6`](dfinity/ic-hs@cb9b35d) Support requests to a subnet ID ([dfinity/ic-hs#128](https://github.com/dfinity/ic-hs/issues/128)) * [`4cd1c3d3`](dfinity/ic-hs@4cd1c3d) charge canister http_request based on target subnet ([dfinity/ic-hs#130](https://github.com/dfinity/ic-hs/issues/130)) * [`5f07313f`](dfinity/ic-hs@5f07313) replace base64 by ascii endpoint in canister http tests ([dfinity/ic-hs#131](https://github.com/dfinity/ic-hs/issues/131)) * [`9607be0c`](dfinity/ic-hs@9607be0) omit ic-ref binary in ic-ref-test artifact ([dfinity/ic-hs#132](https://github.com/dfinity/ic-hs/issues/132)) * [`67029cb8`](dfinity/ic-hs@67029cb) RUN-509: Enable Canister Timers in pre-upgrade ([dfinity/ic-hs#134](https://github.com/dfinity/ic-hs/issues/134)) * [`52736f33`](dfinity/ic-hs@52736f3) add test for timer in post-upgrade on stopped and stopping canister ([dfinity/ic-hs#133](https://github.com/dfinity/ic-hs/issues/133)) * [`ed328b87`](dfinity/ic-hs@ed328b8) implement canister range checks in ic-ref-test ([dfinity/ic-hs#135](https://github.com/dfinity/ic-hs/issues/135)) * [`e29764e9`](dfinity/ic-hs@e29764e) fix conditions on read_state requests ([dfinity/ic-hs#136](https://github.com/dfinity/ic-hs/issues/136)) * [`ebedfe6e`](dfinity/ic-hs@ebedfe6) make nonexisting canister id in the subnet's ranges ([dfinity/ic-hs#137](https://github.com/dfinity/ic-hs/issues/137)) * [`80875f3a`](dfinity/ic-hs@80875f3) increase error msg length limit ([dfinity/ic-hs#139](https://github.com/dfinity/ic-hs/issues/139))
## Changelog for ic-hs: Branch: master Commits: [dfinity/ic-hs@2c9f2ea8...80875f3a](dfinity/ic-hs@2c9f2ea...80875f3) * [`8f47bec4`](dfinity/ic-hs@8f47bec) provisional_create_canister_with_cycles takes an optional specified_id ([dfinity/ic-hs#126](https://github.com/dfinity/ic-hs/issues/126)) * [`af73f215`](dfinity/ic-hs@af73f21) Implement ic0.mint_cycles in ic-hs ([dfinity/ic-hs#127](https://github.com/dfinity/ic-hs/issues/127)) * [`cb9b35d6`](dfinity/ic-hs@cb9b35d) Support requests to a subnet ID ([dfinity/ic-hs#128](https://github.com/dfinity/ic-hs/issues/128)) * [`4cd1c3d3`](dfinity/ic-hs@4cd1c3d) charge canister http_request based on target subnet ([dfinity/ic-hs#130](https://github.com/dfinity/ic-hs/issues/130)) * [`5f07313f`](dfinity/ic-hs@5f07313) replace base64 by ascii endpoint in canister http tests ([dfinity/ic-hs#131](https://github.com/dfinity/ic-hs/issues/131)) * [`9607be0c`](dfinity/ic-hs@9607be0) omit ic-ref binary in ic-ref-test artifact ([dfinity/ic-hs#132](https://github.com/dfinity/ic-hs/issues/132)) * [`67029cb8`](dfinity/ic-hs@67029cb) RUN-509: Enable Canister Timers in pre-upgrade ([dfinity/ic-hs#134](https://github.com/dfinity/ic-hs/issues/134)) * [`52736f33`](dfinity/ic-hs@52736f3) add test for timer in post-upgrade on stopped and stopping canister ([dfinity/ic-hs#133](https://github.com/dfinity/ic-hs/issues/133)) * [`ed328b87`](dfinity/ic-hs@ed328b8) implement canister range checks in ic-ref-test ([dfinity/ic-hs#135](https://github.com/dfinity/ic-hs/issues/135)) * [`e29764e9`](dfinity/ic-hs@e29764e) fix conditions on read_state requests ([dfinity/ic-hs#136](https://github.com/dfinity/ic-hs/issues/136)) * [`ebedfe6e`](dfinity/ic-hs@ebedfe6) make nonexisting canister id in the subnet's ranges ([dfinity/ic-hs#137](https://github.com/dfinity/ic-hs/issues/137)) * [`80875f3a`](dfinity/ic-hs@80875f3) increase error msg length limit ([dfinity/ic-hs#139](https://github.com/dfinity/ic-hs/issues/139))
… issue 129); fix typing error message; refactor anon identifier creation.
Fix for issue 129
The declaration syntax
new/actor/object/shared id? =? {...};desugars to let binding (LetD)
let id? = new/actor/object/shared id? =? (...) ;which, unfortunately, has unit type
().One would reasonably expect this to desugar to
a declaration expression (ExpD):
new/actor/object/shared id? =? {...}.It might make more sense to only do the desugaring for declarations of the form
new/actor/object/shared x = { }(with an explicit=) but that would break current testtests\run\actor.as;