Skip to content

Commit 8126600

Browse files
committed
✨ fix(inlay_hints): extend inlay hint support for variable, call, and reference symbols
1 parent 022c8e0 commit 8126600

File tree

2 files changed

+6
-21
lines changed

2 files changed

+6
-21
lines changed

crates/mq-check/src/builtin.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -79,12 +79,12 @@ fn register_arithmetic(ctx: &mut InferenceContext) {
7979
register_binary(ctx, "+", Type::String, Type::String, Type::String);
8080
register_binary(ctx, "add", Type::String, Type::String, Type::String);
8181

82-
// Addition: string + number -> string (coercion)
83-
register_binary(ctx, "+", Type::String, Type::Number, Type::String);
84-
register_binary(ctx, "add", Type::String, Type::Number, Type::String);
85-
86-
// Addition: [a] + [a] -> [a] (array concatenation)
8782
for name in ["+", "add"] {
83+
// Addition: string + number -> string (coercion)
84+
register_binary(ctx, name, Type::String, Type::Number, Type::String);
85+
register_binary(ctx, name, Type::Number, Type::String, Type::String);
86+
87+
// Addition: [a] + [a] -> [a] (array concatenation)
8888
let a = ctx.fresh_var();
8989
register_binary(
9090
ctx,

crates/mq-lsp/src/inlay_hints.rs

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ pub fn response(
4646
let type_label = format!(": {}", type_scheme.ty);
4747

4848
match &symbol.kind {
49-
mq_hir::SymbolKind::Variable => {
49+
mq_hir::SymbolKind::Variable | mq_hir::SymbolKind::Call | mq_hir::SymbolKind::Ref => {
5050
// Place hint after the variable name (end of the symbol)
5151
let hint_col = (text_range.end.column as u32).saturating_sub(1);
5252
let hint_line = text_range.end.line.saturating_sub(1);
@@ -61,21 +61,6 @@ pub fn response(
6161
data: None,
6262
})
6363
}
64-
mq_hir::SymbolKind::Function(_) | mq_hir::SymbolKind::Macro(_) => {
65-
// Place hint after the function name showing the return type
66-
let hint_col = (text_range.end.column as u32).saturating_sub(1);
67-
let hint_line = text_range.end.line.saturating_sub(1);
68-
Some(InlayHint {
69-
position: Position::new(hint_line, hint_col),
70-
label: InlayHintLabel::String(type_label),
71-
kind: Some(InlayHintKind::TYPE),
72-
text_edits: None,
73-
tooltip: None,
74-
padding_left: Some(false),
75-
padding_right: Some(true),
76-
data: None,
77-
})
78-
}
7964
_ => None,
8065
}
8166
})

0 commit comments

Comments
 (0)