Skip to content

Commit 3950e1b

Browse files
committed
Turbopack: delete module_context.remove_unused_exports
1 parent f5376f4 commit 3950e1b

File tree

11 files changed

+23
-84
lines changed

11 files changed

+23
-84
lines changed

crates/next-core/src/next_client/context.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -325,7 +325,6 @@ pub async fn get_client_module_options_context(
325325
enable_postcss_transform,
326326
side_effect_free_packages: next_config.optimize_package_imports().owned().await?,
327327
keep_last_successful_parse: next_mode.is_development(),
328-
remove_unused_exports: *next_config.turbopack_remove_unused_exports(mode).await?,
329328
..Default::default()
330329
};
331330

turbopack/crates/turbopack-core/src/reference/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -319,7 +319,7 @@ pub async fn primary_chunkable_referenced_modules(
319319
.primary_modules()
320320
.owned()
321321
.await?;
322-
let export = (*reference.export_usage().await?).clone();
322+
let export = reference.export_usage().owned().await?;
323323

324324
return Ok(Some((chunking_type.clone(), export, resolved)));
325325
}

turbopack/crates/turbopack-ecmascript/src/lib.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -201,8 +201,6 @@ pub struct EcmascriptOptions {
201201
/// parsing fails. This is useful to keep the module graph structure intact when syntax errors
202202
/// are temporarily introduced.
203203
pub keep_last_successful_parse: bool,
204-
205-
pub remove_unused_exports: bool,
206204
}
207205

208206
#[turbo_tasks::value]

turbopack/crates/turbopack-ecmascript/src/side_effect_optimization/facade/module.rs

Lines changed: 16 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ use crate::{
3838
pub struct EcmascriptModuleFacadeModule {
3939
module: ResolvedVc<Box<dyn EcmascriptChunkPlaceable>>,
4040
part: ModulePart,
41-
remove_unused_exports: bool,
4241
}
4342

4443
#[turbo_tasks::value_impl]
@@ -47,14 +46,8 @@ impl EcmascriptModuleFacadeModule {
4746
pub fn new(
4847
module: ResolvedVc<Box<dyn EcmascriptChunkPlaceable>>,
4948
part: ModulePart,
50-
remove_unused_exports: bool,
5149
) -> Vc<Self> {
52-
EcmascriptModuleFacadeModule {
53-
module,
54-
part,
55-
remove_unused_exports,
56-
}
57-
.cell()
50+
EcmascriptModuleFacadeModule { module, part }.cell()
5851
}
5952

6053
#[turbo_tasks::function]
@@ -97,13 +90,9 @@ impl EcmascriptModuleFacadeModule {
9790
(
9891
result.esm_evaluation_references,
9992
vec![
100-
EcmascriptModulePartReference::new_part(
101-
*self.module,
102-
ModulePart::locals(),
103-
self.remove_unused_exports,
104-
)
105-
.to_resolved()
106-
.await?,
93+
EcmascriptModulePartReference::new_part(*self.module, ModulePart::locals())
94+
.to_resolved()
95+
.await?,
10796
],
10897
)
10998
}
@@ -120,33 +109,21 @@ impl EcmascriptModuleFacadeModule {
120109
(
121110
result.esm_reexport_references,
122111
vec![
123-
EcmascriptModulePartReference::new_part(
124-
*self.module,
125-
ModulePart::locals(),
126-
self.remove_unused_exports,
127-
)
128-
.to_resolved()
129-
.await?,
112+
EcmascriptModulePartReference::new_part(*self.module, ModulePart::locals())
113+
.to_resolved()
114+
.await?,
130115
],
131116
)
132117
}
133118
ModulePart::Facade => (
134119
EsmAssetReferences::empty().to_resolved().await?,
135120
vec![
136-
EcmascriptModulePartReference::new_part(
137-
*self.module,
138-
ModulePart::evaluation(),
139-
self.remove_unused_exports,
140-
)
141-
.to_resolved()
142-
.await?,
143-
EcmascriptModulePartReference::new_part(
144-
*self.module,
145-
ModulePart::exports(),
146-
self.remove_unused_exports,
147-
)
148-
.to_resolved()
149-
.await?,
121+
EcmascriptModulePartReference::new_part(*self.module, ModulePart::evaluation())
122+
.to_resolved()
123+
.await?,
124+
EcmascriptModulePartReference::new_part(*self.module, ModulePart::exports())
125+
.to_resolved()
126+
.await?,
150127
],
151128
),
152129
ModulePart::RenamedNamespace { .. } => (
@@ -287,7 +264,6 @@ impl EcmascriptChunkPlaceable for EcmascriptModuleFacadeModule {
287264
EcmascriptModulePartReference::new_part(
288265
*self.module,
289266
ModulePart::locals(),
290-
self.remove_unused_exports,
291267
)
292268
.to_resolved()
293269
.await?,
@@ -335,7 +311,6 @@ impl EcmascriptChunkPlaceable for EcmascriptModuleFacadeModule {
335311
EcmascriptModulePartReference::new_part(
336312
*self.module,
337313
ModulePart::exports(),
338-
self.remove_unused_exports,
339314
)
340315
.to_resolved()
341316
.await?,
@@ -346,13 +321,9 @@ impl EcmascriptChunkPlaceable for EcmascriptModuleFacadeModule {
346321
);
347322
}
348323
star_exports.push(ResolvedVc::upcast(
349-
EcmascriptModulePartReference::new_part(
350-
*self.module,
351-
ModulePart::exports(),
352-
self.remove_unused_exports,
353-
)
354-
.to_resolved()
355-
.await?,
324+
EcmascriptModulePartReference::new_part(*self.module, ModulePart::exports())
325+
.to_resolved()
326+
.await?,
356327
));
357328
}
358329
ModulePart::RenamedExport {

turbopack/crates/turbopack-ecmascript/src/side_effect_optimization/reference.rs

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ use crate::{
3131

3232
#[derive(Debug, Clone, Eq, PartialEq, Hash, Serialize, Deserialize, NonLocalValue, TraceRawVcs)]
3333
enum EcmascriptModulePartReferenceMode {
34-
Synthesize { remove_unused_exports: bool },
34+
Synthesize,
3535
Normal,
3636
}
3737

@@ -51,14 +51,11 @@ impl EcmascriptModulePartReference {
5151
pub fn new_part(
5252
module: ResolvedVc<Box<dyn EcmascriptChunkPlaceable>>,
5353
part: ModulePart,
54-
remove_unused_exports: bool,
5554
) -> Vc<Self> {
5655
EcmascriptModulePartReference {
5756
module,
5857
part,
59-
mode: EcmascriptModulePartReferenceMode::Synthesize {
60-
remove_unused_exports,
61-
},
58+
mode: EcmascriptModulePartReferenceMode::Synthesize,
6259
}
6360
.cell()
6461
}
@@ -91,9 +88,7 @@ impl ModuleReference for EcmascriptModulePartReference {
9188
#[turbo_tasks::function]
9289
async fn resolve_reference(&self) -> Result<Vc<ModuleResolveResult>> {
9390
let module = match self.mode {
94-
EcmascriptModulePartReferenceMode::Synthesize {
95-
remove_unused_exports,
96-
} => {
91+
EcmascriptModulePartReferenceMode::Synthesize => {
9792
match &self.part {
9893
ModulePart::Locals => {
9994
let Some(module) = ResolvedVc::try_downcast_type(self.module) else {
@@ -108,13 +103,9 @@ impl ModuleReference for EcmascriptModulePartReference {
108103
| ModulePart::Evaluation
109104
| ModulePart::Facade
110105
| ModulePart::RenamedExport { .. }
111-
| ModulePart::RenamedNamespace { .. } => {
112-
Vc::upcast(EcmascriptModuleFacadeModule::new(
113-
*self.module,
114-
self.part.clone(),
115-
remove_unused_exports,
116-
))
117-
}
106+
| ModulePart::RenamedNamespace { .. } => Vc::upcast(
107+
EcmascriptModuleFacadeModule::new(*self.module, self.part.clone()),
108+
),
118109
ModulePart::Export(..) | ModulePart::Internal(..) => {
119110
bail!(
120111
"Unexpected ModulePart \"{}\" for EcmascriptModulePartReference",

turbopack/crates/turbopack-ecmascript/src/tree_shake/asset.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,6 @@ impl EcmascriptModulePartAsset {
200200
EcmascriptModuleFacadeModule::new(
201201
**final_module,
202202
ModulePart::renamed_export(new_export.clone(), export.clone()),
203-
module.options().await?.remove_unused_exports,
204203
)
205204
.to_resolved()
206205
.await?,
@@ -211,7 +210,6 @@ impl EcmascriptModulePartAsset {
211210
EcmascriptModuleFacadeModule::new(
212211
**final_module,
213212
ModulePart::renamed_namespace(export.clone()),
214-
module.options().await?.remove_unused_exports,
215213
)
216214
.to_resolved()
217215
.await?,

turbopack/crates/turbopack-tests/tests/execution.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -385,12 +385,10 @@ async fn run_test_operation(prepared_test: ResolvedVc<PreparedTest>) -> Result<V
385385
ContextCondition::InDirectory("node_modules".into()),
386386
ModuleOptionsContext {
387387
tree_shaking_mode: options.tree_shaking_mode,
388-
remove_unused_exports,
389388
..Default::default()
390389
}
391390
.resolved_cell(),
392391
)],
393-
remove_unused_exports,
394392
..Default::default()
395393
}
396394
.into(),

turbopack/crates/turbopack-tests/tests/snapshot.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -318,14 +318,12 @@ async fn run_test_operation(resource: RcStr) -> Result<Vc<FileSystemPath>> {
318318
},
319319
environment: Some(env),
320320
tree_shaking_mode: options.tree_shaking_mode,
321-
remove_unused_exports: options.remove_unused_exports,
322321
..Default::default()
323322
}
324323
.resolved_cell(),
325324
)],
326325
module_rules: vec![module_rules],
327326
tree_shaking_mode: options.tree_shaking_mode,
328-
remove_unused_exports: options.remove_unused_exports,
329327
..Default::default()
330328
}
331329
.into(),

turbopack/crates/turbopack/src/lib.rs

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,6 @@ async fn apply_module_type(
171171
Vc::upcast(EcmascriptModuleFacadeModule::new(
172172
Vc::upcast(*module),
173173
part,
174-
options.await?.remove_unused_exports,
175174
))
176175
} else {
177176
Vc::upcast(*module)
@@ -189,21 +188,18 @@ async fn apply_module_type(
189188
EcmascriptModuleFacadeModule::new(
190189
Vc::upcast(*module),
191190
ModulePart::exports(),
192-
options.await?.remove_unused_exports,
193191
)
194192
.resolve()
195193
.await?,
196194
),
197195
part,
198196
side_effect_free_packages,
199-
options.await?.remove_unused_exports,
200197
)
201198
} else {
202199
apply_reexport_tree_shaking(
203200
Vc::upcast(*module),
204201
part,
205202
side_effect_free_packages,
206-
options.await?.remove_unused_exports,
207203
)
208204
}
209205
}
@@ -217,7 +213,6 @@ async fn apply_module_type(
217213
Vc::upcast(EcmascriptModuleFacadeModule::new(
218214
Vc::upcast(*module),
219215
ModulePart::facade(),
220-
options.await?.remove_unused_exports,
221216
))
222217
} else {
223218
Vc::upcast(*module)
@@ -282,7 +277,6 @@ async fn apply_reexport_tree_shaking(
282277
module: Vc<Box<dyn EcmascriptChunkPlaceable>>,
283278
part: ModulePart,
284279
side_effect_free_packages: Vc<Glob>,
285-
remove_unused_exports: bool,
286280
) -> Result<Vc<Box<dyn Module>>> {
287281
if let ModulePart::Export(export) = &part {
288282
let FollowExportsResult {
@@ -297,14 +291,12 @@ async fn apply_reexport_tree_shaking(
297291
Vc::upcast(EcmascriptModuleFacadeModule::new(
298292
**final_module,
299293
ModulePart::renamed_export(new_export.clone(), export.clone()),
300-
remove_unused_exports,
301294
))
302295
}
303296
} else {
304297
Vc::upcast(EcmascriptModuleFacadeModule::new(
305298
**final_module,
306299
ModulePart::renamed_namespace(export.clone()),
307-
remove_unused_exports,
308300
))
309301
};
310302
return Ok(module);

turbopack/crates/turbopack/src/module_options/mod.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,6 @@ impl ModuleOptions {
143143
execution_context,
144144
tree_shaking_mode,
145145
keep_last_successful_parse,
146-
remove_unused_exports,
147146
..
148147
} = *module_options_context.await?;
149148

@@ -174,7 +173,6 @@ impl ModuleOptions {
174173
refresh,
175174
extract_source_map: matches!(ecmascript_source_maps, SourceMapsType::Full),
176175
keep_last_successful_parse,
177-
remove_unused_exports,
178176
..Default::default()
179177
};
180178
let ecmascript_options_vc = ecmascript_options.resolved_cell();

turbopack/crates/turbopack/src/module_options/module_options_context.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -170,10 +170,6 @@ pub struct ModuleOptionsContext {
170170
/// context paths. The first matching is used.
171171
pub rules: Vec<(ContextCondition, ResolvedVc<ModuleOptionsContext>)>,
172172

173-
/// `matches!(tree_shaking_mode, Some(TreeShakingMode::Intermediate))` is not enough because we
174-
/// use different tree shaking modes for user code and foreign code while intermediate tree
175-
/// shaking is a global option.
176-
pub remove_unused_exports: bool,
177173
pub placeholder_for_future_extensions: (),
178174
}
179175

0 commit comments

Comments
 (0)