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 @@ -1160,7 +1160,7 @@ mod parse {
11601160
11611161 // 2. Parse a list of enabled and disabled components.
11621162 for comp in s. split ( ',' ) {
1163- if slot. handle_cli_component ( comp) . is_err ( ) {
1163+ if slot. handle_cli_component ( comp) . is_none ( ) {
11641164 return false ;
11651165 }
11661166 }
Original file line number Diff line number Diff line change @@ -550,18 +550,17 @@ bitflags::bitflags! {
550550 }
551551}
552552
553- impl FromStr for LinkSelfContainedComponents {
554- type Err = ( ) ;
555-
556- fn from_str ( s : & str ) -> Result < Self , Self :: Err > {
557- Ok ( match s {
553+ impl LinkSelfContainedComponents {
554+ /// Parses a single `-Clink-self-contained` well-known component, not a set of flags.
555+ pub fn from_str ( s : & str ) -> Option < LinkSelfContainedComponents > {
556+ Some ( match s {
558557 "crto" => LinkSelfContainedComponents :: CRT_OBJECTS ,
559558 "libc" => LinkSelfContainedComponents :: LIBC ,
560559 "unwind" => LinkSelfContainedComponents :: UNWIND ,
561560 "linker" => LinkSelfContainedComponents :: LINKER ,
562561 "sanitizers" => LinkSelfContainedComponents :: SANITIZERS ,
563562 "mingw" => LinkSelfContainedComponents :: MINGW ,
564- _ => return Err ( ( ) ) ,
563+ _ => return None ,
565564 } )
566565 }
567566}
You can’t perform that action at this time.
0 commit comments