ra_ap_hir 0.0.348
“A high-level object-oriented access to Rust code for rust-analyzer.”
Rust asm! inline assembly macroRust global_asm! module-level assembly
SHA-256f4e530b63284b0a43c5fd77d258011459db73fd24bfe2a576e814f1f92c3a24b
MaleculeH(Mg)
Evidence
1:66… bject-oriented
2//! access to Rust code.
3//!
4//! The principal difference between HIR and syntax trees is that HIR is bound
5//! to a particular crate instance. That is, it has cfg flags and features
6//! app …
34:12… m_search;
35
36mod display;
37
38#[doc(hidden)]
39pub use hir_def::ModuleId;
40
41use std::{
42 borrow::Borrow,
43 fmt, iter,
44 mem::discriminant,
45 ops::{ControlFlow, Not},
46};
47
48use arrayvec::ArrayVec;
49use base_db::{CrateDisplayName, CrateOrigin, LangCrateOrigin, SourceDatabase, all_crates};
50use either::Either;
51use hir_def::{
52 AdtId, AssocItemId, AssocItemLoc, BuiltinDeriveImplId, CallableDefId, ConstId, ConstParamId,
53 DefWithBodyId, EnumId, EnumVariantId, ExpressionStoreOwnerId, ExternBlockId, ExternCrateId,
54 FunctionId, GenericDefId, HasModule, ImplId, ItemContainerId, LifetimeParamId, LocalFieldId,
55 Lookup, MacroExpander, MacroId, StaticId, StructId, SyntheticSyntax, TupleId, TypeAliasId,
56 TypeOrConstParamId, TypeParamId, UnionId,
57 attrs::AttrFlags,
58 builtin_derive::BuiltinDeriveImplMethod,
59 expr_store::{ExpressionStore, ExpressionStoreDiagnostics, ExpressionStoreSourceMap},
60 hir::{
61 BindingAnnotation, BindingId, Expr, ExprId, ExprOrPatId, LabelId, Pat,
62 generics::{GenericParams, LifetimeParamData, TypeOrConstParamData, TypeParamProvenance},
63 },
64 item_tree::ImportAlias,
65 lang_item::LangItemTarget,
66 layout::{self, ReprOptions, TargetDataLayout},
67 nameres::{
68 assoc::TraitItems,
69 diagnostics::{DefDiagnostic, DefDiagnosticKind},
70 },
71 per_ns::PerNs,
72 resolver::{HasResolver, Resolver},
73 signatures::{
74 ConstSignature, EnumSignature, FunctionSignature, ImplFlags, ImplSignature, StaticFlags,
75 StaticSignature, StructFlags, StructSignature, TraitFlags, TraitSignature,
76 TypeAliasSignature, UnionSignature, VariantFields,
77 },
78 src::HasSource as _,
79 unstable_features::UnstableFeatures,
80 visibility::visibility_from_ast,
81};
151:80… .into() }
152 }
153}
154
155pub use crate::{
156 attrs::{AttrsWithOwner, HasAttrs, resolve_doc_path_on},
157 diagnostics::*,
158 has_source::HasSource,
159 semantics::{
160 LintAttr, PathResolution, PathResolutionPerNs, Semantics, SemanticsImpl, SemanticsScope,
161 TypeInfo, VisibleTraits,
162 },
163};
⋯4 lines
172:9… ally, a refactoring which *removes* a name from this list is a good
173// idea!
174pub use {
175 cfg::{CfgAtom, CfgExpr, CfgOptions},
176 hir_def::{
177 Complete,
178 FindPathConfig,
179 attrs::{Docs, IsInnerDoc},
180 expr_store::Body,
181 find_path::PrefixKind,
182 import_map,
183 lang_item::{LangItemEnum as LangItem, crate_lang_items},
184 nameres::{DefMap, ModuleSource, crate_def_map},
185 per_ns::Namespace,
186 type_ref::{Mutability, TypeRef},
187 visibility::Visibility,
188 // FIXME: This is here since some queries take it as input that are used
189 // outside of hir.
190 {GenericParamId, ModuleDefId, TraitId},
191 },
192 hir_expand::{
193 EditionedFileId, ExpandResult, HirFileId, MacroCallId, MacroKind,
194 change::ChangeWithProcMacros,
195 files::{
196 FilePosition, FilePositionWrapper, FileRange, FileRangeWrapper, HirFilePosition,
197 HirFileRange, InFile, InFileWrapper, InMacroFile, InRealFile, MacroFilePosition,
198 MacroFileRange,
199 },
200 inert_attr_macro::AttributeTemplate,
201 mod_path::{ModPath, PathKind, tool_path},
202 name::{self, Name},
203 prettify_macro_expansion,
204 proc_macro::{ProcMacros, ProcMacrosBuilder},
205 tt,
206 },
207 // FIXME: Properly encapsulate mir
208 hir_ty::mir,
209 hir_ty::{
210 CastError, PointerCast, attach_db, attach_db_allow_change,
211 consteval::ConstEvalError,
212 diagnostics::UnsafetyReason,
213 display::{ClosureStyle, DisplayTarget, HirDisplay, HirDisplayError, HirWrite},
214 drop::DropGlue,
215 dyn_compatibility::{DynCompatibilityViolation, MethodViolationCode},
216 layout::LayoutError,
217 mir::{MirEvalError, MirLowerError},
218 next_solver::abi::Safety,
219 next_solver::{clear_tls_solver_cache, collect_ty_garbage},
3273:17… oId::ProcMacroId(_) => false,
3274 }
3275 }
3276
3277 /// Is this `asm!()`, or a variant of it (e.g. `global_asm!()`)?
3278 pub fn is_asm_like(&self, db: &dyn HirDatabase) -> bool {
3279 match self.id {
3280 MacroId::Macro2Id(it) => …
No evidence locations were recorded for this file. Raw result