Use constructor names for unqualified imported values (#120)

pull/844/head
Gears 2025-05-17 13:50:31 +07:00 committed by GitHub
parent 5efbe4fdf1
commit bf545869aa
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 29 additions and 7 deletions

@ -93,9 +93,13 @@ module.exports = grammar({
optional(seq("as", field("alias", $.identifier)))
),
seq(
optional("type"),
"type",
field("name", $.type_identifier),
optional(seq("as", field("alias", $.type_identifier)))
),
seq(
field("name", $.constructor_name),
optional(seq("as", field("alias", $.constructor_name)))
)
),

@ -21,6 +21,7 @@ import a.{b}
import a/b.{c, d}
import a/b.{c as d, e}
import a/b.{c, D as E}
import a/b.{A as B, type C as D}
--------------------------------------------------------------------------------
@ -50,6 +51,15 @@ import a/b.{c, D as E}
imports: (unqualified_imports
(unqualified_import
name: (identifier))
(unqualified_import
name: (constructor_name)
alias: (constructor_name))))
(import
module: (module)
imports: (unqualified_imports
(unqualified_import
name: (constructor_name)
alias: (constructor_name))
(unqualified_import
name: (type_identifier)
alias: (type_identifier)))))
@ -61,6 +71,7 @@ Aliased imports
import a/b.{c as d} as e
import animal/cat as kitty
import animal.{Cat as Kitty} as a
import animal.{type Cat as Kitty} as a
import animal.{}
--------------------------------------------------------------------------------
@ -76,6 +87,13 @@ import animal.{}
(import
module: (module)
alias: (identifier))
(import
module: (module)
imports: (unqualified_imports
(unqualified_import
name: (constructor_name)
alias: (constructor_name)))
alias: (identifier))
(import
module: (module)
imports: (unqualified_imports

@ -161,7 +161,7 @@ pub fn negate(bool: Bool) -> Bool {
module: (module)
imports: (unqualified_imports
(unqualified_import
name: (type_identifier))))
name: (constructor_name))))
(statement_comment)
(statement_comment)
(statement_comment)
@ -234,7 +234,7 @@ fn foo(a,) {
(module)
(unqualified_imports
(unqualified_import
(type_identifier))))
(constructor_name))))
(constant
(identifier)
(tuple_type

@ -1,8 +1,8 @@
import gleam/option.{Option, Some, None}
import gleam/option.{type Option, Some, None}
// ^ reference.module
// ^ reference.type
// ^ reference.type
// ^ reference.type
// ^ reference.type
// ^ reference.constructor
// ^ reference.constructor
import gleam/bit_builder
// ^ reference.module