Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
After adding the first
write!
usage to my project and printing the result to the console, I noticed, that my binary contains the strings "calledOption::unwrap()
on aNone
value`" and more importantly "C:\Users\Patrick Fischer.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\fmt\builders.rs", with my release build being configured as follows:I am in a no_std environment and my custom panic handler is a simple
loop {}
. I did not expect the above information to be preserved. I heavily suspect the edited function to be the culprit. It contains the only direct use ofOption::unwrap
in the entire file and I tracked the symbols in the assembly to be used from the section_ZN68_$LT$core..fmt..builders..PadAdapter$u20$as$u20$core..fmt..Write$GT$9write_str17ha1d5e5efe167202aE
.Aside from me suspecting this function to be the culprit, the replaced code performs the same operation as
Option::insert
, but without theunreachable_unchecked
optimizationOption::insert
provides. Therefore, it makes sense to me to use the more optimized version, instead.As I don't change any semantics, I hope a simple pull request suffices.