diff options
Diffstat (limited to 'Notes/Inferrence-ConstraintsAndRules.md')
-rw-r--r-- | Notes/Inferrence-ConstraintsAndRules.md | 14 |
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 |