[−][src]Struct c2rust_refactor::transform::rewrite::RewriteExpr
rewrite_expr
Command
Usage: rewrite_expr PAT REPL [FILTER]
Marks: reads FILTER
, if set; may read other marks depending on PAT
For every expression in the crate matching PAT
, replace it with REPL
.
PAT
and REPL
are both Rust expressions. PAT
can use placeholders to
capture nodes from the matched AST, and REPL
can refer to those same
placeholders to substitute in the captured nodes. See the matcher
module for
details on AST pattern matching.
If FILTER
is provided, only expressions marked FILTER
will be rewritten.
This usage is obsolete - change PAT
to marked!(PAT, FILTER)
to get the same
behavior.
Example:
fn double(x: i32) -> i32 { x * 2 }
After running rewrite_expr '$e * 2' '$e + $e'
:
fn double(x: i32) -> i32 { x + x }
Here $e * 2
matches x * 2
, capturing x
as $e
. Then x
is
substituted for $e
in $e + $e
, producing the final expression x + x
.
Fields
pat: String
repl: String
filter: Option<Symbol>
Trait Implementations
impl Transform for RewriteExpr
[src]
fn transform(&self, krate: &mut Crate, st: &CommandState, cx: &RefactorCtxt)
[src]
fn min_phase(&self) -> Phase
[src]
Auto Trait Implementations
impl !Send for RewriteExpr
impl !Sync for RewriteExpr
Blanket Implementations
impl<T> Lone for T
[src]
impl<T> From for T
[src]
impl<T, U> Into for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T> Borrow for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> BorrowMut for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T, U> TryInto for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<E> SpecializationError for E
[src]
default fn not_found<S, T>(
trait_name: &'static str,
method_name: &'static str
) -> E where
T: ?Sized,
[src]
trait_name: &'static str,
method_name: &'static str
) -> E where
T: ?Sized,
impl<T> Erased for T
[src]
impl<T> Send for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Sync for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Same for T
type Output = T
Should always be Self
impl<T> MaybeResult for T
[src]
impl<'a, T> Captures for T where
T: ?Sized,
[src]
T: ?Sized,