mirror of
https://github.com/roc-lang/roc.git
synced 2025-08-04 04:08:19 +00:00
Parse and format import package shorthand
The original proposal [1] suggested dropping the package shorthand,
but we later decided to keep it [2] to improve UX.
[1] https://docs.google.com/document/d/1E_77fO-44BtoBtXoVeWyGh1xN2KRTWTu8q6i25RNNx0/edit?usp=sharing
[2] 385104011
This commit is contained in:
parent
c56091ee3e
commit
65ce811587
15 changed files with 349 additions and 115 deletions
|
@ -15,9 +15,10 @@ Defs {
|
|||
type_defs: [],
|
||||
value_defs: [
|
||||
ModuleImport {
|
||||
name: @8-12 ModuleName(
|
||||
"Json",
|
||||
),
|
||||
name: @8-12 ImportedModuleName {
|
||||
package: None,
|
||||
name: "Json",
|
||||
},
|
||||
alias: None,
|
||||
exposed: None,
|
||||
},
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
import json.Decode
|
||||
|
||||
import json.Decode as JD
|
||||
|
||||
import json.Decode exposing [
|
||||
Decoder,
|
||||
map,
|
||||
]
|
||||
import json.Decode as JD exposing [
|
||||
Decoder,
|
||||
map,
|
||||
]
|
|
@ -0,0 +1,124 @@
|
|||
Defs {
|
||||
tags: [
|
||||
Index(2147483648),
|
||||
Index(2147483649),
|
||||
Index(2147483650),
|
||||
Index(2147483651),
|
||||
],
|
||||
regions: [
|
||||
@0-20,
|
||||
@20-45,
|
||||
@45-92,
|
||||
@93-146,
|
||||
],
|
||||
space_before: [
|
||||
Slice(start = 0, length = 0),
|
||||
Slice(start = 0, length = 0),
|
||||
Slice(start = 0, length = 0),
|
||||
Slice(start = 0, length = 1),
|
||||
],
|
||||
space_after: [
|
||||
Slice(start = 0, length = 0),
|
||||
Slice(start = 0, length = 0),
|
||||
Slice(start = 0, length = 0),
|
||||
Slice(start = 1, length = 0),
|
||||
],
|
||||
spaces: [
|
||||
Newline,
|
||||
],
|
||||
type_defs: [],
|
||||
value_defs: [
|
||||
ModuleImport {
|
||||
name: @8-19 SpaceAfter(
|
||||
ImportedModuleName {
|
||||
package: Some(
|
||||
"json",
|
||||
),
|
||||
name: "Decode",
|
||||
},
|
||||
[
|
||||
Newline,
|
||||
],
|
||||
),
|
||||
alias: None,
|
||||
exposed: None,
|
||||
},
|
||||
ModuleImport {
|
||||
name: @27-38 ImportedModuleName {
|
||||
package: Some(
|
||||
"json",
|
||||
),
|
||||
name: "Decode",
|
||||
},
|
||||
alias: Some(
|
||||
@42-44 SpaceAfter(
|
||||
ImportAlias(
|
||||
"JD",
|
||||
),
|
||||
[
|
||||
Newline,
|
||||
],
|
||||
),
|
||||
),
|
||||
exposed: None,
|
||||
},
|
||||
ModuleImport {
|
||||
name: @52-63 ImportedModuleName {
|
||||
package: Some(
|
||||
"json",
|
||||
),
|
||||
name: "Decode",
|
||||
},
|
||||
alias: None,
|
||||
exposed: Some(
|
||||
(
|
||||
[],
|
||||
[
|
||||
@74-81 ExposedName(
|
||||
"Decoder",
|
||||
),
|
||||
@88-91 SpaceBefore(
|
||||
ExposedName(
|
||||
"map",
|
||||
),
|
||||
[
|
||||
Newline,
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
},
|
||||
ModuleImport {
|
||||
name: @100-111 ImportedModuleName {
|
||||
package: Some(
|
||||
"json",
|
||||
),
|
||||
name: "Decode",
|
||||
},
|
||||
alias: Some(
|
||||
@115-117 ImportAlias(
|
||||
"JD",
|
||||
),
|
||||
),
|
||||
exposed: Some(
|
||||
(
|
||||
[],
|
||||
[
|
||||
@128-135 ExposedName(
|
||||
"Decoder",
|
||||
),
|
||||
@142-145 SpaceBefore(
|
||||
ExposedName(
|
||||
"map",
|
||||
),
|
||||
[
|
||||
Newline,
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
},
|
||||
],
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
import json.Decode
|
||||
import json.Decode as JD
|
||||
import json.Decode exposing [Decoder,
|
||||
map]
|
||||
import json.Decode as JD exposing [Decoder,
|
||||
map]
|
|
@ -19,12 +19,13 @@ Defs {
|
|||
type_defs: [],
|
||||
value_defs: [
|
||||
ModuleImport {
|
||||
name: @7-17 ModuleName(
|
||||
"JsonEncode",
|
||||
),
|
||||
name: @7-17 ImportedModuleName {
|
||||
package: None,
|
||||
name: "JsonEncode",
|
||||
},
|
||||
alias: Some(
|
||||
@21-23 SpaceAfter(
|
||||
ModuleName(
|
||||
ImportAlias(
|
||||
"JE",
|
||||
),
|
||||
[
|
||||
|
@ -35,11 +36,12 @@ Defs {
|
|||
exposed: None,
|
||||
},
|
||||
ModuleImport {
|
||||
name: @31-42 ModuleName(
|
||||
"BytesDecode",
|
||||
),
|
||||
name: @31-42 ImportedModuleName {
|
||||
package: None,
|
||||
name: "BytesDecode",
|
||||
},
|
||||
alias: Some(
|
||||
@47-49 ModuleName(
|
||||
@47-49 ImportAlias(
|
||||
"BD",
|
||||
),
|
||||
),
|
||||
|
|
|
@ -75,9 +75,10 @@ Defs {
|
|||
value_defs: [
|
||||
ModuleImport {
|
||||
name: @25-29 SpaceBefore(
|
||||
ModuleName(
|
||||
"Json",
|
||||
),
|
||||
ImportedModuleName {
|
||||
package: None,
|
||||
name: "Json",
|
||||
},
|
||||
[
|
||||
Newline,
|
||||
LineComment(
|
||||
|
@ -86,7 +87,7 @@ Defs {
|
|||
],
|
||||
),
|
||||
alias: Some(
|
||||
@33-34 ModuleName(
|
||||
@33-34 ImportAlias(
|
||||
"J",
|
||||
),
|
||||
),
|
||||
|
@ -103,9 +104,10 @@ Defs {
|
|||
},
|
||||
ModuleImport {
|
||||
name: @58-62 SpaceAfter(
|
||||
ModuleName(
|
||||
"Json",
|
||||
),
|
||||
ImportedModuleName {
|
||||
package: None,
|
||||
name: "Json",
|
||||
},
|
||||
[
|
||||
Newline,
|
||||
LineComment(
|
||||
|
@ -114,7 +116,7 @@ Defs {
|
|||
],
|
||||
),
|
||||
alias: Some(
|
||||
@84-85 ModuleName(
|
||||
@84-85 ImportAlias(
|
||||
"J",
|
||||
),
|
||||
),
|
||||
|
@ -130,13 +132,14 @@ Defs {
|
|||
),
|
||||
},
|
||||
ModuleImport {
|
||||
name: @109-113 ModuleName(
|
||||
"Json",
|
||||
),
|
||||
name: @109-113 ImportedModuleName {
|
||||
package: None,
|
||||
name: "Json",
|
||||
},
|
||||
alias: Some(
|
||||
@135-136 SpaceBefore(
|
||||
SpaceAfter(
|
||||
ModuleName(
|
||||
ImportAlias(
|
||||
"J",
|
||||
),
|
||||
[
|
||||
|
@ -155,12 +158,13 @@ Defs {
|
|||
exposed: None,
|
||||
},
|
||||
ModuleImport {
|
||||
name: @145-149 ModuleName(
|
||||
"Json",
|
||||
),
|
||||
name: @145-149 ImportedModuleName {
|
||||
package: None,
|
||||
name: "Json",
|
||||
},
|
||||
alias: Some(
|
||||
@171-172 SpaceBefore(
|
||||
ModuleName(
|
||||
ImportAlias(
|
||||
"J",
|
||||
),
|
||||
[
|
||||
|
@ -183,12 +187,13 @@ Defs {
|
|||
),
|
||||
},
|
||||
ModuleImport {
|
||||
name: @196-200 ModuleName(
|
||||
"Json",
|
||||
),
|
||||
name: @196-200 ImportedModuleName {
|
||||
package: None,
|
||||
name: "Json",
|
||||
},
|
||||
alias: Some(
|
||||
@222-223 SpaceBefore(
|
||||
ModuleName(
|
||||
ImportAlias(
|
||||
"J",
|
||||
),
|
||||
[
|
||||
|
@ -220,9 +225,10 @@ Defs {
|
|||
},
|
||||
ModuleImport {
|
||||
name: @261-265 SpaceAfter(
|
||||
ModuleName(
|
||||
"Json",
|
||||
),
|
||||
ImportedModuleName {
|
||||
package: None,
|
||||
name: "Json",
|
||||
},
|
||||
[
|
||||
Newline,
|
||||
LineComment(
|
||||
|
@ -251,12 +257,13 @@ Defs {
|
|||
),
|
||||
},
|
||||
ModuleImport {
|
||||
name: @321-325 ModuleName(
|
||||
"Json",
|
||||
),
|
||||
name: @321-325 ImportedModuleName {
|
||||
package: None,
|
||||
name: "Json",
|
||||
},
|
||||
alias: Some(
|
||||
@329-330 SpaceAfter(
|
||||
ModuleName(
|
||||
ImportAlias(
|
||||
"J",
|
||||
),
|
||||
[
|
||||
|
@ -279,9 +286,10 @@ Defs {
|
|||
),
|
||||
},
|
||||
ModuleImport {
|
||||
name: @372-376 ModuleName(
|
||||
"Json",
|
||||
),
|
||||
name: @372-376 ImportedModuleName {
|
||||
package: None,
|
||||
name: "Json",
|
||||
},
|
||||
alias: None,
|
||||
exposed: Some(
|
||||
(
|
||||
|
@ -300,11 +308,12 @@ Defs {
|
|||
),
|
||||
},
|
||||
ModuleImport {
|
||||
name: @418-422 ModuleName(
|
||||
"Json",
|
||||
),
|
||||
name: @418-422 ImportedModuleName {
|
||||
package: None,
|
||||
name: "Json",
|
||||
},
|
||||
alias: Some(
|
||||
@426-427 ModuleName(
|
||||
@426-427 ImportAlias(
|
||||
"J",
|
||||
),
|
||||
),
|
||||
|
@ -325,11 +334,12 @@ Defs {
|
|||
),
|
||||
},
|
||||
ModuleImport {
|
||||
name: @469-473 ModuleName(
|
||||
"Json",
|
||||
),
|
||||
name: @469-473 ImportedModuleName {
|
||||
package: None,
|
||||
name: "Json",
|
||||
},
|
||||
alias: Some(
|
||||
@477-478 ModuleName(
|
||||
@477-478 ImportAlias(
|
||||
"J",
|
||||
),
|
||||
),
|
||||
|
@ -360,9 +370,10 @@ Defs {
|
|||
ModuleImport {
|
||||
name: @542-546 SpaceBefore(
|
||||
SpaceAfter(
|
||||
ModuleName(
|
||||
"Json",
|
||||
),
|
||||
ImportedModuleName {
|
||||
package: None,
|
||||
name: "Json",
|
||||
},
|
||||
[
|
||||
Newline,
|
||||
LineComment(
|
||||
|
@ -380,7 +391,7 @@ Defs {
|
|||
alias: Some(
|
||||
@590-591 SpaceBefore(
|
||||
SpaceAfter(
|
||||
ModuleName(
|
||||
ImportAlias(
|
||||
"J",
|
||||
),
|
||||
[
|
||||
|
|
|
@ -26,9 +26,10 @@ Defs {
|
|||
type_defs: [],
|
||||
value_defs: [
|
||||
ModuleImport {
|
||||
name: @7-11 ModuleName(
|
||||
"Json",
|
||||
),
|
||||
name: @7-11 ImportedModuleName {
|
||||
package: None,
|
||||
name: "Json",
|
||||
},
|
||||
alias: None,
|
||||
exposed: Some(
|
||||
(
|
||||
|
@ -45,9 +46,10 @@ Defs {
|
|||
),
|
||||
},
|
||||
ModuleImport {
|
||||
name: @43-47 ModuleName(
|
||||
"Json",
|
||||
),
|
||||
name: @43-47 ImportedModuleName {
|
||||
package: None,
|
||||
name: "Json",
|
||||
},
|
||||
alias: None,
|
||||
exposed: Some(
|
||||
(
|
||||
|
@ -69,9 +71,10 @@ Defs {
|
|||
),
|
||||
},
|
||||
ModuleImport {
|
||||
name: @83-87 ModuleName(
|
||||
"Json",
|
||||
),
|
||||
name: @83-87 ImportedModuleName {
|
||||
package: None,
|
||||
name: "Json",
|
||||
},
|
||||
alias: None,
|
||||
exposed: Some(
|
||||
(
|
||||
|
|
|
@ -325,6 +325,7 @@ mod test_snapshots {
|
|||
pass/highest_int.expr,
|
||||
pass/if_def.expr,
|
||||
pass/import.moduledefs,
|
||||
pass/import_from_package.moduledefs,
|
||||
pass/import_with_alias.moduledefs,
|
||||
pass/import_with_comments.moduledefs,
|
||||
pass/import_with_exposed.moduledefs,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue