From 6cae457948a4aaa2f94b0bdfad8eb4ab42054751 Mon Sep 17 00:00:00 2001 From: Son Ho Date: Wed, 12 Jan 2022 14:23:20 +0100 Subject: Add a TODO.md file --- TODO.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 TODO.md diff --git a/TODO.md b/TODO.md new file mode 100644 index 00000000..864c822b --- /dev/null +++ b/TODO.md @@ -0,0 +1,24 @@ +* update assign_to_place: problem with the value to assign which is hanging in + the air. + Maybe: push it to a dummy variable?... + TODO: x = move x where x contains borrows. + I think we should move the operands to specific "temporary" variables. + +* Check what happens when symbolic borrows are not expanded (when looking for + borrows/abstractions to end). + +* Detect loops in end_borrow/end_abstraction + +* split `apply_proj_borrows` into two: + * `apply_proj_borrows_on_input_values` : ... -> value -> rty -> avalue + * `apply_proj_borrows_on_given_back_values` : ... -> value -> avalue -> avalue + +* During printing, contexts are often big, with many variables containing "bottom". + Some variables also actually never get assigned, especially when they are used + for auxiliary assignments which don't exist anymore (because they were merged + with other operations - for arithmetic operations, for instance). + Maybe we should register which variable has been assigned at least once, and + print only those (thus skipping a big part of the environment for some time). + +* Some variables have the same name. It might be good to also print their id + to disambiguate? -- cgit v1.2.3