File tree Expand file tree Collapse file tree 2 files changed +11
-13
lines changed Expand file tree Collapse file tree 2 files changed +11
-13
lines changed Original file line number Diff line number Diff line change @@ -832,32 +832,30 @@ declare_clippy_lint! {
832832 /// etc. instead.
833833 ///
834834 /// ### Why is this bad?
835- /// The function will always be called and potentially
836- /// allocate an object acting as the default .
835+ /// The function will always be called. This is only bad if it allocates or
836+ /// does some non-trivial amount of work .
837837 ///
838838 /// ### Known problems
839- /// If the function has side-effects, not calling it will
840- /// change the semantic of the program, but you shouldn't rely on that anyway.
839+ /// If the function has side-effects, not calling it will change the
840+ /// semantic of the program, but you shouldn't rely on that.
841+ ///
842+ /// The lint also cannot figure out whether the function you call is
843+ /// actually expensive to call or not.
841844 ///
842845 /// ### Example
843846 /// ```rust
844847 /// # let foo = Some(String::new());
845- /// foo.unwrap_or(String::new( ));
848+ /// foo.unwrap_or(String::from("empty" ));
846849 /// ```
847850 ///
848851 /// Use instead:
849852 /// ```rust
850853 /// # let foo = Some(String::new());
851- /// foo.unwrap_or_else(String::new);
852- ///
853- /// // or
854- ///
855- /// # let foo = Some(String::new());
856- /// foo.unwrap_or_default();
854+ /// foo.unwrap_or_else(|| String::from("empty"));
857855 /// ```
858856 #[ clippy:: version = "pre 1.29.0" ]
859857 pub OR_FUN_CALL ,
860- perf ,
858+ nursery ,
861859 "using any `*or` method with a function call, which suggests `*or_else`"
862860}
863861
Original file line number Diff line number Diff line change 1- #![ warn( clippy:: all) ]
1+ #![ warn( clippy:: all, clippy :: or_fun_call ) ]
22
33fn main ( ) {
44 let s = Some ( String :: from ( "test string" ) ) . unwrap_or ( "Fail" . to_string ( ) ) . len ( ) ;
You can’t perform that action at this time.
0 commit comments