Skip to content

Refactor allow to expect#41586

Merged
TimvdLippe merged 14 commits intoservo:mainfrom
waynevanson:refactor_allow_to_expect
Jan 1, 2026
Merged

Refactor allow to expect#41586
TimvdLippe merged 14 commits intoservo:mainfrom
waynevanson:refactor_allow_to_expect

Conversation

@waynevanson
Copy link
Copy Markdown
Contributor

@waynevanson waynevanson commented Dec 30, 2025

Replace allow with expect lints for unused, unsafe_code, dead_code, and non_upper_case_globals.

Testing: So far just check it compiled on x86_64-linux on NixOS. Need to use the module system.fontconfig.enable = true; I think in my NixOS config.
Part of: #40383

Searching allow\(.*\) for .rs files shows the following. for (total_results:total_files) went from 707:386 to 675:368, a reduction of 32:18.

How many files is too many files per PR? I feel like the 20-30 I have is too big.

@waynevanson waynevanson force-pushed the refactor_allow_to_expect branch from 9d9ed51 to 092baf1 Compare December 30, 2025 11:10

# Append a Last.
entries.append(f'#[allow(dead_code)] Last = {first + len(entries)}')
entries.append(f'#[expect(dead_code)] Last = {first + len(entries)}')
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't understand the context regarding this codegen, so I cannot don't know the impacts of changing this.

Should this file be omitted or should it stay?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This need to be allowed and not expected because this code and other previously applied changes in this file are not dead code.

I'm not sure if removing this lint will break compatibility for something moving forward.

Should I remove this lint exception or leave it as allow?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See #40882 why we shouldn't have expect. Instead, try to determine the configuration in which it must be added. If that's not possible, we would need to keep this allow

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you. It's used in the output of the servo codegen crate, and I can see Last enum member being consumed in many places.

Therefore I've removed allow(dead_code)

@waynevanson waynevanson force-pushed the refactor_allow_to_expect branch from b8b2bf5 to 1c1132e Compare December 30, 2025 11:30
@waynevanson waynevanson marked this pull request as ready for review December 30, 2025 11:38
@servo-highfive servo-highfive added the S-awaiting-review There is new code that needs to be reviewed. label Dec 30, 2025
@waynevanson waynevanson marked this pull request as draft December 30, 2025 22:00
@waynevanson waynevanson force-pushed the refactor_allow_to_expect branch 2 times, most recently from 498f7d6 to 7ba979d Compare December 30, 2025 22:27
@waynevanson waynevanson marked this pull request as ready for review December 30, 2025 22:28
Copy link
Copy Markdown
Contributor

@TimvdLippe TimvdLippe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some questions regarding these expect(dead_code). The rest LGTM. Let's wait for the other folks to respond. If you don't want to wait for that, you can extract the other ones out in a separate PR and we can merge these already, while we figure out what to do with the remaining ones.

Thanks for continuing this cleanup work!

#[allow(clippy::too_many_arguments)]
#[allow(dead_code)]
#[expect(dead_code)]
pub(crate) fn new(
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can remove this method altogether, as the callers should use new_with_proto instead

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great! This has now been removed.

}

#[allow(dead_code)]
#[expect(dead_code)]
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These are used in some of the test suites, but not the others: 9c86ef4

I think if you run ./mach test-unit -d now, they will no longer compile. Instead, please add a comment why this should be allowed

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You're right, this command does not compile in these tests.
I've reverted it to use allow, but now added comments and the suite now at least compiles.

I'm unable to get this command to pass on NixOS as it can't find shared files in the fonts. test-tidy and build have no issues.

I've got direnv with .envrc containing use nix which should've worked out of the box.

}

#[allow(unused)]
#[expect(unused)]
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jschwe you introduced these ones in 9455169 It seems like they never got used afterwards. Are you still using this in your day-to-day work? If not, I would say we remove these.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


#[cfg(feature = "webxr")]
#[cfg_attr(target_env = "ohos", allow(dead_code))]
#[cfg_attr(target_env = "ohos", expect(dead_code))]
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this whole line can be removed, since it's only available when built with #[cfg(feature = "webxr")] anyways.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've removed this and ran ./mach check --feature webxr and ./mach check and found it compiles.

}

#[allow(unused)]
#[expect(unused)]
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this is used in

Ok(App::new(AppInitOptions {
host,
event_loop_waker,
viewport_rect,
hidpi_scale_factor: native_values.display_density as f32,
rendering_context,
refresh_driver,
initial_url: Some(options.url),
opts,
preferences,
servoshell_preferences,
#[cfg(feature = "webxr")]
xr_discovery: None,
}))
@mrobinson can you confirm this is used and therefore we can remove the expectation?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't see these mentioned in https://github.com/servo/servo/actions/runs/20637858589/job/59265304092 so I think they are unused indeed. Not sure what the missing usage here is then, given that App::new is clearly used. Maybe one of the other methods is unused?


#[expect(clippy::large_enum_variant)]
#[cfg_attr(any(target_os = "android", target_env = "ohos"), allow(dead_code))]
#[cfg_attr(any(target_os = "android", target_env = "ohos"), expect(dead_code))]
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see usages for these in

ArgumentParsingResult::ContentProcess(..) => {
unreachable!("OHOS does not have support for multiprocess yet.")
},
ArgumentParsingResult::ChromeProcess(opts, preferences, servoshell_preferences) => {
(opts, preferences, servoshell_preferences)
},
ArgumentParsingResult::Exit => std::process::exit(0),
ArgumentParsingResult::ErrorParsing => std::process::exit(1),
and
ArgumentParsingResult::ContentProcess(..) => {
unreachable!("Android does not have support for multiprocess yet.")
},
ArgumentParsingResult::ChromeProcess(opts, preferences, servoshell_preferences) => {
(opts, preferences, servoshell_preferences)
},
ArgumentParsingResult::Exit => {
std::process::exit(0);
},
ArgumentParsingResult::ErrorParsing => std::process::exit(1),

@mrobinson Same question here

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's unclear to me why these aren't mentioned, since clearly https://github.com/servo/servo/actions/runs/20637858589/job/59265304092 doesn't complain about it. So I guess it's dead code after all.

@servo-highfive servo-highfive added S-needs-code-changes Changes have not yet been made that were requested by a reviewer. and removed S-awaiting-review There is new code that needs to be reviewed. labels Dec 31, 2025
@waynevanson waynevanson marked this pull request as draft December 31, 2025 12:36
@waynevanson waynevanson force-pushed the refactor_allow_to_expect branch from 7ba979d to 96e0d8b Compare January 1, 2026 00:32
Copy link
Copy Markdown
Contributor Author

@waynevanson waynevanson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I appreciate the feedback, thank you!

@waynevanson
Copy link
Copy Markdown
Contributor Author

I won't split this PR up, happy to wait since I didn't structure commits nicely as it's my first PR to servo.

@waynevanson waynevanson marked this pull request as ready for review January 1, 2026 00:42
@servo-highfive servo-highfive added S-awaiting-review There is new code that needs to be reviewed. and removed S-needs-code-changes Changes have not yet been made that were requested by a reviewer. labels Jan 1, 2026
@TimvdLippe TimvdLippe added T-android Do a try run on Android T-ohos Do a try run on OpenHarmony labels Jan 1, 2026
@github-actions github-actions bot removed T-android Do a try run on Android T-ohos Do a try run on OpenHarmony labels Jan 1, 2026
@github-actions
Copy link
Copy Markdown

github-actions bot commented Jan 1, 2026

🔨 Triggering try run (#20637858589) for Android, OpenHarmony

@github-actions
Copy link
Copy Markdown

github-actions bot commented Jan 1, 2026

🐰 Bencher Report

Branch41586/PR
TestbedHUAWEI Mate 60 Pro

⚠️ WARNING: No Threshold found!

Without a Threshold, no Alerts will ever be generated.

Click here to create a new Threshold
For more information, see the Threshold documentation.
To only post results if a Threshold exists, set the --ci-only-thresholds flag.

Click to view all benchmark results
BenchmarkDataMeasure (units) x 1e3Latencymilliseconds (ms)MemoryBytesscoreMeasure (units)
release/E2E/file:///parse_from_string.html/📈 view plot
⚠️ NO THRESHOLD
1.70 units x 1e3
release/E2E/https://www.google.com/JS/gc-heap/admin📈 view plot
⚠️ NO THRESHOLD
26,752.00
release/E2E/https://www.google.com/JS/gc-heap/decommitted📈 view plot
⚠️ NO THRESHOLD
409,600.00
release/E2E/https://www.google.com/JS/gc-heap/unused📈 view plot
⚠️ NO THRESHOLD
136,432.00
release/E2E/https://www.google.com/JS/gc-heap/used📈 view plot
⚠️ NO THRESHOLD
475,792.00
release/E2E/https://www.google.com/JS/malloc-heap📈 view plot
⚠️ NO THRESHOLD
5,052,175.00
release/E2E/https://www.google.com/JS/non-heap📈 view plot
⚠️ NO THRESHOLD
262,144.00
release/E2E/https://www.google.com/LayoutThread/box-tree📈 view plot
⚠️ NO THRESHOLD
105,208.00
release/E2E/https://www.google.com/LayoutThread/display-list📈 view plot
⚠️ NO THRESHOLD
0.00
release/E2E/https://www.google.com/LayoutThread/font-context📈 view plot
⚠️ NO THRESHOLD
9,288.00
release/E2E/https://www.google.com/LayoutThread/fragment-tree📈 view plot
⚠️ NO THRESHOLD
112.00
release/E2E/https://www.google.com/LayoutThread/stacking-context-tree📈 view plot
⚠️ NO THRESHOLD
14,080.00
release/E2E/https://www.google.com/LayoutThread/stylist📈 view plot
⚠️ NO THRESHOLD
5,584.00
release/E2E/https://www.google.com/image-cache📈 view plot
⚠️ NO THRESHOLD
2,328.00
release/E2E/https://www.google.com/image-cache/fontdb📈 view plot
⚠️ NO THRESHOLD
192.00
release/E2E/https://www.google.com/resident-smaps📈 view plot
⚠️ NO THRESHOLD
375,785,062.00
release/E2E/https://www.servo.org/Load📈 view plot
⚠️ NO THRESHOLD
899.90 ms
release/E2E/https://www.servo.org/Resident📈 view plot
⚠️ NO THRESHOLD
387,343,155.00
release/E2E/https://www.servo.org/resident-smaps📈 view plot
⚠️ NO THRESHOLD
393,593,651.00
release/Speedometer/Charts-observable-plot📈 view plot
⚠️ NO THRESHOLD
741.03 ms
release/Speedometer/Charts-observable-plot/Dotted📈 view plot
⚠️ NO THRESHOLD
98.57 ms
release/Speedometer/Charts-observable-plot/Dotted/Async📈 view plot
⚠️ NO THRESHOLD
16.52 ms
release/Speedometer/Charts-observable-plot/Dotted/Sync📈 view plot
⚠️ NO THRESHOLD
82.05 ms
release/Speedometer/Charts-observable-plot/Stacked by 20📈 view plot
⚠️ NO THRESHOLD
360.09 ms
release/Speedometer/Charts-observable-plot/Stacked by 20/Async📈 view plot
⚠️ NO THRESHOLD
27.67 ms
release/Speedometer/Charts-observable-plot/Stacked by 20/Sync📈 view plot
⚠️ NO THRESHOLD
332.42 ms
release/Speedometer/Charts-observable-plot/Stacked by 6📈 view plot
⚠️ NO THRESHOLD
282.38 ms
release/Speedometer/Charts-observable-plot/Stacked by 6/Async📈 view plot
⚠️ NO THRESHOLD
16.63 ms
release/Speedometer/Charts-observable-plot/Stacked by 6/Sync📈 view plot
⚠️ NO THRESHOLD
265.75 ms
release/Speedometer/Geomean📈 view plot
⚠️ NO THRESHOLD
743.87 ms
release/Speedometer/Iteration-0-Total📈 view plot
⚠️ NO THRESHOLD
901.46 ms
release/Speedometer/Iteration-1-Total📈 view plot
⚠️ NO THRESHOLD
887.42 ms
release/Speedometer/Iteration-2-Total📈 view plot
⚠️ NO THRESHOLD
907.40 ms
release/Speedometer/Iteration-3-Total📈 view plot
⚠️ NO THRESHOLD
886.58 ms
release/Speedometer/Iteration-4-Total📈 view plot
⚠️ NO THRESHOLD
898.50 ms
release/Speedometer/Iteration-5-Total📈 view plot
⚠️ NO THRESHOLD
895.14 ms
release/Speedometer/Iteration-6-Total📈 view plot
⚠️ NO THRESHOLD
914.20 ms
release/Speedometer/Iteration-7-Total📈 view plot
⚠️ NO THRESHOLD
1,018.43 ms
release/Speedometer/Iteration-8-Total📈 view plot
⚠️ NO THRESHOLD
1,113.74 ms
release/Speedometer/Iteration-9-Total📈 view plot
⚠️ NO THRESHOLD
1,129.19 ms
release/Speedometer/Score📈 view plot
⚠️ NO THRESHOLD
1.35 units
release/Speedometer/TodoMVC-Angular📈 view plot
⚠️ NO THRESHOLD
992.68 ms
release/Speedometer/TodoMVC-Angular/Adding100Items📈 view plot
⚠️ NO THRESHOLD
469.77 ms
release/Speedometer/TodoMVC-Angular/Adding100Items/Async📈 view plot
⚠️ NO THRESHOLD
79.16 ms
release/Speedometer/TodoMVC-Angular/Adding100Items/Sync📈 view plot
⚠️ NO THRESHOLD
390.61 ms
release/Speedometer/TodoMVC-Angular/CompletingAllItems📈 view plot
⚠️ NO THRESHOLD
327.41 ms
release/Speedometer/TodoMVC-Angular/CompletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
64.76 ms
release/Speedometer/TodoMVC-Angular/CompletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
262.66 ms
release/Speedometer/TodoMVC-Angular/DeletingAllItems📈 view plot
⚠️ NO THRESHOLD
195.50 ms
release/Speedometer/TodoMVC-Angular/DeletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
13.38 ms
release/Speedometer/TodoMVC-Angular/DeletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
182.12 ms
release/Speedometer/TodoMVC-JavaScript-ES5📈 view plot
⚠️ NO THRESHOLD
1,457.05 ms
release/Speedometer/TodoMVC-JavaScript-ES5/Adding100Items📈 view plot
⚠️ NO THRESHOLD
1,146.58 ms
release/Speedometer/TodoMVC-JavaScript-ES5/Adding100Items/Async📈 view plot
⚠️ NO THRESHOLD
97.95 ms
release/Speedometer/TodoMVC-JavaScript-ES5/Adding100Items/Sync📈 view plot
⚠️ NO THRESHOLD
1,048.64 ms
release/Speedometer/TodoMVC-JavaScript-ES5/CompletingAllItems📈 view plot
⚠️ NO THRESHOLD
197.41 ms
release/Speedometer/TodoMVC-JavaScript-ES5/CompletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
57.05 ms
release/Speedometer/TodoMVC-JavaScript-ES5/CompletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
140.35 ms
release/Speedometer/TodoMVC-JavaScript-ES5/DeletingAllItems📈 view plot
⚠️ NO THRESHOLD
113.06 ms
release/Speedometer/TodoMVC-JavaScript-ES5/DeletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
13.48 ms
release/Speedometer/TodoMVC-JavaScript-ES5/DeletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
99.58 ms
release/Speedometer/TodoMVC-JavaScript-ES6-Webpack📈 view plot
⚠️ NO THRESHOLD
2,018.74 ms
release/Speedometer/TodoMVC-JavaScript-ES6-Webpack/Adding100Items📈 view plot
⚠️ NO THRESHOLD
1,600.54 ms
release/Speedometer/TodoMVC-JavaScript-ES6-Webpack/Adding100Items/Async📈 view plot
⚠️ NO THRESHOLD
72.97 ms
release/Speedometer/TodoMVC-JavaScript-ES6-Webpack/Adding100Items/Sync📈 view plot
⚠️ NO THRESHOLD
1,527.57 ms
release/Speedometer/TodoMVC-JavaScript-ES6-Webpack/CompletingAllItems📈 view plot
⚠️ NO THRESHOLD
267.29 ms
release/Speedometer/TodoMVC-JavaScript-ES6-Webpack/CompletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
66.49 ms
release/Speedometer/TodoMVC-JavaScript-ES6-Webpack/CompletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
200.79 ms
release/Speedometer/TodoMVC-JavaScript-ES6-Webpack/DeletingAllItems📈 view plot
⚠️ NO THRESHOLD
150.91 ms
release/Speedometer/TodoMVC-JavaScript-ES6-Webpack/DeletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
14.12 ms
release/Speedometer/TodoMVC-JavaScript-ES6-Webpack/DeletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
136.80 ms
release/Speedometer/TodoMVC-Preact📈 view plot
⚠️ NO THRESHOLD
238.64 ms
release/Speedometer/TodoMVC-Preact/Adding100Items📈 view plot
⚠️ NO THRESHOLD
119.36 ms
release/Speedometer/TodoMVC-Preact/Adding100Items/Async📈 view plot
⚠️ NO THRESHOLD
111.53 ms
release/Speedometer/TodoMVC-Preact/Adding100Items/Sync📈 view plot
⚠️ NO THRESHOLD
7.83 ms
release/Speedometer/TodoMVC-Preact/CompletingAllItems📈 view plot
⚠️ NO THRESHOLD
96.17 ms
release/Speedometer/TodoMVC-Preact/CompletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
78.39 ms
release/Speedometer/TodoMVC-Preact/CompletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
17.78 ms
release/Speedometer/TodoMVC-Preact/DeletingAllItems📈 view plot
⚠️ NO THRESHOLD
23.10 ms
release/Speedometer/TodoMVC-Preact/DeletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
15.02 ms
release/Speedometer/TodoMVC-Preact/DeletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
8.08 ms
release/Speedometer/TodoMVC-React📈 view plot
⚠️ NO THRESHOLD
915.06 ms
release/Speedometer/TodoMVC-React-Redux📈 view plot
⚠️ NO THRESHOLD
1,091.81 ms
release/Speedometer/TodoMVC-React-Redux/Adding100Items📈 view plot
⚠️ NO THRESHOLD
360.33 ms
release/Speedometer/TodoMVC-React-Redux/Adding100Items/Async📈 view plot
⚠️ NO THRESHOLD
68.79 ms
release/Speedometer/TodoMVC-React-Redux/Adding100Items/Sync📈 view plot
⚠️ NO THRESHOLD
291.54 ms
release/Speedometer/TodoMVC-React-Redux/CompletingAllItems📈 view plot
⚠️ NO THRESHOLD
478.44 ms
release/Speedometer/TodoMVC-React-Redux/CompletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
66.61 ms
release/Speedometer/TodoMVC-React-Redux/CompletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
411.83 ms
release/Speedometer/TodoMVC-React-Redux/DeletingAllItems📈 view plot
⚠️ NO THRESHOLD
253.04 ms
release/Speedometer/TodoMVC-React-Redux/DeletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
13.18 ms
release/Speedometer/TodoMVC-React-Redux/DeletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
239.86 ms
release/Speedometer/TodoMVC-React/Adding100Items📈 view plot
⚠️ NO THRESHOLD
351.94 ms
release/Speedometer/TodoMVC-React/Adding100Items/Async📈 view plot
⚠️ NO THRESHOLD
111.28 ms
release/Speedometer/TodoMVC-React/Adding100Items/Sync📈 view plot
⚠️ NO THRESHOLD
240.66 ms
release/Speedometer/TodoMVC-React/CompletingAllItems📈 view plot
⚠️ NO THRESHOLD
355.05 ms
release/Speedometer/TodoMVC-React/CompletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
65.79 ms
release/Speedometer/TodoMVC-React/CompletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
289.26 ms
release/Speedometer/TodoMVC-React/DeletingAllItems📈 view plot
⚠️ NO THRESHOLD
208.07 ms
release/Speedometer/TodoMVC-React/DeletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
14.12 ms
release/Speedometer/TodoMVC-React/DeletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
193.95 ms
release/Speedometer/TodoMVC-Svelte📈 view plot
⚠️ NO THRESHOLD
186.64 ms
release/Speedometer/TodoMVC-Svelte/Adding100Items📈 view plot
⚠️ NO THRESHOLD
111.89 ms
release/Speedometer/TodoMVC-Svelte/Adding100Items/Async📈 view plot
⚠️ NO THRESHOLD
92.80 ms
release/Speedometer/TodoMVC-Svelte/Adding100Items/Sync📈 view plot
⚠️ NO THRESHOLD
19.10 ms
release/Speedometer/TodoMVC-Svelte/CompletingAllItems📈 view plot
⚠️ NO THRESHOLD
55.29 ms
release/Speedometer/TodoMVC-Svelte/CompletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
43.19 ms
release/Speedometer/TodoMVC-Svelte/CompletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
12.10 ms
release/Speedometer/TodoMVC-Svelte/DeletingAllItems📈 view plot
⚠️ NO THRESHOLD
19.45 ms
release/Speedometer/TodoMVC-Svelte/DeletingAllItems/Async📈 view plot
⚠️ NO THRESHOLD
14.27 ms
release/Speedometer/TodoMVC-Svelte/DeletingAllItems/Sync📈 view plot
⚠️ NO THRESHOLD
5.18 ms
🐰 View full continuous benchmarking report in Bencher

@github-actions
Copy link
Copy Markdown

github-actions bot commented Jan 1, 2026

✨ Try run (#20637858589) succeeded.

Copy link
Copy Markdown
Contributor

@TimvdLippe TimvdLippe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I inspected the relevant build logs and don't see any issues introduced by these fixes. So let's merge it and in case we have missed anything after all, we need to update our CI configuration to catch that.

}

#[allow(unused)]
#[expect(unused)]
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

}

#[allow(unused)]
#[expect(unused)]
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't see these mentioned in https://github.com/servo/servo/actions/runs/20637858589/job/59265304092 so I think they are unused indeed. Not sure what the missing usage here is then, given that App::new is clearly used. Maybe one of the other methods is unused?


#[expect(clippy::large_enum_variant)]
#[cfg_attr(any(target_os = "android", target_env = "ohos"), allow(dead_code))]
#[cfg_attr(any(target_os = "android", target_env = "ohos"), expect(dead_code))]
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's unclear to me why these aren't mentioned, since clearly https://github.com/servo/servo/actions/runs/20637858589/job/59265304092 doesn't complain about it. So I guess it's dead code after all.

@servo-highfive servo-highfive removed the S-awaiting-review There is new code that needs to be reviewed. label Jan 1, 2026
@TimvdLippe TimvdLippe added this pull request to the merge queue Jan 1, 2026
@servo-highfive servo-highfive added the S-awaiting-merge The PR is in the process of compiling and running tests on the automated CI. label Jan 1, 2026
Merged via the queue into servo:main with commit 5b92636 Jan 1, 2026
59 of 60 checks passed
@servo-highfive servo-highfive removed the S-awaiting-merge The PR is in the process of compiling and running tests on the automated CI. label Jan 1, 2026
@waynevanson waynevanson deleted the refactor_allow_to_expect branch January 5, 2026 10:43
@waynevanson
Copy link
Copy Markdown
Contributor Author

Thank you for the reviews @TimvdLippe, I appreciate it.

I'll get the next set of changes ready for review.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants