blob: c9bfd197a81e14e7205b124bf3928edadf1dced7 [file] [edit]
<!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-b7b9f40b.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.95.0 (59807616e 2026-04-14)" data-channel="1.95.0" data-search-js="search-63369b7b.js" data-stringdex-js="stringdex-b897f86f.js" data-settings-js="settings-170eb4bf.js" ><script src="../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-5013f961.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-f7c3ffd8.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"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[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" tabindex="-1"><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#21-45">Source</a> </span></div><pre class="rust item-decl"><code>pub trait HasSource: <a class="trait" href="https://doc.rust-lang.org/1.95.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.95.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.95.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.95.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#22">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#30">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.95.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 definition’s 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#38-44">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.95.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.95.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.95.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#117-126">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#118">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-Variant" class="impl"><a class="src rightside" href="../src/hir/has_source.rs.html#127-136">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="enum" href="enum.Variant.html" title="enum hir::Variant">Variant</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#128">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#190-195">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#191">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#149-154">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#150">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-EnumVariant" class="impl"><a class="src rightside" href="../src/hir/has_source.rs.html#155-160">Source</a><a href="#impl-HasSource-for-EnumVariant" 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.EnumVariant.html" title="struct hir::EnumVariant">EnumVariant</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#156">Source</a><a href="#associatedtype.Ast-5" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Ast" class="associatedtype">Ast</a> = Variant</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-6" class="associatedtype trait-impl"><a class="src rightside" href="../src/hir/has_source.rs.html#338">Source</a><a href="#associatedtype.Ast-6" 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#105-116">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-7" class="associatedtype trait-impl"><a class="src rightside" href="../src/hir/has_source.rs.html#106">Source</a><a href="#associatedtype.Ast-7" 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#161-189">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-8" class="associatedtype trait-impl"><a class="src rightside" href="../src/hir/has_source.rs.html#162">Source</a><a href="#associatedtype.Ast-8" 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#228-250">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-9" class="associatedtype trait-impl"><a class="src rightside" href="../src/hir/has_source.rs.html#229">Source</a><a href="#associatedtype.Ast-9" 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-10" class="associatedtype trait-impl"><a class="src rightside" href="../src/hir/has_source.rs.html#346">Source</a><a href="#associatedtype.Ast-10" 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#327-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-11" class="associatedtype trait-impl"><a class="src rightside" href="../src/hir/has_source.rs.html#328">Source</a><a href="#associatedtype.Ast-11" 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#260-266">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-12" class="associatedtype trait-impl"><a class="src rightside" href="../src/hir/has_source.rs.html#261">Source</a><a href="#associatedtype.Ast-12" 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#268-274">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-13" class="associatedtype trait-impl"><a class="src rightside" href="../src/hir/has_source.rs.html#269">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;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#214-227">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-14" class="associatedtype trait-impl"><a class="src rightside" href="../src/hir/has_source.rs.html#215">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;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#276-313">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-15" class="associatedtype trait-impl"><a class="src rightside" href="../src/hir/has_source.rs.html#277">Source</a><a href="#associatedtype.Ast-15" 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#315-325">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-16" class="associatedtype trait-impl"><a class="src rightside" href="../src/hir/has_source.rs.html#316">Source</a><a href="#associatedtype.Ast-16" 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#196-201">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-17" class="associatedtype trait-impl"><a class="src rightside" href="../src/hir/has_source.rs.html#197">Source</a><a href="#associatedtype.Ast-17" 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#137-142">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-18" class="associatedtype trait-impl"><a class="src rightside" href="../src/hir/has_source.rs.html#138">Source</a><a href="#associatedtype.Ast-18" 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#202-207">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-19" class="associatedtype trait-impl"><a class="src rightside" href="../src/hir/has_source.rs.html#203">Source</a><a href="#associatedtype.Ast-19" 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#208-213">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-20" class="associatedtype trait-impl"><a class="src rightside" href="../src/hir/has_source.rs.html#209">Source</a><a href="#associatedtype.Ast-20" 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#252-258">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-21" class="associatedtype trait-impl"><a class="src rightside" href="../src/hir/has_source.rs.html#253">Source</a><a href="#associatedtype.Ast-21" 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#143-148">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-22" class="associatedtype trait-impl"><a class="src rightside" href="../src/hir/has_source.rs.html#144">Source</a><a href="#associatedtype.Ast-22" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Ast" class="associatedtype">Ast</a> = Union</h4></section></div></details></div><script src="../trait.impl/hir/has_source/trait.HasSource.js" async></script></section></div></main></body></html>