This repository was archived by the owner on May 28, 2025. It is now read-only.
File tree Expand file tree Collapse file tree 3 files changed +12
-13
lines changed Expand file tree Collapse file tree 3 files changed +12
-13
lines changed Original file line number Diff line number Diff line change @@ -240,21 +240,21 @@ pub struct LinkSelfContained {
240240impl LinkSelfContained {
241241 /// Incorporates an enabled or disabled component as specified on the CLI, if possible.
242242 /// For example: `+linker`, and `-crto`.
243- pub ( crate ) fn handle_cli_component ( & mut self , component : & str ) -> Result < ( ) , ( ) > {
243+ pub ( crate ) fn handle_cli_component ( & mut self , component : & str ) -> Option < ( ) > {
244244 // Note that for example `-Cself-contained=y -Cself-contained=-linker` is not an explicit
245245 // set of all values like `y` or `n` used to be. Therefore, if this flag had previously been
246246 // set in bulk with its historical values, then manually setting a component clears that
247247 // `explicitly_set` state.
248248 if let Some ( component_to_enable) = component. strip_prefix ( '+' ) {
249249 self . explicitly_set = None ;
250- self . components . insert ( component_to_enable . parse ( ) ?) ;
251- Ok ( ( ) )
250+ self . components . insert ( LinkSelfContainedComponents :: from_str ( component_to_enable ) ?) ;
251+ Some ( ( ) )
252252 } else if let Some ( component_to_disable) = component. strip_prefix ( '-' ) {
253253 self . explicitly_set = None ;
254- self . components . remove ( component_to_disable . parse ( ) ?) ;
255- Ok ( ( ) )
254+ self . components . remove ( LinkSelfContainedComponents :: from_str ( component_to_disable ) ?) ;
255+ Some ( ( ) )
256256 } else {
257- Err ( ( ) )
257+ None
258258 }
259259 }
260260
Original file line number Diff line number Diff line change @@ -1165,7 +1165,7 @@ mod parse {
11651165
11661166 // 2. Parse a list of enabled and disabled components.
11671167 for comp in s. split ( ',' ) {
1168- if slot. handle_cli_component ( comp) . is_err ( ) {
1168+ if slot. handle_cli_component ( comp) . is_none ( ) {
11691169 return false ;
11701170 }
11711171 }
Original file line number Diff line number Diff line change @@ -539,18 +539,17 @@ bitflags::bitflags! {
539539 }
540540}
541541
542- impl FromStr for LinkSelfContainedComponents {
543- type Err = ( ) ;
544-
545- fn from_str ( s : & str ) -> Result < Self , Self :: Err > {
546- Ok ( match s {
542+ impl LinkSelfContainedComponents {
543+ /// Parses a single `-Clink-self-contained` well-known component, not a set of flags.
544+ pub fn from_str ( s : & str ) -> Option < LinkSelfContainedComponents > {
545+ Some ( match s {
547546 "crto" => LinkSelfContainedComponents :: CRT_OBJECTS ,
548547 "libc" => LinkSelfContainedComponents :: LIBC ,
549548 "unwind" => LinkSelfContainedComponents :: UNWIND ,
550549 "linker" => LinkSelfContainedComponents :: LINKER ,
551550 "sanitizers" => LinkSelfContainedComponents :: SANITIZERS ,
552551 "mingw" => LinkSelfContainedComponents :: MINGW ,
553- _ => return Err ( ( ) ) ,
552+ _ => return None ,
554553 } )
555554 }
556555}
You can’t perform that action at this time.
0 commit comments