summaryrefslogtreecommitdiff
path: root/Notes
diff options
context:
space:
mode:
authorJohn Hodge <tpg@mutabah.net>2016-10-27 23:37:16 +0800
committerJohn Hodge <tpg@mutabah.net>2016-10-27 23:37:16 +0800
commit7043b5e43d7d6a461713bd5c38bd968f5d3cf83f (patch)
treed6290b7898a592ddc133cabeac523011e00769a3 /Notes
parent28902fd02a6e4ad750b70ea8d0406b7bd976a323 (diff)
downloadmrust-7043b5e43d7d6a461713bd5c38bd968f5d3cf83f.tar.gz
Notes - TODO update and a quirk
Diffstat (limited to 'Notes')
-rw-r--r--Notes/Quirks.md7
-rw-r--r--Notes/todo.txt9
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.