diff options
author | Aleksey Kladov <[email protected]> | 2019-01-15 15:43:25 +0000 |
---|---|---|
committer | Aleksey Kladov <[email protected]> | 2019-01-15 15:43:25 +0000 |
commit | 9446be29992fe14ec529874622311c3ae7a49b0e (patch) | |
tree | 28ed14b3de7239994ba19b304e72c86f8d37de23 /crates/ra_hir/src/adt.rs | |
parent | 05149d353299b54476410daeda6551e1261128ef (diff) |
remove Cancelable from adt API
Diffstat (limited to 'crates/ra_hir/src/adt.rs')
-rw-r--r-- | crates/ra_hir/src/adt.rs | 23 |
1 files changed, 7 insertions, 16 deletions
diff --git a/crates/ra_hir/src/adt.rs b/crates/ra_hir/src/adt.rs index bcb705c24..57d112f74 100644 --- a/crates/ra_hir/src/adt.rs +++ b/crates/ra_hir/src/adt.rs | |||
@@ -19,7 +19,7 @@ impl Struct { | |||
19 | } | 19 | } |
20 | 20 | ||
21 | pub(crate) fn variant_data(&self, db: &impl HirDatabase) -> Cancelable<Arc<VariantData>> { | 21 | pub(crate) fn variant_data(&self, db: &impl HirDatabase) -> Cancelable<Arc<VariantData>> { |
22 | Ok(db.struct_data(self.def_id)?.variant_data.clone()) | 22 | Ok(db.struct_data(self.def_id).variant_data.clone()) |
23 | } | 23 | } |
24 | } | 24 | } |
25 | 25 | ||
@@ -37,16 +37,13 @@ impl StructData { | |||
37 | StructData { name, variant_data } | 37 | StructData { name, variant_data } |
38 | } | 38 | } |
39 | 39 | ||
40 | pub(crate) fn struct_data_query( | 40 | pub(crate) fn struct_data_query(db: &impl HirDatabase, def_id: DefId) -> Arc<StructData> { |
41 | db: &impl HirDatabase, | ||
42 | def_id: DefId, | ||
43 | ) -> Cancelable<Arc<StructData>> { | ||
44 | let def_loc = def_id.loc(db); | 41 | let def_loc = def_id.loc(db); |
45 | assert!(def_loc.kind == DefKind::Struct); | 42 | assert!(def_loc.kind == DefKind::Struct); |
46 | let syntax = db.file_item(def_loc.source_item_id); | 43 | let syntax = db.file_item(def_loc.source_item_id); |
47 | let struct_def = | 44 | let struct_def = |
48 | ast::StructDef::cast(&syntax).expect("struct def should point to StructDef node"); | 45 | ast::StructDef::cast(&syntax).expect("struct def should point to StructDef node"); |
49 | Ok(Arc::new(StructData::new(struct_def))) | 46 | Arc::new(StructData::new(struct_def)) |
50 | } | 47 | } |
51 | } | 48 | } |
52 | 49 | ||
@@ -84,10 +81,7 @@ impl EnumData { | |||
84 | EnumData { name, variants } | 81 | EnumData { name, variants } |
85 | } | 82 | } |
86 | 83 | ||
87 | pub(crate) fn enum_data_query( | 84 | pub(crate) fn enum_data_query(db: &impl HirDatabase, def_id: DefId) -> Arc<EnumData> { |
88 | db: &impl HirDatabase, | ||
89 | def_id: DefId, | ||
90 | ) -> Cancelable<Arc<EnumData>> { | ||
91 | let def_loc = def_id.loc(db); | 85 | let def_loc = def_id.loc(db); |
92 | assert!(def_loc.kind == DefKind::Enum); | 86 | assert!(def_loc.kind == DefKind::Enum); |
93 | let syntax = db.file_item(def_loc.source_item_id); | 87 | let syntax = db.file_item(def_loc.source_item_id); |
@@ -107,7 +101,7 @@ impl EnumData { | |||
107 | } else { | 101 | } else { |
108 | Vec::new() | 102 | Vec::new() |
109 | }; | 103 | }; |
110 | Ok(Arc::new(EnumData::new(enum_def, variants))) | 104 | Arc::new(EnumData::new(enum_def, variants)) |
111 | } | 105 | } |
112 | } | 106 | } |
113 | 107 | ||
@@ -133,7 +127,7 @@ impl EnumVariantData { | |||
133 | pub(crate) fn enum_variant_data_query( | 127 | pub(crate) fn enum_variant_data_query( |
134 | db: &impl HirDatabase, | 128 | db: &impl HirDatabase, |
135 | def_id: DefId, | 129 | def_id: DefId, |
136 | ) -> Cancelable<Arc<EnumVariantData>> { | 130 | ) -> Arc<EnumVariantData> { |
137 | let def_loc = def_id.loc(db); | 131 | let def_loc = def_id.loc(db); |
138 | assert!(def_loc.kind == DefKind::EnumVariant); | 132 | assert!(def_loc.kind == DefKind::EnumVariant); |
139 | let syntax = db.file_item(def_loc.source_item_id); | 133 | let syntax = db.file_item(def_loc.source_item_id); |
@@ -146,10 +140,7 @@ impl EnumVariantData { | |||
146 | .expect("enum variant list should have enum ancestor"); | 140 | .expect("enum variant list should have enum ancestor"); |
147 | let enum_def_id = get_def_id(db, &def_loc, enum_node, DefKind::Enum); | 141 | let enum_def_id = get_def_id(db, &def_loc, enum_node, DefKind::Enum); |
148 | 142 | ||
149 | Ok(Arc::new(EnumVariantData::new( | 143 | Arc::new(EnumVariantData::new(variant_def, Enum::new(enum_def_id))) |
150 | variant_def, | ||
151 | Enum::new(enum_def_id), | ||
152 | ))) | ||
153 | } | 144 | } |
154 | } | 145 | } |
155 | 146 | ||