Files
rust-analyzer/hir/trait.HasSource.html
github-merge-queue[bot] 7cf2001b4e deploy: fad5c3d2d6
2026-03-06 18:57:12 +00:00

26 lines
28 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!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="API documentation for the Rust `HasSource` trait in crate `hir`."><title>HasSource in hir - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../static.files/rustdoc-77263533.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="hir" data-themes="" data-resource-suffix="" data-rustdoc-version="1.94.0 (4a4ef493e 2026-03-02)" data-channel="1.94.0" data-search-js="search-9e2438ea.js" data-stringdex-js="stringdex-b897f86f.js" data-settings-js="settings-c38705f0.js" ><script src="../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-7bab91a1.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-ffcac47a.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-044be391.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">HasSource</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../hir/index.html">hir</a><span class="version">0.0.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">HasSource</a></h2><h3><a href="#required-associated-types">Required Associated Types</a></h3><ul class="block"><li><a href="#associatedtype.Ast" title="Ast">Ast</a></li></ul><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.source" title="source">source</a></li></ul><h3><a href="#provided-methods">Provided Methods</a></h3><ul class="block"><li><a href="#method.source_with_range" title="source_with_range">source_with_range</a></li></ul><h3><a href="#dyn-compatibility">Dyn Compatibility</a></h3><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2 class="in-crate"><a href="index.html">In crate hir</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="index.html">hir</a></div><h1>Trait <span class="trait">HasSource</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../src/hir/has_source.rs.html#20-44">Source</a> </span></div><pre class="rust item-decl"><code>pub trait HasSource: <a class="trait" href="https://doc.rust-lang.org/1.94.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> {
type <a href="#associatedtype.Ast" class="associatedtype">Ast</a>: AstNode;
// Required method
fn <a href="#tymethod.source" class="fn">source</a>(self, db: &amp;dyn <a class="trait" href="db/trait.HirDatabase.html" title="trait hir::db::HirDatabase">HirDatabase</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.94.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="type" href="type.InFile.html" title="type hir::InFile">InFile</a>&lt;Self::<a class="associatedtype" href="trait.HasSource.html#associatedtype.Ast" title="type hir::HasSource::Ast">Ast</a>&gt;&gt;;
// Provided method
fn <a href="#method.source_with_range" class="fn">source_with_range</a>(
self,
db: &amp;dyn <a class="trait" href="db/trait.HirDatabase.html" title="trait hir::db::HirDatabase">HirDatabase</a>,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.94.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="type" href="type.InFile.html" title="type hir::InFile">InFile</a>&lt;(TextRange, <a class="enum" href="https://doc.rust-lang.org/1.94.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;Self::<a class="associatedtype" href="trait.HasSource.html#associatedtype.Ast" title="type hir::HasSource::Ast">Ast</a>&gt;)&gt;&gt; { ... }
}</code></pre><h2 id="required-associated-types" class="section-header">Required Associated Types<a href="#required-associated-types" class="anchor">§</a></h2><div class="methods"><section id="associatedtype.Ast" class="method"><a class="src rightside" href="../src/hir/has_source.rs.html#21">Source</a><h4 class="code-header">type <a href="#associatedtype.Ast" class="associatedtype">Ast</a>: AstNode</h4></section></div><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.source" class="method"><a class="src rightside" href="../src/hir/has_source.rs.html#29">Source</a><h4 class="code-header">fn <a href="#tymethod.source" class="fn">source</a>(self, db: &amp;dyn <a class="trait" href="db/trait.HirDatabase.html" title="trait hir::db::HirDatabase">HirDatabase</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.94.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="type" href="type.InFile.html" title="type hir::InFile">InFile</a>&lt;Self::<a class="associatedtype" href="trait.HasSource.html#associatedtype.Ast" title="type hir::HasSource::Ast">Ast</a>&gt;&gt;</h4></section></summary><div class="docblock"><p>Fetches the definitions source node.
Using <a href="struct.SemanticsImpl.html#method.source" title="method hir::SemanticsImpl::source"><code>crate::SemanticsImpl::source</code></a> is preferred when working with <a href="struct.Semantics.html" title="struct hir::Semantics"><code>crate::Semantics</code></a>,
as that caches the parsed file in the semantics cache.</p>
<p>The current some implementations can return <code>InFile</code> instead of <code>Option&lt;InFile&gt;</code>.
But we made this method <code>Option</code> to support rlib in the future
by <a href="https://github.com/rust-lang/rust-analyzer/issues/6913">https://github.com/rust-lang/rust-analyzer/issues/6913</a></p>
</div></details></div><h2 id="provided-methods" class="section-header">Provided Methods<a href="#provided-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="method.source_with_range" class="method"><a class="src rightside" href="../src/hir/has_source.rs.html#37-43">Source</a><h4 class="code-header">fn <a href="#method.source_with_range" class="fn">source_with_range</a>(
self,
db: &amp;dyn <a class="trait" href="db/trait.HirDatabase.html" title="trait hir::db::HirDatabase">HirDatabase</a>,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.94.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="type" href="type.InFile.html" title="type hir::InFile">InFile</a>&lt;(TextRange, <a class="enum" href="https://doc.rust-lang.org/1.94.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;Self::<a class="associatedtype" href="trait.HasSource.html#associatedtype.Ast" title="type hir::HasSource::Ast">Ast</a>&gt;)&gt;&gt;</h4></section></summary><div class="docblock"><p>Fetches the source node, along with its full range.</p>
<p>The reason for the separate existence of this method is that some things, notably builtin derive impls,
do not really have a source node, at least not of the correct type. But we still can trace them
to source code (the derive producing them). So this method will return the range if it is supported,
and if the node is supported too it will return it as well.</p>
</div></details></div><h2 id="dyn-compatibility" class="section-header">Dyn Compatibility<a href="#dyn-compatibility" class="anchor">§</a></h2><div class="dyn-compatibility-info"><p>This trait is <b>not</b> <a href="https://doc.rust-lang.org/1.94.0/reference/items/traits.html#dyn-compatibility">dyn compatible</a>.</p><p><i>In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.</i></p></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><div class="negative-marker"></div><details class="toggle implementors-toggle"><summary><section id="impl-HasSource-for-Adt" class="impl"><a class="src rightside" href="../src/hir/has_source.rs.html#116-125">Source</a><a href="#impl-HasSource-for-Adt" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.HasSource.html" title="trait hir::HasSource">HasSource</a> for <a class="enum" href="enum.Adt.html" title="enum hir::Adt">Adt</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Ast-1" class="associatedtype trait-impl"><a class="src rightside" href="../src/hir/has_source.rs.html#117">Source</a><a href="#associatedtype.Ast-1" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Ast" class="associatedtype">Ast</a> = Adt</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-HasSource-for-VariantDef" class="impl"><a class="src rightside" href="../src/hir/has_source.rs.html#126-135">Source</a><a href="#impl-HasSource-for-VariantDef" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.HasSource.html" title="trait hir::HasSource">HasSource</a> for <a class="enum" href="enum.VariantDef.html" title="enum hir::VariantDef">VariantDef</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Ast-2" class="associatedtype trait-impl"><a class="src rightside" href="../src/hir/has_source.rs.html#127">Source</a><a href="#associatedtype.Ast-2" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Ast" class="associatedtype">Ast</a> = VariantDef</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-HasSource-for-Const" class="impl"><a class="src rightside" href="../src/hir/has_source.rs.html#189-194">Source</a><a href="#impl-HasSource-for-Const" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.HasSource.html" title="trait hir::HasSource">HasSource</a> for <a class="struct" href="struct.Const.html" title="struct hir::Const">Const</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Ast-3" class="associatedtype trait-impl"><a class="src rightside" href="../src/hir/has_source.rs.html#190">Source</a><a href="#associatedtype.Ast-3" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Ast" class="associatedtype">Ast</a> = Const</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-HasSource-for-Enum" class="impl"><a class="src rightside" href="../src/hir/has_source.rs.html#148-153">Source</a><a href="#impl-HasSource-for-Enum" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.HasSource.html" title="trait hir::HasSource">HasSource</a> for <a class="struct" href="struct.Enum.html" title="struct hir::Enum">Enum</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Ast-4" class="associatedtype trait-impl"><a class="src rightside" href="../src/hir/has_source.rs.html#149">Source</a><a href="#associatedtype.Ast-4" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Ast" class="associatedtype">Ast</a> = Enum</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-HasSource-for-ExternCrateDecl" class="impl"><a class="src rightside" href="../src/hir/has_source.rs.html#337-343">Source</a><a href="#impl-HasSource-for-ExternCrateDecl" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.HasSource.html" title="trait hir::HasSource">HasSource</a> for <a class="struct" href="struct.ExternCrateDecl.html" title="struct hir::ExternCrateDecl">ExternCrateDecl</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Ast-5" class="associatedtype trait-impl"><a class="src rightside" href="../src/hir/has_source.rs.html#338">Source</a><a href="#associatedtype.Ast-5" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Ast" class="associatedtype">Ast</a> = ExternCrate</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-HasSource-for-Field" class="impl"><a class="src rightside" href="../src/hir/has_source.rs.html#104-115">Source</a><a href="#impl-HasSource-for-Field" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.HasSource.html" title="trait hir::HasSource">HasSource</a> for <a class="struct" href="struct.Field.html" title="struct hir::Field">Field</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Ast-6" class="associatedtype trait-impl"><a class="src rightside" href="../src/hir/has_source.rs.html#105">Source</a><a href="#associatedtype.Ast-6" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Ast" class="associatedtype">Ast</a> = <a class="enum" href="enum.FieldSource.html" title="enum hir::FieldSource">FieldSource</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-HasSource-for-Function" class="impl"><a class="src rightside" href="../src/hir/has_source.rs.html#160-188">Source</a><a href="#impl-HasSource-for-Function" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.HasSource.html" title="trait hir::HasSource">HasSource</a> for <a class="struct" href="struct.Function.html" title="struct hir::Function">Function</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Ast-7" class="associatedtype trait-impl"><a class="src rightside" href="../src/hir/has_source.rs.html#161">Source</a><a href="#associatedtype.Ast-7" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Ast" class="associatedtype">Ast</a> = Fn</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-HasSource-for-Impl" class="impl"><a class="src rightside" href="../src/hir/has_source.rs.html#227-249">Source</a><a href="#impl-HasSource-for-Impl" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.HasSource.html" title="trait hir::HasSource">HasSource</a> for <a class="struct" href="struct.Impl.html" title="struct hir::Impl">Impl</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Ast-8" class="associatedtype trait-impl"><a class="src rightside" href="../src/hir/has_source.rs.html#228">Source</a><a href="#associatedtype.Ast-8" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Ast" class="associatedtype">Ast</a> = Impl</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-HasSource-for-InlineAsmOperand" class="impl"><a class="src rightside" href="../src/hir/has_source.rs.html#345-366">Source</a><a href="#impl-HasSource-for-InlineAsmOperand" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.HasSource.html" title="trait hir::HasSource">HasSource</a> for <a class="struct" href="struct.InlineAsmOperand.html" title="struct hir::InlineAsmOperand">InlineAsmOperand</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Ast-9" class="associatedtype trait-impl"><a class="src rightside" href="../src/hir/has_source.rs.html#346">Source</a><a href="#associatedtype.Ast-9" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Ast" class="associatedtype">Ast</a> = AsmOperandNamed</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-HasSource-for-Label" class="impl"><a class="src rightside" href="../src/hir/has_source.rs.html#326-335">Source</a><a href="#impl-HasSource-for-Label" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.HasSource.html" title="trait hir::HasSource">HasSource</a> for <a class="struct" href="struct.Label.html" title="struct hir::Label">Label</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Ast-10" class="associatedtype trait-impl"><a class="src rightside" href="../src/hir/has_source.rs.html#327">Source</a><a href="#associatedtype.Ast-10" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Ast" class="associatedtype">Ast</a> = Label</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-HasSource-for-LifetimeParam" class="impl"><a class="src rightside" href="../src/hir/has_source.rs.html#259-265">Source</a><a href="#impl-HasSource-for-LifetimeParam" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.HasSource.html" title="trait hir::HasSource">HasSource</a> for <a class="struct" href="struct.LifetimeParam.html" title="struct hir::LifetimeParam">LifetimeParam</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Ast-11" class="associatedtype trait-impl"><a class="src rightside" href="../src/hir/has_source.rs.html#260">Source</a><a href="#associatedtype.Ast-11" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Ast" class="associatedtype">Ast</a> = LifetimeParam</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-HasSource-for-LocalSource" class="impl"><a class="src rightside" href="../src/hir/has_source.rs.html#267-273">Source</a><a href="#impl-HasSource-for-LocalSource" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.HasSource.html" title="trait hir::HasSource">HasSource</a> for <a class="struct" href="struct.LocalSource.html" title="struct hir::LocalSource">LocalSource</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Ast-12" class="associatedtype trait-impl"><a class="src rightside" href="../src/hir/has_source.rs.html#268">Source</a><a href="#associatedtype.Ast-12" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Ast" class="associatedtype">Ast</a> = <a class="enum" href="https://docs.rs/either/1/either/enum.Either.html" title="enum either::Either">Either</a>&lt;IdentPat, SelfParam&gt;</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-HasSource-for-Macro" class="impl"><a class="src rightside" href="../src/hir/has_source.rs.html#213-226">Source</a><a href="#impl-HasSource-for-Macro" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.HasSource.html" title="trait hir::HasSource">HasSource</a> for <a class="struct" href="struct.Macro.html" title="struct hir::Macro">Macro</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Ast-13" class="associatedtype trait-impl"><a class="src rightside" href="../src/hir/has_source.rs.html#214">Source</a><a href="#associatedtype.Ast-13" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Ast" class="associatedtype">Ast</a> = <a class="enum" href="https://docs.rs/either/1/either/enum.Either.html" title="enum either::Either">Either</a>&lt;Macro, Fn&gt;</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-HasSource-for-Param%3C'_%3E" class="impl"><a class="src rightside" href="../src/hir/has_source.rs.html#275-312">Source</a><a href="#impl-HasSource-for-Param%3C'_%3E" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.HasSource.html" title="trait hir::HasSource">HasSource</a> for <a class="struct" href="struct.Param.html" title="struct hir::Param">Param</a>&lt;'_&gt;</h3></section></summary><div class="impl-items"><section id="associatedtype.Ast-14" class="associatedtype trait-impl"><a class="src rightside" href="../src/hir/has_source.rs.html#276">Source</a><a href="#associatedtype.Ast-14" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Ast" class="associatedtype">Ast</a> = <a class="enum" href="https://docs.rs/either/1/either/enum.Either.html" title="enum either::Either">Either</a>&lt;SelfParam, Param&gt;</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-HasSource-for-SelfParam" class="impl"><a class="src rightside" href="../src/hir/has_source.rs.html#314-324">Source</a><a href="#impl-HasSource-for-SelfParam" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.HasSource.html" title="trait hir::HasSource">HasSource</a> for <a class="struct" href="struct.SelfParam.html" title="struct hir::SelfParam">SelfParam</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Ast-15" class="associatedtype trait-impl"><a class="src rightside" href="../src/hir/has_source.rs.html#315">Source</a><a href="#associatedtype.Ast-15" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Ast" class="associatedtype">Ast</a> = SelfParam</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-HasSource-for-Static" class="impl"><a class="src rightside" href="../src/hir/has_source.rs.html#195-200">Source</a><a href="#impl-HasSource-for-Static" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.HasSource.html" title="trait hir::HasSource">HasSource</a> for <a class="struct" href="struct.Static.html" title="struct hir::Static">Static</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Ast-16" class="associatedtype trait-impl"><a class="src rightside" href="../src/hir/has_source.rs.html#196">Source</a><a href="#associatedtype.Ast-16" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Ast" class="associatedtype">Ast</a> = Static</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-HasSource-for-Struct" class="impl"><a class="src rightside" href="../src/hir/has_source.rs.html#136-141">Source</a><a href="#impl-HasSource-for-Struct" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.HasSource.html" title="trait hir::HasSource">HasSource</a> for <a class="struct" href="struct.Struct.html" title="struct hir::Struct">Struct</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Ast-17" class="associatedtype trait-impl"><a class="src rightside" href="../src/hir/has_source.rs.html#137">Source</a><a href="#associatedtype.Ast-17" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Ast" class="associatedtype">Ast</a> = Struct</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-HasSource-for-Trait" class="impl"><a class="src rightside" href="../src/hir/has_source.rs.html#201-206">Source</a><a href="#impl-HasSource-for-Trait" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.HasSource.html" title="trait hir::HasSource">HasSource</a> for <a class="struct" href="struct.Trait.html" title="struct hir::Trait">Trait</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Ast-18" class="associatedtype trait-impl"><a class="src rightside" href="../src/hir/has_source.rs.html#202">Source</a><a href="#associatedtype.Ast-18" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Ast" class="associatedtype">Ast</a> = Trait</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-HasSource-for-TypeAlias" class="impl"><a class="src rightside" href="../src/hir/has_source.rs.html#207-212">Source</a><a href="#impl-HasSource-for-TypeAlias" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.HasSource.html" title="trait hir::HasSource">HasSource</a> for <a class="struct" href="struct.TypeAlias.html" title="struct hir::TypeAlias">TypeAlias</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Ast-19" class="associatedtype trait-impl"><a class="src rightside" href="../src/hir/has_source.rs.html#208">Source</a><a href="#associatedtype.Ast-19" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Ast" class="associatedtype">Ast</a> = TypeAlias</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-HasSource-for-TypeOrConstParam" class="impl"><a class="src rightside" href="../src/hir/has_source.rs.html#251-257">Source</a><a href="#impl-HasSource-for-TypeOrConstParam" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.HasSource.html" title="trait hir::HasSource">HasSource</a> for <a class="struct" href="struct.TypeOrConstParam.html" title="struct hir::TypeOrConstParam">TypeOrConstParam</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Ast-20" class="associatedtype trait-impl"><a class="src rightside" href="../src/hir/has_source.rs.html#252">Source</a><a href="#associatedtype.Ast-20" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Ast" class="associatedtype">Ast</a> = <a class="enum" href="https://docs.rs/either/1/either/enum.Either.html" title="enum either::Either">Either</a>&lt;TypeOrConstParam, Trait&gt;</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-HasSource-for-Union" class="impl"><a class="src rightside" href="../src/hir/has_source.rs.html#142-147">Source</a><a href="#impl-HasSource-for-Union" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.HasSource.html" title="trait hir::HasSource">HasSource</a> for <a class="struct" href="struct.Union.html" title="struct hir::Union">Union</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Ast-21" class="associatedtype trait-impl"><a class="src rightside" href="../src/hir/has_source.rs.html#143">Source</a><a href="#associatedtype.Ast-21" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Ast" class="associatedtype">Ast</a> = Union</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-HasSource-for-Variant" class="impl"><a class="src rightside" href="../src/hir/has_source.rs.html#154-159">Source</a><a href="#impl-HasSource-for-Variant" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.HasSource.html" title="trait hir::HasSource">HasSource</a> for <a class="struct" href="struct.Variant.html" title="struct hir::Variant">Variant</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Ast-22" class="associatedtype trait-impl"><a class="src rightside" href="../src/hir/has_source.rs.html#155">Source</a><a href="#associatedtype.Ast-22" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Ast" class="associatedtype">Ast</a> = Variant</h4></section></div></details></div><script src="../trait.impl/hir/has_source/trait.HasSource.js" async></script></section></div></main></body></html>