summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Hodge <tpg@mutabah.net>2016-09-15 10:57:25 +0800
committerJohn Hodge <tpg@mutabah.net>2016-09-15 11:20:13 +0800
commit7b5a16e7a6868d7fc2e973247885df1d3ab6d799 (patch)
treee0862fdd1e4018a312f723aa77b05643dfe1f904
parent46f08d7173f621884c44003e5d730d7118fb0881 (diff)
downloadmrust-7b5a16e7a6868d7fc2e973247885df1d3ab6d799.tar.gz
TODO - Remove now-implemented fix, add new TODO for current blocker
-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