aboutsummaryrefslogtreecommitdiff
path: root/crates
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2021-03-31 11:24:08 +0100
committerAleksey Kladov <[email protected]>2021-03-31 11:24:08 +0100
commit5c0c09c9c32231843b22a17a467c4170530bd220 (patch)
treeb26851b7db13320bc78e48a354f6cb9d318d96ec /crates
parent2436621b6c5e636fa112cd5abfdd03511c9561e0 (diff)
internal: document semantics for missing names
Diffstat (limited to 'crates')
-rw-r--r--crates/hir_expand/src/name.rs9
1 files changed, 9 insertions, 0 deletions
diff --git a/crates/hir_expand/src/name.rs b/crates/hir_expand/src/name.rs
index cd691b1d2..203ebbe85 100644
--- a/crates/hir_expand/src/name.rs
+++ b/crates/hir_expand/src/name.rs
@@ -55,6 +55,15 @@ impl Name {
55 } 55 }
56 } 56 }
57 57
58 /// A fake name for things missing in the source code.
59 ///
60 /// For example, `impl Foo for {}` should be treated as a trait impl for a
61 /// type with a missing name. Similarly, `struct S { : u32 }` should have a
62 /// single field with a missing name.
63 ///
64 /// Ideally, we want a `gensym` semantics for missing names -- each missing
65 /// name is equal only to itself. It's not clear how to implement this in
66 /// salsa though, so we punt on that bit for a moment.
58 pub fn missing() -> Name { 67 pub fn missing() -> Name {
59 Name::new_text("[missing name]".into()) 68 Name::new_text("[missing name]".into())
60 } 69 }