summaryrefslogtreecommitdiff
path: root/Notes/Inferrence-ConstraintsAndRules.md
diff options
context:
space:
mode:
authorJohn Hodge <tpg@mutabah.net>2016-07-02 14:39:54 +0800
committerJohn Hodge <tpg@mutabah.net>2016-07-02 14:40:18 +0800
commit82806102bd9075e25f326484249f3c63a58160f5 (patch)
treef6fd67d849e24fddfc479230340c8929b0b73f26 /Notes/Inferrence-ConstraintsAndRules.md
parente2b52c8f7c72b1587eca350d6957c3d9fca0900d (diff)
downloadmrust-82806102bd9075e25f326484249f3c63a58160f5.tar.gz
HIR - CS Typecheck work, Store 'is_struct' flag in StructLiteral node
Diffstat (limited to 'Notes/Inferrence-ConstraintsAndRules.md')
-rw-r--r--Notes/Inferrence-ConstraintsAndRules.md14
1 files changed, 9 insertions, 5 deletions
diff --git a/Notes/Inferrence-ConstraintsAndRules.md b/Notes/Inferrence-ConstraintsAndRules.md
index ada2f08f..6302275f 100644
--- a/Notes/Inferrence-ConstraintsAndRules.md
+++ b/Notes/Inferrence-ConstraintsAndRules.md
@@ -24,11 +24,15 @@
## Actions taken
- Destructuring and re-structurings are applied directly
- -
-
-```cpp
-
-```
+ - E.g. New tuples/arrays, destructuring patterns, ...
+- Equalities are applied until none are left
+ - NOTE: Dead ivars (ones that have been aliased) should be omitted from listings
+- Apply coercions that are known to not coerce
+ - E.g. `str` cannot coerce to anything
+- Apply coercions that are known
+- Check associated type projections
+ - Apply single-trait rule (If there's only one trait that could apply, use it)
+- Keep going until out or rules or ambiguity is hit
<!-- vim: ft=markdown