aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/ty/traits.rs
diff options
context:
space:
mode:
authorFlorian Diebold <[email protected]>2019-06-29 18:14:52 +0100
committerFlorian Diebold <[email protected]>2019-07-08 20:20:17 +0100
commitb1b12072eddaf989fb08ed7a2e39ec2dbbb83dde (patch)
tree63bb052a39df80dcd0771a18a7a475df3e6a5fe1 /crates/ra_hir/src/ty/traits.rs
parent638100dc8bea69cc4093d15f1641ed39a8d27a43 (diff)
Start handling environment in trait resolution
I.e. if we are inside a function with some where clauses, we assume these where clauses hold.
Diffstat (limited to 'crates/ra_hir/src/ty/traits.rs')
-rw-r--r--crates/ra_hir/src/ty/traits.rs8
1 files changed, 5 insertions, 3 deletions
diff --git a/crates/ra_hir/src/ty/traits.rs b/crates/ra_hir/src/ty/traits.rs
index 718970553..e0c93550a 100644
--- a/crates/ra_hir/src/ty/traits.rs
+++ b/crates/ra_hir/src/ty/traits.rs
@@ -72,11 +72,13 @@ fn solve(
72/// fn foo<T: Default>(t: T) {} 72/// fn foo<T: Default>(t: T) {}
73/// ``` 73/// ```
74/// we assume that `T: Default`. 74/// we assume that `T: Default`.
75#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)] 75#[derive(Clone, Debug, PartialEq, Eq, Hash)]
76pub struct Environment; 76pub struct Environment {
77 pub predicates: Vec<GenericPredicate>,
78}
77 79
78/// Something (usually a goal), along with an environment. 80/// Something (usually a goal), along with an environment.
79#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)] 81#[derive(Clone, Debug, PartialEq, Eq, Hash)]
80pub struct InEnvironment<T> { 82pub struct InEnvironment<T> {
81 pub environment: Arc<Environment>, 83 pub environment: Arc<Environment>,
82 pub value: T, 84 pub value: T,