blob: 2b821bbaad121e5ac51bdb7b9ef7e0d52d7ee028 [file] [log] [blame]
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="A Rust expression."><meta name="keywords" content="rust, rustlang, rust-lang, Expr"><title>Expr in syn - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../SourceSerif4-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../FiraSans-Regular.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../FiraSans-Medium.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../SourceCodePro-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../SourceSerif4-Bold.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../SourceCodePro-Semibold.ttf.woff2"><link rel="stylesheet" href="../normalize.css"><link rel="stylesheet" href="../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" href="../ayu.css" disabled><link rel="stylesheet" href="../dark.css" disabled><link rel="stylesheet" href="../light.css" id="themeStyle"><script id="default-settings" ></script><script src="../storage.js"></script><script defer src="sidebar-items.js"></script><script defer src="../main.js"></script><noscript><link rel="stylesheet" href="../noscript.css"></noscript><link rel="alternate icon" type="image/png" href="../favicon-16x16.png"><link rel="alternate icon" type="image/png" href="../favicon-32x32.png"><link rel="icon" type="image/svg+xml" href="../favicon.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button><a class="sidebar-logo" href="../syn/index.html"><div class="logo-container"><img class="rust-logo" src="../rust-logo.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../syn/index.html"><div class="logo-container"><img class="rust-logo" src="../rust-logo.svg" alt="logo"></div></a><h2 class="location"><a href="#">Expr</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.Array">Array</a></li><li><a href="#variant.Assign">Assign</a></li><li><a href="#variant.Async">Async</a></li><li><a href="#variant.Await">Await</a></li><li><a href="#variant.Binary">Binary</a></li><li><a href="#variant.Block">Block</a></li><li><a href="#variant.Break">Break</a></li><li><a href="#variant.Call">Call</a></li><li><a href="#variant.Cast">Cast</a></li><li><a href="#variant.Closure">Closure</a></li><li><a href="#variant.Const">Const</a></li><li><a href="#variant.Continue">Continue</a></li><li><a href="#variant.Field">Field</a></li><li><a href="#variant.ForLoop">ForLoop</a></li><li><a href="#variant.Group">Group</a></li><li><a href="#variant.If">If</a></li><li><a href="#variant.Index">Index</a></li><li><a href="#variant.Infer">Infer</a></li><li><a href="#variant.Let">Let</a></li><li><a href="#variant.Lit">Lit</a></li><li><a href="#variant.Loop">Loop</a></li><li><a href="#variant.Macro">Macro</a></li><li><a href="#variant.Match">Match</a></li><li><a href="#variant.MethodCall">MethodCall</a></li><li><a href="#variant.Paren">Paren</a></li><li><a href="#variant.Path">Path</a></li><li><a href="#variant.Range">Range</a></li><li><a href="#variant.Reference">Reference</a></li><li><a href="#variant.Repeat">Repeat</a></li><li><a href="#variant.Return">Return</a></li><li><a href="#variant.Struct">Struct</a></li><li><a href="#variant.Try">Try</a></li><li><a href="#variant.TryBlock">TryBlock</a></li><li><a href="#variant.Tuple">Tuple</a></li><li><a href="#variant.Unary">Unary</a></li><li><a href="#variant.Unsafe">Unsafe</a></li><li><a href="#variant.Verbatim">Verbatim</a></li><li><a href="#variant.While">While</a></li><li><a href="#variant.Yield">Yield</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.parse_without_eager_brace">parse_without_eager_brace</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-Expr">Clone</a></li><li><a href="#impl-Debug-for-Expr">Debug</a></li><li><a href="#impl-Eq-for-Expr">Eq</a></li><li><a href="#impl-From%3CExprArray%3E-for-Expr">From&lt;ExprArray&gt;</a></li><li><a href="#impl-From%3CExprAssign%3E-for-Expr">From&lt;ExprAssign&gt;</a></li><li><a href="#impl-From%3CExprAsync%3E-for-Expr">From&lt;ExprAsync&gt;</a></li><li><a href="#impl-From%3CExprAwait%3E-for-Expr">From&lt;ExprAwait&gt;</a></li><li><a href="#impl-From%3CExprBinary%3E-for-Expr">From&lt;ExprBinary&gt;</a></li><li><a href="#impl-From%3CExprBlock%3E-for-Expr">From&lt;ExprBlock&gt;</a></li><li><a href="#impl-From%3CExprBreak%3E-for-Expr">From&lt;ExprBreak&gt;</a></li><li><a href="#impl-From%3CExprCall%3E-for-Expr">From&lt;ExprCall&gt;</a></li><li><a href="#impl-From%3CExprCast%3E-for-Expr">From&lt;ExprCast&gt;</a></li><li><a href="#impl-From%3CExprClosure%3E-for-Expr">From&lt;ExprClosure&gt;</a></li><li><a href="#impl-From%3CExprConst%3E-for-Expr">From&lt;ExprConst&gt;</a></li><li><a href="#impl-From%3CExprContinue%3E-for-Expr">From&lt;ExprContinue&gt;</a></li><li><a href="#impl-From%3CExprField%3E-for-Expr">From&lt;ExprField&gt;</a></li><li><a href="#impl-From%3CExprForLoop%3E-for-Expr">From&lt;ExprForLoop&gt;</a></li><li><a href="#impl-From%3CExprGroup%3E-for-Expr">From&lt;ExprGroup&gt;</a></li><li><a href="#impl-From%3CExprIf%3E-for-Expr">From&lt;ExprIf&gt;</a></li><li><a href="#impl-From%3CExprIndex%3E-for-Expr">From&lt;ExprIndex&gt;</a></li><li><a href="#impl-From%3CExprInfer%3E-for-Expr">From&lt;ExprInfer&gt;</a></li><li><a href="#impl-From%3CExprLet%3E-for-Expr">From&lt;ExprLet&gt;</a></li><li><a href="#impl-From%3CExprLit%3E-for-Expr">From&lt;ExprLit&gt;</a></li><li><a href="#impl-From%3CExprLoop%3E-for-Expr">From&lt;ExprLoop&gt;</a></li><li><a href="#impl-From%3CExprMacro%3E-for-Expr">From&lt;ExprMacro&gt;</a></li><li><a href="#impl-From%3CExprMatch%3E-for-Expr">From&lt;ExprMatch&gt;</a></li><li><a href="#impl-From%3CExprMethodCall%3E-for-Expr">From&lt;ExprMethodCall&gt;</a></li><li><a href="#impl-From%3CExprParen%3E-for-Expr">From&lt;ExprParen&gt;</a></li><li><a href="#impl-From%3CExprPath%3E-for-Expr">From&lt;ExprPath&gt;</a></li><li><a href="#impl-From%3CExprRange%3E-for-Expr">From&lt;ExprRange&gt;</a></li><li><a href="#impl-From%3CExprReference%3E-for-Expr">From&lt;ExprReference&gt;</a></li><li><a href="#impl-From%3CExprRepeat%3E-for-Expr">From&lt;ExprRepeat&gt;</a></li><li><a href="#impl-From%3CExprReturn%3E-for-Expr">From&lt;ExprReturn&gt;</a></li><li><a href="#impl-From%3CExprStruct%3E-for-Expr">From&lt;ExprStruct&gt;</a></li><li><a href="#impl-From%3CExprTry%3E-for-Expr">From&lt;ExprTry&gt;</a></li><li><a href="#impl-From%3CExprTryBlock%3E-for-Expr">From&lt;ExprTryBlock&gt;</a></li><li><a href="#impl-From%3CExprTuple%3E-for-Expr">From&lt;ExprTuple&gt;</a></li><li><a href="#impl-From%3CExprUnary%3E-for-Expr">From&lt;ExprUnary&gt;</a></li><li><a href="#impl-From%3CExprUnsafe%3E-for-Expr">From&lt;ExprUnsafe&gt;</a></li><li><a href="#impl-From%3CExprWhile%3E-for-Expr">From&lt;ExprWhile&gt;</a></li><li><a href="#impl-From%3CExprYield%3E-for-Expr">From&lt;ExprYield&gt;</a></li><li><a href="#impl-Hash-for-Expr">Hash</a></li><li><a href="#impl-Parse-for-Expr">Parse</a></li><li><a href="#impl-PartialEq%3CExpr%3E-for-Expr">PartialEq&lt;Expr&gt;</a></li><li><a href="#impl-ToTokens-for-Expr">ToTokens</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Expr">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Expr">!Send</a></li><li><a href="#impl-Sync-for-Expr">!Sync</a></li><li><a href="#impl-Unpin-for-Expr">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Expr">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Expr">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Expr">Borrow&lt;T&gt;</a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Expr">BorrowMut&lt;T&gt;</a></li><li><a href="#impl-From%3CT%3E-for-Expr">From&lt;T&gt;</a></li><li><a href="#impl-Into%3CU%3E-for-Expr">Into&lt;U&gt;</a></li><li><a href="#impl-Spanned-for-Expr">Spanned</a></li><li><a href="#impl-ToOwned-for-Expr">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-Expr">TryFrom&lt;U&gt;</a></li><li><a href="#impl-TryInto%3CU%3E-for-Expr">TryInto&lt;U&gt;</a></li></ul></section><h2><a href="index.html">In syn</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../wheel.svg"></a></div></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="index.html">syn</a>::<wbr><a class="enum" href="#">Expr</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../clipboard.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/syn/expr.rs.html#12-240">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span></div><div class="item-decl"><pre class="rust enum"><code>#[non_exhaustive]
pub enum Expr {
<details class="rustdoc-toggle type-contents-toggle"><summary class="hideme"><span>Show 39 variants</span></summary> Array(<a class="struct" href="struct.ExprArray.html" title="struct syn::ExprArray">ExprArray</a>),
Assign(<a class="struct" href="struct.ExprAssign.html" title="struct syn::ExprAssign">ExprAssign</a>),
Async(<a class="struct" href="struct.ExprAsync.html" title="struct syn::ExprAsync">ExprAsync</a>),
Await(<a class="struct" href="struct.ExprAwait.html" title="struct syn::ExprAwait">ExprAwait</a>),
Binary(<a class="struct" href="struct.ExprBinary.html" title="struct syn::ExprBinary">ExprBinary</a>),
Block(<a class="struct" href="struct.ExprBlock.html" title="struct syn::ExprBlock">ExprBlock</a>),
Break(<a class="struct" href="struct.ExprBreak.html" title="struct syn::ExprBreak">ExprBreak</a>),
Call(<a class="struct" href="struct.ExprCall.html" title="struct syn::ExprCall">ExprCall</a>),
Cast(<a class="struct" href="struct.ExprCast.html" title="struct syn::ExprCast">ExprCast</a>),
Closure(<a class="struct" href="struct.ExprClosure.html" title="struct syn::ExprClosure">ExprClosure</a>),
Const(<a class="struct" href="struct.ExprConst.html" title="struct syn::ExprConst">ExprConst</a>),
Continue(<a class="struct" href="struct.ExprContinue.html" title="struct syn::ExprContinue">ExprContinue</a>),
Field(<a class="struct" href="struct.ExprField.html" title="struct syn::ExprField">ExprField</a>),
ForLoop(<a class="struct" href="struct.ExprForLoop.html" title="struct syn::ExprForLoop">ExprForLoop</a>),
Group(<a class="struct" href="struct.ExprGroup.html" title="struct syn::ExprGroup">ExprGroup</a>),
If(<a class="struct" href="struct.ExprIf.html" title="struct syn::ExprIf">ExprIf</a>),
Index(<a class="struct" href="struct.ExprIndex.html" title="struct syn::ExprIndex">ExprIndex</a>),
Infer(<a class="struct" href="struct.ExprInfer.html" title="struct syn::ExprInfer">ExprInfer</a>),
Let(<a class="struct" href="struct.ExprLet.html" title="struct syn::ExprLet">ExprLet</a>),
Lit(<a class="struct" href="struct.ExprLit.html" title="struct syn::ExprLit">ExprLit</a>),
Loop(<a class="struct" href="struct.ExprLoop.html" title="struct syn::ExprLoop">ExprLoop</a>),
Macro(<a class="struct" href="struct.ExprMacro.html" title="struct syn::ExprMacro">ExprMacro</a>),
Match(<a class="struct" href="struct.ExprMatch.html" title="struct syn::ExprMatch">ExprMatch</a>),
MethodCall(<a class="struct" href="struct.ExprMethodCall.html" title="struct syn::ExprMethodCall">ExprMethodCall</a>),
Paren(<a class="struct" href="struct.ExprParen.html" title="struct syn::ExprParen">ExprParen</a>),
Path(<a class="struct" href="struct.ExprPath.html" title="struct syn::ExprPath">ExprPath</a>),
Range(<a class="struct" href="struct.ExprRange.html" title="struct syn::ExprRange">ExprRange</a>),
Reference(<a class="struct" href="struct.ExprReference.html" title="struct syn::ExprReference">ExprReference</a>),
Repeat(<a class="struct" href="struct.ExprRepeat.html" title="struct syn::ExprRepeat">ExprRepeat</a>),
Return(<a class="struct" href="struct.ExprReturn.html" title="struct syn::ExprReturn">ExprReturn</a>),
Struct(<a class="struct" href="struct.ExprStruct.html" title="struct syn::ExprStruct">ExprStruct</a>),
Try(<a class="struct" href="struct.ExprTry.html" title="struct syn::ExprTry">ExprTry</a>),
TryBlock(<a class="struct" href="struct.ExprTryBlock.html" title="struct syn::ExprTryBlock">ExprTryBlock</a>),
Tuple(<a class="struct" href="struct.ExprTuple.html" title="struct syn::ExprTuple">ExprTuple</a>),
Unary(<a class="struct" href="struct.ExprUnary.html" title="struct syn::ExprUnary">ExprUnary</a>),
Unsafe(<a class="struct" href="struct.ExprUnsafe.html" title="struct syn::ExprUnsafe">ExprUnsafe</a>),
Verbatim(<a class="struct" href="../proc_macro2/struct.TokenStream.html" title="struct proc_macro2::TokenStream">TokenStream</a>),
While(<a class="struct" href="struct.ExprWhile.html" title="struct syn::ExprWhile">ExprWhile</a>),
Yield(<a class="struct" href="struct.ExprYield.html" title="struct syn::ExprYield">ExprYield</a>),
</details>}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A Rust expression.</p>
<p><em>This type is available only if Syn is built with the <code>&quot;derive&quot;</code> or <code>&quot;full&quot;</code>
feature, but most of the variants are not available unless “full” is enabled.</em></p>
<h2 id="syntax-tree-enums"><a href="#syntax-tree-enums">Syntax tree enums</a></h2>
<p>This type is a syntax tree enum. In Syn this and other syntax tree enums
are designed to be traversed using the following rebinding idiom.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>expr: Expr = <span class="comment">/* ... */</span>;
<span class="kw">match </span>expr {
Expr::MethodCall(expr) =&gt; {
<span class="comment">/* ... */
</span>}
Expr::Cast(expr) =&gt; {
<span class="comment">/* ... */
</span>}
Expr::If(expr) =&gt; {
<span class="comment">/* ... */
</span>}
<span class="comment">/* ... */</span></code></pre></div>
<p>We begin with a variable <code>expr</code> of type <code>Expr</code> that has no fields
(because it is an enum), and by matching on it and rebinding a variable
with the same name <code>expr</code> we effectively imbue our variable with all of
the data fields provided by the variant that it turned out to be. So for
example above if we ended up in the <code>MethodCall</code> case then we get to use
<code>expr.receiver</code>, <code>expr.args</code> etc; if we ended up in the <code>If</code> case we get
to use <code>expr.cond</code>, <code>expr.then_branch</code>, <code>expr.else_branch</code>.</p>
<p>This approach avoids repeating the variant names twice on every line.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="comment">// Repetitive; recommend not doing this.
</span><span class="kw">match </span>expr {
Expr::MethodCall(ExprMethodCall { method, args, .. }) =&gt; {</code></pre></div>
<p>In general, the name to which a syntax tree enum variant is bound should
be a suitable name for the complete syntax tree enum type.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="comment">// Binding is called `base` which is the name I would use if I were
// assigning `*discriminant.base` without an `if let`.
</span><span class="kw">if let </span>Expr::Tuple(base) = <span class="kw-2">*</span>discriminant.base {</code></pre></div>
<p>A sign that you may not be choosing the right variable names is if you
see names getting repeated in your code, like accessing
<code>receiver.receiver</code> or <code>pat.pat</code> or <code>cond.cond</code>.</p>
</div></details><h2 id="variants" class="variants small-section-header">Variants (Non-exhaustive)<a href="#variants" class="anchor"></a></h2><details class="rustdoc-toggle non-exhaustive"><summary class="hideme"><span>This enum is marked as non-exhaustive</span></summary><div class="docblock">Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.</div></details><h3 id="variant.Array" class="variant small-section-header"><a href="#variant.Array" class="anchor field"></a><code>Array(<a class="struct" href="struct.ExprArray.html" title="struct syn::ExprArray">ExprArray</a>)</code></h3><div class="docblock"><p>A slice literal expression: <code>[a, b, c, d]</code>.</p>
</div><h3 id="variant.Assign" class="variant small-section-header"><a href="#variant.Assign" class="anchor field"></a><code>Assign(<a class="struct" href="struct.ExprAssign.html" title="struct syn::ExprAssign">ExprAssign</a>)</code></h3><div class="docblock"><p>An assignment expression: <code>a = compute()</code>.</p>
</div><h3 id="variant.Async" class="variant small-section-header"><a href="#variant.Async" class="anchor field"></a><code>Async(<a class="struct" href="struct.ExprAsync.html" title="struct syn::ExprAsync">ExprAsync</a>)</code></h3><div class="docblock"><p>An async block: <code>async { ... }</code>.</p>
</div><h3 id="variant.Await" class="variant small-section-header"><a href="#variant.Await" class="anchor field"></a><code>Await(<a class="struct" href="struct.ExprAwait.html" title="struct syn::ExprAwait">ExprAwait</a>)</code></h3><div class="docblock"><p>An await expression: <code>fut.await</code>.</p>
</div><h3 id="variant.Binary" class="variant small-section-header"><a href="#variant.Binary" class="anchor field"></a><code>Binary(<a class="struct" href="struct.ExprBinary.html" title="struct syn::ExprBinary">ExprBinary</a>)</code></h3><div class="docblock"><p>A binary operation: <code>a + b</code>, <code>a += b</code>.</p>
</div><h3 id="variant.Block" class="variant small-section-header"><a href="#variant.Block" class="anchor field"></a><code>Block(<a class="struct" href="struct.ExprBlock.html" title="struct syn::ExprBlock">ExprBlock</a>)</code></h3><div class="docblock"><p>A blocked scope: <code>{ ... }</code>.</p>
</div><h3 id="variant.Break" class="variant small-section-header"><a href="#variant.Break" class="anchor field"></a><code>Break(<a class="struct" href="struct.ExprBreak.html" title="struct syn::ExprBreak">ExprBreak</a>)</code></h3><div class="docblock"><p>A <code>break</code>, with an optional label to break and an optional
expression.</p>
</div><h3 id="variant.Call" class="variant small-section-header"><a href="#variant.Call" class="anchor field"></a><code>Call(<a class="struct" href="struct.ExprCall.html" title="struct syn::ExprCall">ExprCall</a>)</code></h3><div class="docblock"><p>A function call expression: <code>invoke(a, b)</code>.</p>
</div><h3 id="variant.Cast" class="variant small-section-header"><a href="#variant.Cast" class="anchor field"></a><code>Cast(<a class="struct" href="struct.ExprCast.html" title="struct syn::ExprCast">ExprCast</a>)</code></h3><div class="docblock"><p>A cast expression: <code>foo as f64</code>.</p>
</div><h3 id="variant.Closure" class="variant small-section-header"><a href="#variant.Closure" class="anchor field"></a><code>Closure(<a class="struct" href="struct.ExprClosure.html" title="struct syn::ExprClosure">ExprClosure</a>)</code></h3><div class="docblock"><p>A closure expression: <code>|a, b| a + b</code>.</p>
</div><h3 id="variant.Const" class="variant small-section-header"><a href="#variant.Const" class="anchor field"></a><code>Const(<a class="struct" href="struct.ExprConst.html" title="struct syn::ExprConst">ExprConst</a>)</code></h3><div class="docblock"><p>A const block: <code>const { ... }</code>.</p>
</div><h3 id="variant.Continue" class="variant small-section-header"><a href="#variant.Continue" class="anchor field"></a><code>Continue(<a class="struct" href="struct.ExprContinue.html" title="struct syn::ExprContinue">ExprContinue</a>)</code></h3><div class="docblock"><p>A <code>continue</code>, with an optional label.</p>
</div><h3 id="variant.Field" class="variant small-section-header"><a href="#variant.Field" class="anchor field"></a><code>Field(<a class="struct" href="struct.ExprField.html" title="struct syn::ExprField">ExprField</a>)</code></h3><div class="docblock"><p>Access of a named struct field (<code>obj.k</code>) or unnamed tuple struct
field (<code>obj.0</code>).</p>
</div><h3 id="variant.ForLoop" class="variant small-section-header"><a href="#variant.ForLoop" class="anchor field"></a><code>ForLoop(<a class="struct" href="struct.ExprForLoop.html" title="struct syn::ExprForLoop">ExprForLoop</a>)</code></h3><div class="docblock"><p>A for loop: <code>for pat in expr { ... }</code>.</p>
</div><h3 id="variant.Group" class="variant small-section-header"><a href="#variant.Group" class="anchor field"></a><code>Group(<a class="struct" href="struct.ExprGroup.html" title="struct syn::ExprGroup">ExprGroup</a>)</code></h3><div class="docblock"><p>An expression contained within invisible delimiters.</p>
<p>This variant is important for faithfully representing the precedence
of expressions and is related to <code>None</code>-delimited spans in a
<code>TokenStream</code>.</p>
</div><h3 id="variant.If" class="variant small-section-header"><a href="#variant.If" class="anchor field"></a><code>If(<a class="struct" href="struct.ExprIf.html" title="struct syn::ExprIf">ExprIf</a>)</code></h3><div class="docblock"><p>An <code>if</code> expression with an optional <code>else</code> block: <code>if expr { ... } else { ... }</code>.</p>
<p>The <code>else</code> branch expression may only be an <code>If</code> or <code>Block</code>
expression, not any of the other types of expression.</p>
</div><h3 id="variant.Index" class="variant small-section-header"><a href="#variant.Index" class="anchor field"></a><code>Index(<a class="struct" href="struct.ExprIndex.html" title="struct syn::ExprIndex">ExprIndex</a>)</code></h3><div class="docblock"><p>A square bracketed indexing expression: <code>vector[2]</code>.</p>
</div><h3 id="variant.Infer" class="variant small-section-header"><a href="#variant.Infer" class="anchor field"></a><code>Infer(<a class="struct" href="struct.ExprInfer.html" title="struct syn::ExprInfer">ExprInfer</a>)</code></h3><div class="docblock"><p>The inferred value of a const generic argument, denoted <code>_</code>.</p>
</div><h3 id="variant.Let" class="variant small-section-header"><a href="#variant.Let" class="anchor field"></a><code>Let(<a class="struct" href="struct.ExprLet.html" title="struct syn::ExprLet">ExprLet</a>)</code></h3><div class="docblock"><p>A <code>let</code> guard: <code>let Some(x) = opt</code>.</p>
</div><h3 id="variant.Lit" class="variant small-section-header"><a href="#variant.Lit" class="anchor field"></a><code>Lit(<a class="struct" href="struct.ExprLit.html" title="struct syn::ExprLit">ExprLit</a>)</code></h3><div class="docblock"><p>A literal in place of an expression: <code>1</code>, <code>&quot;foo&quot;</code>.</p>
</div><h3 id="variant.Loop" class="variant small-section-header"><a href="#variant.Loop" class="anchor field"></a><code>Loop(<a class="struct" href="struct.ExprLoop.html" title="struct syn::ExprLoop">ExprLoop</a>)</code></h3><div class="docblock"><p>Conditionless loop: <code>loop { ... }</code>.</p>
</div><h3 id="variant.Macro" class="variant small-section-header"><a href="#variant.Macro" class="anchor field"></a><code>Macro(<a class="struct" href="struct.ExprMacro.html" title="struct syn::ExprMacro">ExprMacro</a>)</code></h3><div class="docblock"><p>A macro invocation expression: <code>format!(&quot;{}&quot;, q)</code>.</p>
</div><h3 id="variant.Match" class="variant small-section-header"><a href="#variant.Match" class="anchor field"></a><code>Match(<a class="struct" href="struct.ExprMatch.html" title="struct syn::ExprMatch">ExprMatch</a>)</code></h3><div class="docblock"><p>A <code>match</code> expression: <code>match n { Some(n) =&gt; {}, None =&gt; {} }</code>.</p>
</div><h3 id="variant.MethodCall" class="variant small-section-header"><a href="#variant.MethodCall" class="anchor field"></a><code>MethodCall(<a class="struct" href="struct.ExprMethodCall.html" title="struct syn::ExprMethodCall">ExprMethodCall</a>)</code></h3><div class="docblock"><p>A method call expression: <code>x.foo::&lt;T&gt;(a, b)</code>.</p>
</div><h3 id="variant.Paren" class="variant small-section-header"><a href="#variant.Paren" class="anchor field"></a><code>Paren(<a class="struct" href="struct.ExprParen.html" title="struct syn::ExprParen">ExprParen</a>)</code></h3><div class="docblock"><p>A parenthesized expression: <code>(a + b)</code>.</p>
</div><h3 id="variant.Path" class="variant small-section-header"><a href="#variant.Path" class="anchor field"></a><code>Path(<a class="struct" href="struct.ExprPath.html" title="struct syn::ExprPath">ExprPath</a>)</code></h3><div class="docblock"><p>A path like <code>std::mem::replace</code> possibly containing generic
parameters and a qualified self-type.</p>
<p>A plain identifier like <code>x</code> is a path of length 1.</p>
</div><h3 id="variant.Range" class="variant small-section-header"><a href="#variant.Range" class="anchor field"></a><code>Range(<a class="struct" href="struct.ExprRange.html" title="struct syn::ExprRange">ExprRange</a>)</code></h3><div class="docblock"><p>A range expression: <code>1..2</code>, <code>1..</code>, <code>..2</code>, <code>1..=2</code>, <code>..=2</code>.</p>
</div><h3 id="variant.Reference" class="variant small-section-header"><a href="#variant.Reference" class="anchor field"></a><code>Reference(<a class="struct" href="struct.ExprReference.html" title="struct syn::ExprReference">ExprReference</a>)</code></h3><div class="docblock"><p>A referencing operation: <code>&amp;a</code> or <code>&amp;mut a</code>.</p>
</div><h3 id="variant.Repeat" class="variant small-section-header"><a href="#variant.Repeat" class="anchor field"></a><code>Repeat(<a class="struct" href="struct.ExprRepeat.html" title="struct syn::ExprRepeat">ExprRepeat</a>)</code></h3><div class="docblock"><p>An array literal constructed from one repeated element: <code>[0u8; N]</code>.</p>
</div><h3 id="variant.Return" class="variant small-section-header"><a href="#variant.Return" class="anchor field"></a><code>Return(<a class="struct" href="struct.ExprReturn.html" title="struct syn::ExprReturn">ExprReturn</a>)</code></h3><div class="docblock"><p>A <code>return</code>, with an optional value to be returned.</p>
</div><h3 id="variant.Struct" class="variant small-section-header"><a href="#variant.Struct" class="anchor field"></a><code>Struct(<a class="struct" href="struct.ExprStruct.html" title="struct syn::ExprStruct">ExprStruct</a>)</code></h3><div class="docblock"><p>A struct literal expression: <code>Point { x: 1, y: 1 }</code>.</p>
<p>The <code>rest</code> provides the value of the remaining fields as in <code>S { a: 1, b: 1, ..rest }</code>.</p>
</div><h3 id="variant.Try" class="variant small-section-header"><a href="#variant.Try" class="anchor field"></a><code>Try(<a class="struct" href="struct.ExprTry.html" title="struct syn::ExprTry">ExprTry</a>)</code></h3><div class="docblock"><p>A try-expression: <code>expr?</code>.</p>
</div><h3 id="variant.TryBlock" class="variant small-section-header"><a href="#variant.TryBlock" class="anchor field"></a><code>TryBlock(<a class="struct" href="struct.ExprTryBlock.html" title="struct syn::ExprTryBlock">ExprTryBlock</a>)</code></h3><div class="docblock"><p>A try block: <code>try { ... }</code>.</p>
</div><h3 id="variant.Tuple" class="variant small-section-header"><a href="#variant.Tuple" class="anchor field"></a><code>Tuple(<a class="struct" href="struct.ExprTuple.html" title="struct syn::ExprTuple">ExprTuple</a>)</code></h3><div class="docblock"><p>A tuple expression: <code>(a, b, c, d)</code>.</p>
</div><h3 id="variant.Unary" class="variant small-section-header"><a href="#variant.Unary" class="anchor field"></a><code>Unary(<a class="struct" href="struct.ExprUnary.html" title="struct syn::ExprUnary">ExprUnary</a>)</code></h3><div class="docblock"><p>A unary operation: <code>!x</code>, <code>*x</code>.</p>
</div><h3 id="variant.Unsafe" class="variant small-section-header"><a href="#variant.Unsafe" class="anchor field"></a><code>Unsafe(<a class="struct" href="struct.ExprUnsafe.html" title="struct syn::ExprUnsafe">ExprUnsafe</a>)</code></h3><div class="docblock"><p>An unsafe block: <code>unsafe { ... }</code>.</p>
</div><h3 id="variant.Verbatim" class="variant small-section-header"><a href="#variant.Verbatim" class="anchor field"></a><code>Verbatim(<a class="struct" href="../proc_macro2/struct.TokenStream.html" title="struct proc_macro2::TokenStream">TokenStream</a>)</code></h3><div class="docblock"><p>Tokens in expression position not interpreted by Syn.</p>
</div><h3 id="variant.While" class="variant small-section-header"><a href="#variant.While" class="anchor field"></a><code>While(<a class="struct" href="struct.ExprWhile.html" title="struct syn::ExprWhile">ExprWhile</a>)</code></h3><div class="docblock"><p>A while loop: <code>while expr { ... }</code>.</p>
</div><h3 id="variant.Yield" class="variant small-section-header"><a href="#variant.Yield" class="anchor field"></a><code>Yield(<a class="struct" href="struct.ExprYield.html" title="struct syn::ExprYield">ExprYield</a>)</code></h3><div class="docblock"><p>A yield expression: <code>yield expr</code>.</p>
</div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor"></a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Expr" class="impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#1038-1124">source</a><a href="#impl-Expr" class="anchor"></a><h3 class="code-header">impl <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.parse_without_eager_brace" class="method has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#1121-1123">source</a><h4 class="code-header">pub fn <a href="#method.parse_without_eager_brace" class="fnname">parse_without_eager_brace</a>(input: <a class="type" href="parse/type.ParseStream.html" title="type syn::parse::ParseStream">ParseStream</a>&lt;'_&gt;) -&gt; <a class="type" href="parse/type.Result.html" title="type syn::parse::Result">Result</a>&lt;<a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a>&gt;</h4></section></summary><div class="docblock"><p>An alternative to the primary <code>Expr::parse</code> parser (from the
<a href="parse/trait.Parse.html" title="Parse"><code>Parse</code></a> trait) for ambiguous syntactic positions in which a
trailing brace should not be taken as part of the expression.</p>
<p>Rust grammar has an ambiguity where braces sometimes turn a path
expression into a struct initialization and sometimes do not. In the
following code, the expression <code>S {}</code> is one expression. Presumably
there is an empty struct <code>struct S {}</code> defined somewhere which it is
instantiating.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let _ </span>= <span class="kw-2">*</span>S {};
<span class="comment">// parsed by rustc as: `*(S {})`</span></code></pre></div>
<p>We would want to parse the above using <code>Expr::parse</code> after the <code>=</code>
token.</p>
<p>But in the following, <code>S {}</code> is <em>not</em> a struct init expression.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">if </span><span class="kw-2">*</span>S {} {}
<span class="comment">// parsed by rustc as:
//
// if (*S) {
// /* empty block */
// }
// {
// /* another empty block */
// }</span></code></pre></div>
<p>For that reason we would want to parse if-conditions using
<code>Expr::parse_without_eager_brace</code> after the <code>if</code> token. Same for
similar syntactic positions such as the condition expr after a
<code>while</code> token or the expr at the top of a <code>match</code>.</p>
<p>The Rust grammar’s choices around which way this ambiguity is
resolved at various syntactic positions is fairly arbitrary. Really
either parse behavior could work in most positions, and language
designers just decide each case based on which is more likely to be
what the programmer had in mind most of the time.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">if return </span>S {} {}
<span class="comment">// parsed by rustc as:
//
// if (return (S {})) {
// }
//
// but could equally well have been this other arbitrary choice:
//
// if (return S) {
// }
// {}</span></code></pre></div>
<p>Note the grammar ambiguity on trailing braces is distinct from
precedence and is not captured by assigning a precedence level to
the braced struct init expr in relation to other operators. This can
be illustrated by <code>return 0..S {}</code> vs <code>match 0..S {}</code>. The former
parses as <code>return (0..(S {}))</code> implying tighter precedence for
struct init than <code>..</code>, while the latter parses as <code>match (0..S) {}</code>
implying tighter precedence for <code>..</code> than struct init, a
contradiction.</p>
</div></details></div></details></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor"></a></h2><div id="trait-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Clone-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="../src/syn/gen/clone.rs.html#228-301">source</a><a href="#impl-Clone-for-Expr" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/syn/gen/clone.rs.html#229-300">source</a><a href="#method.clone" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fnname">clone</a>(&amp;self) -&gt; Self</h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor"></a><h4 class="code-header">const fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fnname">clone_from</a>(&amp;mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="../src/syn/gen/debug.rs.html#393-471">source</a><a href="#impl-Debug-for-Expr" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/syn/gen/debug.rs.html#394-470">source</a><a href="#method.fmt" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fnname">fmt</a>(&amp;self, formatter: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>&lt;'_&gt;) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CExprArray%3E-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#impl-From%3CExprArray%3E-for-Expr" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="struct.ExprArray.html" title="struct syn::ExprArray">ExprArray</a>&gt; for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#method.from" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(e: <a class="struct" href="struct.ExprArray.html" title="struct syn::ExprArray">ExprArray</a>) -&gt; <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CExprAssign%3E-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#impl-From%3CExprAssign%3E-for-Expr" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="struct.ExprAssign.html" title="struct syn::ExprAssign">ExprAssign</a>&gt; for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#method.from-1" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(e: <a class="struct" href="struct.ExprAssign.html" title="struct syn::ExprAssign">ExprAssign</a>) -&gt; <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CExprAsync%3E-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#impl-From%3CExprAsync%3E-for-Expr" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="struct.ExprAsync.html" title="struct syn::ExprAsync">ExprAsync</a>&gt; for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-2" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#method.from-2" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(e: <a class="struct" href="struct.ExprAsync.html" title="struct syn::ExprAsync">ExprAsync</a>) -&gt; <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CExprAwait%3E-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#impl-From%3CExprAwait%3E-for-Expr" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="struct.ExprAwait.html" title="struct syn::ExprAwait">ExprAwait</a>&gt; for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-3" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#method.from-3" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(e: <a class="struct" href="struct.ExprAwait.html" title="struct syn::ExprAwait">ExprAwait</a>) -&gt; <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CExprBinary%3E-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#impl-From%3CExprBinary%3E-for-Expr" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="struct.ExprBinary.html" title="struct syn::ExprBinary">ExprBinary</a>&gt; for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-4" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#method.from-4" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(e: <a class="struct" href="struct.ExprBinary.html" title="struct syn::ExprBinary">ExprBinary</a>) -&gt; <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CExprBlock%3E-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#impl-From%3CExprBlock%3E-for-Expr" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="struct.ExprBlock.html" title="struct syn::ExprBlock">ExprBlock</a>&gt; for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-5" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#method.from-5" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(e: <a class="struct" href="struct.ExprBlock.html" title="struct syn::ExprBlock">ExprBlock</a>) -&gt; <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CExprBreak%3E-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#impl-From%3CExprBreak%3E-for-Expr" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="struct.ExprBreak.html" title="struct syn::ExprBreak">ExprBreak</a>&gt; for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-6" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#method.from-6" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(e: <a class="struct" href="struct.ExprBreak.html" title="struct syn::ExprBreak">ExprBreak</a>) -&gt; <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CExprCall%3E-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#impl-From%3CExprCall%3E-for-Expr" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="struct.ExprCall.html" title="struct syn::ExprCall">ExprCall</a>&gt; for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-7" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#method.from-7" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(e: <a class="struct" href="struct.ExprCall.html" title="struct syn::ExprCall">ExprCall</a>) -&gt; <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CExprCast%3E-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#impl-From%3CExprCast%3E-for-Expr" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="struct.ExprCast.html" title="struct syn::ExprCast">ExprCast</a>&gt; for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-8" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#method.from-8" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(e: <a class="struct" href="struct.ExprCast.html" title="struct syn::ExprCast">ExprCast</a>) -&gt; <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CExprClosure%3E-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#impl-From%3CExprClosure%3E-for-Expr" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="struct.ExprClosure.html" title="struct syn::ExprClosure">ExprClosure</a>&gt; for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-9" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#method.from-9" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(e: <a class="struct" href="struct.ExprClosure.html" title="struct syn::ExprClosure">ExprClosure</a>) -&gt; <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CExprConst%3E-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#impl-From%3CExprConst%3E-for-Expr" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="struct.ExprConst.html" title="struct syn::ExprConst">ExprConst</a>&gt; for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-10" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#method.from-10" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(e: <a class="struct" href="struct.ExprConst.html" title="struct syn::ExprConst">ExprConst</a>) -&gt; <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CExprContinue%3E-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#impl-From%3CExprContinue%3E-for-Expr" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="struct.ExprContinue.html" title="struct syn::ExprContinue">ExprContinue</a>&gt; for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-11" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#method.from-11" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(e: <a class="struct" href="struct.ExprContinue.html" title="struct syn::ExprContinue">ExprContinue</a>) -&gt; <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CExprField%3E-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#impl-From%3CExprField%3E-for-Expr" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="struct.ExprField.html" title="struct syn::ExprField">ExprField</a>&gt; for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-12" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#method.from-12" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(e: <a class="struct" href="struct.ExprField.html" title="struct syn::ExprField">ExprField</a>) -&gt; <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CExprForLoop%3E-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#impl-From%3CExprForLoop%3E-for-Expr" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="struct.ExprForLoop.html" title="struct syn::ExprForLoop">ExprForLoop</a>&gt; for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-13" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#method.from-13" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(e: <a class="struct" href="struct.ExprForLoop.html" title="struct syn::ExprForLoop">ExprForLoop</a>) -&gt; <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CExprGroup%3E-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#impl-From%3CExprGroup%3E-for-Expr" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="struct.ExprGroup.html" title="struct syn::ExprGroup">ExprGroup</a>&gt; for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-14" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#method.from-14" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(e: <a class="struct" href="struct.ExprGroup.html" title="struct syn::ExprGroup">ExprGroup</a>) -&gt; <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CExprIf%3E-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#impl-From%3CExprIf%3E-for-Expr" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="struct.ExprIf.html" title="struct syn::ExprIf">ExprIf</a>&gt; for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-15" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#method.from-15" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(e: <a class="struct" href="struct.ExprIf.html" title="struct syn::ExprIf">ExprIf</a>) -&gt; <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CExprIndex%3E-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#impl-From%3CExprIndex%3E-for-Expr" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="struct.ExprIndex.html" title="struct syn::ExprIndex">ExprIndex</a>&gt; for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-16" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#method.from-16" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(e: <a class="struct" href="struct.ExprIndex.html" title="struct syn::ExprIndex">ExprIndex</a>) -&gt; <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CExprInfer%3E-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#impl-From%3CExprInfer%3E-for-Expr" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="struct.ExprInfer.html" title="struct syn::ExprInfer">ExprInfer</a>&gt; for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-17" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#method.from-17" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(e: <a class="struct" href="struct.ExprInfer.html" title="struct syn::ExprInfer">ExprInfer</a>) -&gt; <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CExprLet%3E-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#impl-From%3CExprLet%3E-for-Expr" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="struct.ExprLet.html" title="struct syn::ExprLet">ExprLet</a>&gt; for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-18" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#method.from-18" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(e: <a class="struct" href="struct.ExprLet.html" title="struct syn::ExprLet">ExprLet</a>) -&gt; <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CExprLit%3E-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#impl-From%3CExprLit%3E-for-Expr" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="struct.ExprLit.html" title="struct syn::ExprLit">ExprLit</a>&gt; for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-19" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#method.from-19" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(e: <a class="struct" href="struct.ExprLit.html" title="struct syn::ExprLit">ExprLit</a>) -&gt; <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CExprLoop%3E-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#impl-From%3CExprLoop%3E-for-Expr" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="struct.ExprLoop.html" title="struct syn::ExprLoop">ExprLoop</a>&gt; for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-20" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#method.from-20" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(e: <a class="struct" href="struct.ExprLoop.html" title="struct syn::ExprLoop">ExprLoop</a>) -&gt; <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CExprMacro%3E-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#impl-From%3CExprMacro%3E-for-Expr" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="struct.ExprMacro.html" title="struct syn::ExprMacro">ExprMacro</a>&gt; for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-21" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#method.from-21" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(e: <a class="struct" href="struct.ExprMacro.html" title="struct syn::ExprMacro">ExprMacro</a>) -&gt; <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CExprMatch%3E-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#impl-From%3CExprMatch%3E-for-Expr" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="struct.ExprMatch.html" title="struct syn::ExprMatch">ExprMatch</a>&gt; for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-22" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#method.from-22" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(e: <a class="struct" href="struct.ExprMatch.html" title="struct syn::ExprMatch">ExprMatch</a>) -&gt; <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CExprMethodCall%3E-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#impl-From%3CExprMethodCall%3E-for-Expr" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="struct.ExprMethodCall.html" title="struct syn::ExprMethodCall">ExprMethodCall</a>&gt; for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-23" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#method.from-23" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(e: <a class="struct" href="struct.ExprMethodCall.html" title="struct syn::ExprMethodCall">ExprMethodCall</a>) -&gt; <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CExprParen%3E-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#impl-From%3CExprParen%3E-for-Expr" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="struct.ExprParen.html" title="struct syn::ExprParen">ExprParen</a>&gt; for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-24" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#method.from-24" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(e: <a class="struct" href="struct.ExprParen.html" title="struct syn::ExprParen">ExprParen</a>) -&gt; <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CExprPath%3E-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#impl-From%3CExprPath%3E-for-Expr" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="struct.ExprPath.html" title="struct syn::ExprPath">ExprPath</a>&gt; for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-25" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#method.from-25" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(e: <a class="struct" href="struct.ExprPath.html" title="struct syn::ExprPath">ExprPath</a>) -&gt; <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CExprRange%3E-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#impl-From%3CExprRange%3E-for-Expr" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="struct.ExprRange.html" title="struct syn::ExprRange">ExprRange</a>&gt; for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-26" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#method.from-26" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(e: <a class="struct" href="struct.ExprRange.html" title="struct syn::ExprRange">ExprRange</a>) -&gt; <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CExprReference%3E-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#impl-From%3CExprReference%3E-for-Expr" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="struct.ExprReference.html" title="struct syn::ExprReference">ExprReference</a>&gt; for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-27" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#method.from-27" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(e: <a class="struct" href="struct.ExprReference.html" title="struct syn::ExprReference">ExprReference</a>) -&gt; <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CExprRepeat%3E-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#impl-From%3CExprRepeat%3E-for-Expr" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="struct.ExprRepeat.html" title="struct syn::ExprRepeat">ExprRepeat</a>&gt; for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-28" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#method.from-28" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(e: <a class="struct" href="struct.ExprRepeat.html" title="struct syn::ExprRepeat">ExprRepeat</a>) -&gt; <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CExprReturn%3E-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#impl-From%3CExprReturn%3E-for-Expr" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="struct.ExprReturn.html" title="struct syn::ExprReturn">ExprReturn</a>&gt; for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-29" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#method.from-29" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(e: <a class="struct" href="struct.ExprReturn.html" title="struct syn::ExprReturn">ExprReturn</a>) -&gt; <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CExprStruct%3E-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#impl-From%3CExprStruct%3E-for-Expr" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="struct.ExprStruct.html" title="struct syn::ExprStruct">ExprStruct</a>&gt; for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-30" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#method.from-30" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(e: <a class="struct" href="struct.ExprStruct.html" title="struct syn::ExprStruct">ExprStruct</a>) -&gt; <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CExprTry%3E-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#impl-From%3CExprTry%3E-for-Expr" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="struct.ExprTry.html" title="struct syn::ExprTry">ExprTry</a>&gt; for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-31" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#method.from-31" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(e: <a class="struct" href="struct.ExprTry.html" title="struct syn::ExprTry">ExprTry</a>) -&gt; <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CExprTryBlock%3E-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#impl-From%3CExprTryBlock%3E-for-Expr" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="struct.ExprTryBlock.html" title="struct syn::ExprTryBlock">ExprTryBlock</a>&gt; for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-32" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#method.from-32" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(e: <a class="struct" href="struct.ExprTryBlock.html" title="struct syn::ExprTryBlock">ExprTryBlock</a>) -&gt; <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CExprTuple%3E-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#impl-From%3CExprTuple%3E-for-Expr" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="struct.ExprTuple.html" title="struct syn::ExprTuple">ExprTuple</a>&gt; for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-33" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#method.from-33" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(e: <a class="struct" href="struct.ExprTuple.html" title="struct syn::ExprTuple">ExprTuple</a>) -&gt; <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CExprUnary%3E-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#impl-From%3CExprUnary%3E-for-Expr" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="struct.ExprUnary.html" title="struct syn::ExprUnary">ExprUnary</a>&gt; for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-34" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#method.from-34" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(e: <a class="struct" href="struct.ExprUnary.html" title="struct syn::ExprUnary">ExprUnary</a>) -&gt; <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CExprUnsafe%3E-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#impl-From%3CExprUnsafe%3E-for-Expr" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="struct.ExprUnsafe.html" title="struct syn::ExprUnsafe">ExprUnsafe</a>&gt; for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-35" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#method.from-35" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(e: <a class="struct" href="struct.ExprUnsafe.html" title="struct syn::ExprUnsafe">ExprUnsafe</a>) -&gt; <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CExprWhile%3E-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#impl-From%3CExprWhile%3E-for-Expr" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="struct.ExprWhile.html" title="struct syn::ExprWhile">ExprWhile</a>&gt; for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-36" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#method.from-36" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(e: <a class="struct" href="struct.ExprWhile.html" title="struct syn::ExprWhile">ExprWhile</a>) -&gt; <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CExprYield%3E-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#impl-From%3CExprYield%3E-for-Expr" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="struct.ExprYield.html" title="struct syn::ExprYield">ExprYield</a>&gt; for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-37" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#method.from-37" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(e: <a class="struct" href="struct.ExprYield.html" title="struct syn::ExprYield">ExprYield</a>) -&gt; <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Hash-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="../src/syn/gen/hash.rs.html#330-523">source</a><a href="#impl-Hash-for-Expr" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/syn/gen/hash.rs.html#331-522">source</a><a href="#method.hash" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash" class="fnname">hash</a>&lt;H&gt;(&amp;self, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>H)<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,</span></h4></section></summary><div class='docblock'>Feeds this value into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash_slice" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.3.0">1.3.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/hash/mod.rs.html#237-239">source</a></span><a href="#method.hash_slice" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice" class="fnname">hash_slice</a>&lt;H&gt;(data: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[Self]</a>, state: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>H)<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Parse-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#1028-1036">source</a><a href="#impl-Parse-for-Expr" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="parse/trait.Parse.html" title="trait syn::parse::Parse">Parse</a> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><section id="method.parse" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#1029-1035">source</a><a href="#method.parse" class="anchor"></a><h4 class="code-header">fn <a href="parse/trait.Parse.html#tymethod.parse" class="fnname">parse</a>(input: <a class="type" href="parse/type.ParseStream.html" title="type syn::parse::ParseStream">ParseStream</a>&lt;'_&gt;) -&gt; <a class="type" href="parse/type.Result.html" title="type syn::parse::Result">Result</a>&lt;Self&gt;</h4></section></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CExpr%3E-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="../src/syn/gen/eq.rs.html#247-321">source</a><a href="#impl-PartialEq%3CExpr%3E-for-Expr" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a>&lt;<a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a>&gt; for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/syn/gen/eq.rs.html#248-320">source</a><a href="#method.eq" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fnname">eq</a>(&amp;self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>Self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#227">source</a></span><a href="#method.ne" class="anchor"></a><h4 class="code-header">const fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fnname">ne</a>(&amp;self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>Rhs) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-ToTokens-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#impl-ToTokens-for-Expr" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="../quote/to_tokens/trait.ToTokens.html" title="trait quote::to_tokens::ToTokens">ToTokens</a> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_tokens" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/syn/expr.rs.html#12-240">source</a><a href="#method.to_tokens" class="anchor"></a><h4 class="code-header">fn <a href="../quote/to_tokens/trait.ToTokens.html#tymethod.to_tokens" class="fnname">to_tokens</a>(&amp;self, tokens: &amp;mut <a class="struct" href="../proc_macro2/struct.TokenStream.html" title="struct proc_macro2::TokenStream">TokenStream</a>)</h4></section></summary><div class='docblock'>Write <code>self</code> to the given <code>TokenStream</code>. <a href="../quote/to_tokens/trait.ToTokens.html#tymethod.to_tokens">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_token_stream" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/quote/to_tokens.rs.html#59">source</a><a href="#method.to_token_stream" class="anchor"></a><h4 class="code-header">fn <a href="../quote/to_tokens/trait.ToTokens.html#method.to_token_stream" class="fnname">to_token_stream</a>(&amp;self) -&gt; <a class="struct" href="../proc_macro2/struct.TokenStream.html" title="struct proc_macro2::TokenStream">TokenStream</a></h4></section></summary><div class='docblock'>Convert <code>self</code> directly into a <code>TokenStream</code> object. <a href="../quote/to_tokens/trait.ToTokens.html#method.to_token_stream">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_token_stream" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/quote/to_tokens.rs.html#69-71">source</a><a href="#method.into_token_stream" class="anchor"></a><h4 class="code-header">fn <a href="../quote/to_tokens/trait.ToTokens.html#method.into_token_stream" class="fnname">into_token_stream</a>(self) -&gt; <a class="struct" href="../proc_macro2/struct.TokenStream.html" title="struct proc_macro2::TokenStream">TokenStream</a></h4></section></summary><div class='docblock'>Convert <code>self</code> directly into a <code>TokenStream</code> object. <a href="../quote/to_tokens/trait.ToTokens.html#method.into_token_stream">Read more</a></div></details></div></details><section id="impl-Eq-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="../src/syn/gen/eq.rs.html#244">source</a><a href="#impl-Eq-for-Expr" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor"></a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Expr" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Expr" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section><section id="impl-Send-for-Expr" class="impl has-srclink"><a href="#impl-Send-for-Expr" class="anchor"></a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section><section id="impl-Sync-for-Expr" class="impl has-srclink"><a href="#impl-Sync-for-Expr" class="anchor"></a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section><section id="impl-Unpin-for-Expr" class="impl has-srclink"><a href="#impl-Unpin-for-Expr" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section><section id="impl-UnwindSafe-for-Expr" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Expr" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor"></a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-Expr" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fnname">type_id</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-Expr" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;T&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fnname">borrow</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-Expr" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a>&lt;T&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fnname">borrow_mut</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-Expr" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt; for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-38" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from-38" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(t: T) -&gt; T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-Expr" class="anchor"></a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;U&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt;,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fnname">into</a>(self) -&gt; U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
<p>That is, this conversion is whatever the implementation of
<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Spanned-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="../src/syn/spanned.rs.html#104-108">source</a><a href="#impl-Spanned-for-Expr" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="spanned/trait.Spanned.html" title="trait syn::spanned::Spanned">Spanned</a> for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: Spanned + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.span" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/syn/spanned.rs.html#105-107">source</a><a href="#method.span" class="anchor"></a><h4 class="code-header">fn <a href="spanned/trait.Spanned.html#tymethod.span" class="fnname">span</a>(&amp;self) -&gt; <a class="struct" href="../proc_macro2/struct.Span.html" title="struct proc_macro2::Span">Span</a></h4></section></summary><div class='docblock'>Returns a <code>Span</code> covering the complete contents of this syntax tree
node, or <a href="../proc_macro2/struct.Span.html#method.call_site"><code>Span::call_site()</code></a> if this node is empty. <a href="spanned/trait.Spanned.html#tymethod.span">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#83">source</a><a href="#impl-ToOwned-for-Expr" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#88">source</a><a href="#method.to_owned" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fnname">to_owned</a>(&amp;self) -&gt; T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#92">source</a><a href="#method.clone_into" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fnname">clone_into</a>(&amp;self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-Expr" class="anchor"></a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;U&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;T&gt;,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fnname">try_from</a>(value: U) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;T, &lt;T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;U&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-Expr" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-Expr" class="anchor"></a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a>&lt;U&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = &lt;U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fnname">try_into</a>(self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;U, &lt;U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-current-crate="syn" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.66.0-nightly (5c8bff74b 2022-10-21)" ></div></body></html>