7 use crate::{InlayHint, InlayHintsConfig, InlayKind, InlayTooltip, LifetimeElisionHints};
10 acc: &mut Vec<InlayHint>,
11 config: &InlayHintsConfig,
12 statik_or_const: Either<ast::Static, ast::Const>,
14 if config.lifetime_elision_hints != LifetimeElisionHints::Always {
18 if let Either::Right(it) = &statik_or_const {
19 if ast::AssocItemList::can_cast(
20 it.syntax().parent().map_or(SyntaxKind::EOF, |it| it.kind()),
26 if let Some(ast::Type::RefType(ty)) = statik_or_const.either(|it| it.ty(), |it| it.ty()) {
27 if ty.lifetime().is_none() {
28 let t = ty.amp_token()?;
30 range: t.text_range(),
31 kind: InlayKind::LifetimeHint,
32 label: "'static".to_owned().into(),
33 tooltip: Some(InlayTooltip::String("Elided static lifetime".into())),
44 inlay_hints::tests::{check_with_config, TEST_CONFIG},
45 InlayHintsConfig, LifetimeElisionHints,
49 fn hints_lifetimes_static() {
52 lifetime_elision_hints: LifetimeElisionHints::Always,
61 const C: &dyn Trait = panic!();
66 const C: &dyn Trait = panic!();