Skip to content

Commit b1f7378

Browse files
committed
chore: remove get_destructable
1 parent 3f802db commit b1f7378

18 files changed

+14
-66
lines changed

crates/tree_shaker/src/builtins/globals/object_constructor.rs

+6-1
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,12 @@ impl<'a> Builtins<'a> {
164164
_ => {}
165165
}
166166
}
167-
object.set_property(analyzer, descriptor.get_destructable(analyzer, dep), key, value);
167+
object.set_property(
168+
analyzer,
169+
analyzer.factory.consumable((dep, descriptor.shallow_dep())),
170+
key,
171+
value,
172+
);
168173
return object;
169174
}
170175

crates/tree_shaker/src/builtins/react/jsxs.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ pub fn create_react_jsxs_impl<'a>(factory: &'a EntityFactory<'a>) -> Entity<'a>
44
factory.implemented_builtin_fn("React::jsxs", |analyzer, dep, _this, args| {
55
let args = args.destruct_as_array(analyzer, dep, 3, false).0;
66
let [tag, props, key] = args[..] else { unreachable!() };
7-
analyzer.consume(props.get_destructable(analyzer, analyzer.factory.empty_consumable));
7+
analyzer.consume(props.shallow_dep());
88
props.set_property(
99
analyzer,
1010
analyzer.factory.empty_consumable,

crates/tree_shaker/src/entity/arguments.rs

-4
Original file line numberDiff line numberDiff line change
@@ -114,10 +114,6 @@ impl<'a> ValueTrait<'a> for ArgumentsEntity<'a> {
114114
(elements, rest.map(|val| analyzer.factory.union(val)), dep)
115115
}
116116

117-
fn get_destructable(&'a self, _analyzer: &Analyzer<'a>, _dep: Consumable<'a>) -> Consumable<'a> {
118-
unreachable!()
119-
}
120-
121117
fn get_typeof(&'a self, _analyzer: &Analyzer<'a>) -> Entity<'a> {
122118
unreachable!()
123119
}

crates/tree_shaker/src/entity/array.rs

-4
Original file line numberDiff line numberDiff line change
@@ -311,10 +311,6 @@ impl<'a> ValueTrait<'a> for ArrayEntity<'a> {
311311
)
312312
}
313313

314-
fn get_destructable(&'a self, _analyzer: &Analyzer<'a>, dep: Consumable<'a>) -> Consumable<'a> {
315-
dep
316-
}
317-
318314
fn get_typeof(&'a self, analyzer: &Analyzer<'a>) -> Entity<'a> {
319315
analyzer.factory.string("object")
320316
}

crates/tree_shaker/src/entity/builtin_fn.rs

-4
Original file line numberDiff line numberDiff line change
@@ -121,10 +121,6 @@ impl<'a, T: BuiltinFnEntity<'a>> ValueTrait<'a> for T {
121121
}
122122
}
123123

124-
fn get_destructable(&'a self, analyzer: &Analyzer<'a>, dep: Consumable<'a>) -> Consumable<'a> {
125-
analyzer.consumable((self, dep))
126-
}
127-
128124
fn get_typeof(&'a self, analyzer: &Analyzer<'a>) -> Entity<'a> {
129125
analyzer.factory.string("function")
130126
}

crates/tree_shaker/src/entity/function.rs

-4
Original file line numberDiff line numberDiff line change
@@ -128,10 +128,6 @@ impl<'a> ValueTrait<'a> for FunctionEntity<'a> {
128128
consumed_object::iterate(analyzer, dep)
129129
}
130130

131-
fn get_destructable(&'a self, analyzer: &Analyzer<'a>, dep: Consumable<'a>) -> Consumable<'a> {
132-
analyzer.consumable((self, dep))
133-
}
134-
135131
fn get_typeof(&'a self, analyzer: &Analyzer<'a>) -> Entity<'a> {
136132
analyzer.factory.string("function")
137133
}

crates/tree_shaker/src/entity/literal.rs

-4
Original file line numberDiff line numberDiff line change
@@ -197,10 +197,6 @@ impl<'a> ValueTrait<'a> for LiteralEntity<'a> {
197197
}
198198
}
199199

200-
fn get_destructable(&'a self, _analyzer: &Analyzer<'a>, dep: Consumable<'a>) -> Consumable<'a> {
201-
dep
202-
}
203-
204200
fn get_typeof(&'a self, analyzer: &Analyzer<'a>) -> Entity<'a> {
205201
analyzer.factory.string(self.test_typeof().to_string().unwrap())
206202
}

crates/tree_shaker/src/entity/logical_result.rs

-4
Original file line numberDiff line numberDiff line change
@@ -85,10 +85,6 @@ impl<'a> ValueTrait<'a> for LogicalResultEntity<'a> {
8585
self.value.iterate(analyzer, dep)
8686
}
8787

88-
fn get_destructable(&'a self, analyzer: &Analyzer<'a>, dep: Consumable<'a>) -> Consumable<'a> {
89-
self.value.get_destructable(analyzer, dep)
90-
}
91-
9288
fn get_typeof(&'a self, analyzer: &Analyzer<'a>) -> Entity<'a> {
9389
self.value.get_typeof(analyzer)
9490
}

crates/tree_shaker/src/entity/mod.rs

+4-8
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,6 @@ pub trait ValueTrait<'a>: Debug {
8383
fn r#await(&'a self, analyzer: &mut Analyzer<'a>, dep: Consumable<'a>) -> Entity<'a>;
8484
fn iterate(&'a self, analyzer: &mut Analyzer<'a>, dep: Consumable<'a>) -> IteratedElements<'a>;
8585

86-
fn get_destructable(&'a self, analyzer: &Analyzer<'a>, dep: Consumable<'a>) -> Consumable<'a>;
8786
fn get_typeof(&'a self, analyzer: &Analyzer<'a>) -> Entity<'a>;
8887
fn get_to_string(&'a self, analyzer: &Analyzer<'a>) -> Entity<'a>;
8988
fn get_to_numeric(&'a self, analyzer: &Analyzer<'a>) -> Entity<'a>;
@@ -216,6 +215,10 @@ pub struct Entity<'a> {
216215
}
217216

218217
impl<'a> Entity<'a> {
218+
pub fn shallow_dep(&self) -> Option<Consumable<'a>> {
219+
self.dep
220+
}
221+
219222
fn forward_dep(
220223
&self,
221224
dep: impl ConsumeTrait<'a> + 'a,
@@ -319,13 +322,6 @@ impl<'a> Entity<'a> {
319322
) -> IteratedElements<'a> {
320323
self.value.iterate(analyzer, self.forward_dep(dep, analyzer))
321324
}
322-
pub fn get_destructable(
323-
&self,
324-
analyzer: &Analyzer<'a>,
325-
dep: impl ConsumeTrait<'a> + 'a,
326-
) -> Consumable<'a> {
327-
self.value.get_destructable(analyzer, self.forward_dep(dep, analyzer))
328-
}
329325
pub fn get_typeof(&self, analyzer: &Analyzer<'a>) -> Entity<'a> {
330326
self.forward_value(self.value.get_typeof(analyzer), analyzer)
331327
}

crates/tree_shaker/src/entity/never.rs

-3
Original file line numberDiff line numberDiff line change
@@ -71,9 +71,6 @@ impl<'a> ValueTrait<'a> for NeverEntity {
7171
(Vec::new(), None, analyzer.factory.empty_consumable)
7272
}
7373

74-
fn get_destructable(&'a self, analyzer: &Analyzer<'a>, _dep: Consumable<'a>) -> Consumable<'a> {
75-
analyzer.factory.empty_consumable
76-
}
7774
fn get_typeof(&'a self, analyzer: &Analyzer<'a>) -> Entity<'a> {
7875
analyzer.factory.never
7976
}

crates/tree_shaker/src/entity/object/mod.rs

-4
Original file line numberDiff line numberDiff line change
@@ -161,10 +161,6 @@ impl<'a> ValueTrait<'a> for ObjectEntity<'a> {
161161
consumed_object::iterate(analyzer, dep)
162162
}
163163

164-
fn get_destructable(&'a self, _analyzer: &Analyzer<'a>, dep: Consumable<'a>) -> Consumable<'a> {
165-
dep
166-
}
167-
168164
fn get_typeof(&'a self, analyzer: &Analyzer<'a>) -> Entity<'a> {
169165
analyzer.factory.string("object")
170166
}

crates/tree_shaker/src/entity/primitive.rs

-4
Original file line numberDiff line numberDiff line change
@@ -121,10 +121,6 @@ impl<'a> ValueTrait<'a> for PrimitiveEntity {
121121
}
122122
}
123123

124-
fn get_destructable(&'a self, analyzer: &Analyzer<'a>, dep: Consumable<'a>) -> Consumable<'a> {
125-
analyzer.consumable((self, dep))
126-
}
127-
128124
fn get_typeof(&'a self, analyzer: &Analyzer<'a>) -> Entity<'a> {
129125
if let Some(str) = self.test_typeof().to_string() {
130126
analyzer.factory.string(str)

crates/tree_shaker/src/entity/react_element.rs

-4
Original file line numberDiff line numberDiff line change
@@ -126,10 +126,6 @@ impl<'a> ValueTrait<'a> for ReactElementEntity<'a> {
126126
consumed_object::iterate(analyzer, dep)
127127
}
128128

129-
fn get_destructable(&'a self, analyzer: &Analyzer<'a>, dep: Consumable<'a>) -> Consumable<'a> {
130-
analyzer.consumable((self, dep))
131-
}
132-
133129
fn get_typeof(&'a self, analyzer: &Analyzer<'a>) -> Entity<'a> {
134130
analyzer.factory.computed_unknown_string(self)
135131
}

crates/tree_shaker/src/entity/union.rs

-8
Original file line numberDiff line numberDiff line change
@@ -137,14 +137,6 @@ impl<'a, V: UnionLike<'a, Entity<'a>> + Debug + 'a> ValueTrait<'a> for UnionEnti
137137
(vec![], analyzer.factory.try_union(results), analyzer.factory.empty_consumable)
138138
}
139139

140-
fn get_destructable(&'a self, analyzer: &Analyzer<'a>, dep: Consumable<'a>) -> Consumable<'a> {
141-
let mut values = Vec::new();
142-
for entity in self.values.iter() {
143-
values.push(entity.get_destructable(analyzer, dep));
144-
}
145-
analyzer.consumable(values)
146-
}
147-
148140
fn get_typeof(&'a self, analyzer: &Analyzer<'a>) -> Entity<'a> {
149141
// TODO: collect literals
150142
let values = self.values.map(|v| v.get_typeof(analyzer));

crates/tree_shaker/src/entity/unknown.rs

-4
Original file line numberDiff line numberDiff line change
@@ -83,10 +83,6 @@ impl<'a> ValueTrait<'a> for UnknownEntity<'a> {
8383
consumed_object::iterate(analyzer, dep)
8484
}
8585

86-
fn get_destructable(&'a self, analyzer: &Analyzer<'a>, dep: Consumable<'a>) -> Consumable<'a> {
87-
analyzer.consumable((self, dep))
88-
}
89-
9086
fn get_typeof(&'a self, analyzer: &Analyzer<'a>) -> Entity<'a> {
9187
analyzer.factory.computed_unknown_string(self)
9288
}

crates/tree_shaker/src/nodes/misc/assignment_target_pattern.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ impl<'a> Analyzer<'a> {
2828
self.pop_cf_scope();
2929
}
3030
AssignmentTargetPattern::ObjectAssignmentTarget(node) => {
31-
self.push_dependent_cf_scope(value.get_destructable(self, self.factory.empty_consumable));
31+
self.push_dependent_cf_scope(value.shallow_dep());
3232

3333
let is_nullish = value.test_nullish();
3434
if is_nullish != Some(false) {

crates/tree_shaker/src/nodes/stmt/for_in_statement.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ impl<'a> Analyzer<'a> {
99
let right = self.exec_expression(&node.right);
1010

1111
if let Some(keys) = right.get_own_keys(self) {
12-
let dep = right.get_destructable(self, AstKind2::ForInStatement(node));
12+
let dep = self.factory.consumable((right.shallow_dep(), AstKind2::ForInStatement(node)));
1313
self.push_cf_scope_with_deps(CfScopeKind::LoopBreak, vec![dep], Some(false));
1414
for (definite, key) in keys {
1515
self.push_cf_scope_with_deps(

crates/tree_shaker/src/scope/call_scope.rs

+1-3
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,7 @@ impl<'a> CallScope<'a> {
6161
if !try_scope.thrown_values.is_empty() {
6262
parent_try_scope.thrown_values.push(unknown);
6363
}
64-
for value in try_scope.thrown_values {
65-
value.consume(analyzer);
66-
}
64+
analyzer.consume(try_scope.thrown_values);
6765
} else if self.is_async {
6866
promise_error = Some(try_scope.thrown_values);
6967
} else {

0 commit comments

Comments
 (0)