diff options
author | John Hodge <tpg@mutabah.net> | 2016-10-27 23:37:16 +0800 |
---|---|---|
committer | John Hodge <tpg@mutabah.net> | 2016-10-27 23:37:16 +0800 |
commit | 7043b5e43d7d6a461713bd5c38bd968f5d3cf83f (patch) | |
tree | d6290b7898a592ddc133cabeac523011e00769a3 /Notes | |
parent | 28902fd02a6e4ad750b70ea8d0406b7bd976a323 (diff) | |
download | mrust-7043b5e43d7d6a461713bd5c38bd968f5d3cf83f.tar.gz |
Notes - TODO update and a quirk
Diffstat (limited to 'Notes')
-rw-r--r-- | Notes/Quirks.md | 7 | ||||
-rw-r--r-- | Notes/todo.txt | 9 |
2 files changed, 11 insertions, 5 deletions
diff --git a/Notes/Quirks.md b/Notes/Quirks.md index e9e8e077..b312dfec 100644 --- a/Notes/Quirks.md +++ b/Notes/Quirks.md @@ -15,7 +15,7 @@ fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { Method call on a statement-like match -The `ident` fragment matches reserved words +The `ident` fragment matches ?some reserved words === Typically used for replacing `self` in macros. @@ -40,4 +40,7 @@ _Unconfirmed_ `<Foo>::SOMECONST` can either refer to `impl Foo { const SOMECONST... } or `impl Trait for Foo { const SOMECONST ... }` - +Blocks that don't yield a value can mark as diverged if ?any statement diverges +============= +- This includes any function call (or method call) +- TODO: Is this just the last statement? or all statements diff --git a/Notes/todo.txt b/Notes/todo.txt index 6f5167f9..6470c9ff 100644 --- a/Notes/todo.txt +++ b/Notes/todo.txt @@ -1,18 +1,21 @@ TODO: -- Fix macro_rules! to allow librustc_llvm to compile (bitflags quirk) - - Problem: Two near-identical arms and chosing to recurse in both +- Implement asm! macro fully - Get all run-pass and run-fail tests passing resolve - Lots of fixes to do here + - Including a quirk in lookup for `<Foo>::Bar` searching traits +- "Compile" rustc - Audit TODOs in codebase - MIR Optimisations - Assignment elision (e.g. remove intermediate temporaries assigned to RETURN) - Dead code eliminiation - BB Unificiation - HIR Optimisation (remove dead code in `if true/if false` branches) -- Basic codegen +- Basic codegen such that `hello.rs` runs - Convert enum variants to point to structs for the data type + - This may have to wait for a rustc RFC? (or can hide the structs for now) - Clean up Span code to correctly handle nested spans - Clean up AST - Almost done, just a few little niggles left - Split arg patterns and arg types up for cleaner serialisation - Could be a good idea to do as part of changing HIR::TraitImpl to only contain the impl data + - May not be too useful due to argument monomorphisation. |