summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Notes/todo.txt11
1 files changed, 4 insertions, 7 deletions
diff --git a/Notes/todo.txt b/Notes/todo.txt
index cc6c160a..b1518ef4 100644
--- a/Notes/todo.txt
+++ b/Notes/todo.txt
@@ -1,11 +1,8 @@
TODO:
-- Fix handling of diverging statements at the end of a block with semicolons
- - `loop { let _: i32 = { break; }; }` should typecheck - but doesn't in mrustc due to implicit `()` added after the break's semicolon
- - Since there can be any number of statements after the diverging (as long as all are `;` terminated), the correct solution is to have a pre-pass
- that propagates `!` ivar types.
- - This should be done with help of a restructured block format - that includes a flag saying "final expression yeilds its value"
- - If this flag is unset, ! will propagate through (and () will not be applied unless there was no propagation)
- - If set, typecheck continues as normal
+- Fix method selection such that calling `let _: Foo = bar.into();` works
+ - A `From<Bar>` impl for `Foo` isn't found, becuase the code that searches for the `Into` impl doesn't know that the param is `Foo`
+ - Could have an edge case where a trait is selected if it's the only possibility (there's no other source of that method name)
+ - Correct solution would be to hand parameters to the `find_method` function.
- Audit TODOs in codebase
- Method and type monomorphisation
- Test compile against a no_std program