Contains a 2:1 mapping not currently expressible with 1-1 maps

This mapping has 16 multi-map groups: several pairings are equally correct there. The code view shows one arbitrary valid pairing, not the only one.

Before

…lines 1–211 unchanged (211 lines)
212 return;
213 }
214 const dropPosition = e.target.dropPosition;
215 if (dropPosition === 'before') {
216 const currentEnvIndex = subEnvironments.findIndex(evt => evt._id === targetEnv._id);
217 const previousEnv = subEnvironments[currentEnvIndex - 1];
218 if (!previousEnv) {
219 sourceEnv.metaSortKey = targetEnv.metaSortKey - 1;
220 } else {
221 sourceEnv.metaSortKey = (previousEnv.metaSortKey + targetEnv.metaSortKey) / 2;
222 }
223 }
224 if (dropPosition === 'after') {
225 const currentEnvIndex = subEnvironments.findIndex(evt => evt._id === targetEnv._id);
226 const nextEnv = subEnvironments[currentEnvIndex + 1];
227 if (!nextEnv) {
228 sourceEnv.metaSortKey = targetEnv.metaSortKey + 1;
229 } else {
230 sourceEnv.metaSortKey = (nextEnv.metaSortKey + targetEnv.metaSortKey) / 2;
231 }
232 }
233
234 updateEnvironmentFetcher.submit({
235 organizationId,
236 projectId,
237 workspaceId,
…lines 238–575 unchanged (338 lines)

After

…lines 1–211 unchanged (211 lines)
212 return;
213 }
214 const dropPosition = e.target.dropPosition;
215 if (dropPosition === 'before') {
216 const currentEnvIndex = subEnvironments.findIndex(evt => evt._id === targetEnv._id);
217 const previousEnv = subEnvironments[currentEnvIndex - 1];
218 sourceEnv.metaSortKey = !previousEnv
219 ? targetEnv.metaSortKey - 1
220 : (previousEnv.metaSortKey + targetEnv.metaSortKey) / 2;
221 }
222 if (dropPosition === 'after') {
223 const currentEnvIndex = subEnvironments.findIndex(evt => evt._id === targetEnv._id);
224 const nextEnv = subEnvironments[currentEnvIndex + 1];
225 sourceEnv.metaSortKey = !nextEnv
226 ? targetEnv.metaSortKey + 1
227 : (nextEnv.metaSortKey + targetEnv.metaSortKey) / 2;
228 }
229
230 updateEnvironmentFetcher.submit({
231 organizationId,
232 projectId,
233 workspaceId,
…lines 234–571 unchanged (338 lines)

Before

program
import_statement
import "import"
type "type"
import_clause
named_imports
{ "{"
import_specifier
identifier "IconName"
, ","
import_specifier
identifier "IconProp"
} "}"
from "from"
string
' "'"
string_fragment "@fortawesome/fontawesome-svg-core"
' "'"
; ";"
import_statement (+25 nodes collapsed)
import_statement (+60 nodes collapsed)
import_statement
import "import"
import_clause
named_imports
{ "{"
import_specifier
identifier "useParams"
} "}"
from "from"
string
' "'"
string_fragment "react-router"
' "'"
; ";"
import_statement
import "import"
import_clause
named_imports
{ "{"
import_specifier
identifier "useEnvironmentCreateActionFetcher"
} "}"
from "from"
string
' "'"
string_fragment "~/routes/organization.$organizationId.project.$projectId.wor"...
' "'"
; ";"
import_statement
import "import"
import_clause
named_imports
{ "{"
import_specifier
identifier "useEnvironmentDeleteActionFetcher"
} "}"
from "from"
string
' "'"
string_fragment "~/routes/organization.$organizationId.project.$projectId.wor"...
' "'"
; ";"
import_statement
import "import"
import_clause
named_imports
{ "{"
import_specifier
identifier "useEnvironmentDuplicateActionFetcher"
} "}"
from "from"
string
' "'"
string_fragment "~/routes/organization.$organizationId.project.$projectId.wor"...
' "'"
; ";"
import_statement
import "import"
import_clause
named_imports
{ "{"
import_specifier
identifier "useEnvironmentUpdateActionFetcher"
} "}"
from "from"
string
' "'"
string_fragment "~/routes/organization.$organizationId.project.$projectId.wor"...
' "'"
; ";"
import_statement
import "import"
import_clause
named_imports
{ "{"
import_specifier
identifier "invariant"
} "}"
from "from"
string
' "'"
string_fragment "~/utils/invariant"
' "'"
; ";"
import_statement
import "import"
import_clause
named_imports
{ "{"
import_specifier
identifier "docsAfterResponseScript"
, ","
import_specifier
identifier "docsTemplateTags"
} "}"
from "from"
string
' "'"
string_fragment "../../../common/documentation"
' "'"
; ";"
import_statement (+29 nodes collapsed)
import_statement
import "import"
import_clause
named_imports
{ "{"
import_specifier
identifier "isRemoteProject"
} "}"
from "from"
string
' "'"
string_fragment "../../../models/project"
' "'"
; ";"
import_statement
import "import"
import_clause
named_imports
{ "{"
import_specifier
identifier "useWorkspaceLoaderData"
} "}"
from "from"
string
' "'"
string_fragment "../../../routes/organization.$organizationId.project.$projec"...
' "'"
; ";"
import_statement
import "import"
import_clause
named_imports
{ "{"
import_specifier
identifier "responseTagRegex"
} "}"
from "from"
string
' "'"
string_fragment "../../../templating/utils"
' "'"
; ";"
import_statement
import "import"
import_clause
named_imports
{ "{"
import_specifier
identifier "useOrganizationPermissions"
} "}"
from "from"
string
' "'"
string_fragment "../../hooks/use-organization-features"
' "'"
; ";"
import_statement
import "import"
import_clause
named_imports
{ "{"
import_specifier
identifier "EditableInput"
} "}"
from "from"
string
' "'"
string_fragment "../editable-input"
' "'"
; ";"
import_statement (+22 nodes collapsed)
import_statement
import "import"
import_clause
named_imports
{ "{"
import_specifier
identifier "EnvironmentKVEditor"
} "}"
from "from"
string
' "'"
string_fragment "../editors/environment-key-value-editor/key-value-editor"
' "'"
; ";"
import_statement
import "import"
import_clause
named_imports
{ "{"
import_specifier
identifier "handleToggleEnvironmentType"
} "}"
from "from"
string
' "'"
string_fragment "../editors/environment-utils"
' "'"
; ";"
import_statement
import "import"
import_clause
named_imports
{ "{"
import_specifier
identifier "Icon"
} "}"
from "from"
string
' "'"
string_fragment "../icon"
' "'"
; ";"
import_statement
import "import"
import_clause
named_imports
{ "{"
import_specifier
identifier "showModal"
} "}"
from "from"
string
' "'"
string_fragment "."
' "'"
; ";"
import_statement
import "import"
import_clause
named_imports
{ "{"
import_specifier
identifier "AlertModal"
} "}"
from "from"
string
' "'"
string_fragment "./alert-modal"
' "'"
; ";"
export_statement
export "export"
lexical_declaration
const "const"
variable_declarator
identifier "WorkspaceEnvironmentsEditModal"
= "="
arrow_function
formal_parameters (+24 nodes collapsed)
=> "=>"
statement_block
{ "{"
lexical_declaration (+45 nodes collapsed)
expression_statement
call_expression
identifier "invariant"
arguments
( "("
identifier "organizationId"
, ","
string
' "'"
string_fragment "Organization ID is required"
' "'"
) ")"
; ";"
expression_statement
call_expression
identifier "invariant"
arguments
( "("
identifier "projectId"
, ","
string
' "'"
string_fragment "Project ID is required"
' "'"
) ")"
; ";"
expression_statement
call_expression
identifier "invariant"
arguments
( "("
identifier "workspaceId"
, ","
string
' "'"
string_fragment "Workspace ID is required"
' "'"
) ")"
; ";"
lexical_declaration
const "const"
variable_declarator
identifier "routeData"
= "="
non_null_expression
call_expression
identifier "useWorkspaceLoaderData"
arguments
( "("
) ")"
! "!"
; ";"
lexical_declaration
const "const"
variable_declarator
identifier "environmentEditorRef"
= "="
call_expression
identifier "useRef"
type_arguments
< "<"
type_identifier "EnvironmentEditorHandle"
> ">"
arguments
( "("
null "null"
) ")"
; ";"
lexical_declaration
const "const"
variable_declarator
object_pattern
{ "{"
shorthand_property_identifier_pattern "features"
} "}"
= "="
call_expression
identifier "useOrganizationPermissions"
arguments
( "("
) ")"
; ";"
lexical_declaration
const "const"
variable_declarator
identifier "createEnvironmentFetcher"
= "="
call_expression
identifier "useEnvironmentCreateActionFetcher"
arguments
( "("
) ")"
; ";"
lexical_declaration
const "const"
variable_declarator
identifier "deleteEnvironmentFetcher"
= "="
call_expression
identifier "useEnvironmentDeleteActionFetcher"
arguments
( "("
) ")"
; ";"
lexical_declaration
const "const"
variable_declarator
identifier "updateEnvironmentFetcher"
= "="
call_expression
identifier "useEnvironmentUpdateActionFetcher"
arguments
( "("
) ")"
; ";"
lexical_declaration
const "const"
variable_declarator
identifier "duplicateEnvironmentFetcher"
= "="
call_expression
identifier "useEnvironmentDuplicateActionFetcher"
arguments
( "("
) ")"
; ";"
lexical_declaration
const "const"
variable_declarator
object_pattern
{ "{"
shorthand_property_identifier_pattern "baseEnvironment"
, ","
shorthand_property_identifier_pattern "activeEnvironment"
, ","
shorthand_property_identifier_pattern "subEnvironments"
, ","
shorthand_property_identifier_pattern "activeProject"
, ","
shorthand_property_identifier_pattern "activeWorkspaceMeta"
} "}"
= "="
identifier "routeData"
; ";"
lexical_declaration (+25 nodes collapsed)
lexical_declaration (+26 nodes collapsed)
lexical_declaration (+25 nodes collapsed)
lexical_declaration (+31 nodes collapsed)
lexical_declaration (+60 nodes collapsed)
comment "// Do not allowed to switch to json environment if contains "...
lexical_declaration (+35 nodes collapsed)
lexical_declaration (+273 nodes collapsed)
lexical_declaration (+267 nodes collapsed)
lexical_declaration (+98 nodes collapsed)
lexical_declaration (+95 nodes collapsed)
lexical_declaration
const "const"
variable_declarator
identifier "environmentsDragAndDrop"
= "="
call_expression
identifier "useDragAndDrop"
arguments
( "("
object
{ "{"
pair (+42 nodes collapsed)
, ","
method_definition
property_identifier "onReorder"
formal_parameters
( "("
required_parameter
identifier "e"
) ")"
statement_block
{ "{"
lexical_declaration
const "const"
variable_declarator
identifier "source"
= "="
subscript_expression
array
[ "["
spread_element
... "..."
member_expression
identifier "e"
. "."
property_identifier "keys"
] "]"
[ "["
number "0"
] "]"
; ";"
lexical_declaration (+24 nodes collapsed)
lexical_declaration (+30 nodes collapsed)
if_statement
if "if"
parenthesized_expression
( "("
binary_expression
unary_expression
! "!"
identifier "sourceEnv"
|| "||"
unary_expression
! "!"
identifier "targetEnv"
) ")"
statement_block
{ "{"
return_statement
return "return"
; ";"
} "}"
lexical_declaration
const "const"
variable_declarator
identifier "dropPosition"
= "="
member_expression
member_expression
identifier "e"
. "."
property_identifier "target"
. "."
property_identifier "dropPosition"
; ";"
if_statement
if "if"
parenthesized_expression
( "("
binary_expression
identifier "dropPosition"
=== "==="
string
' "'"
string_fragment "before"
' "'"
) ")"
statement_block
{ "{"
lexical_declaration (+27 nodes collapsed)
lexical_declaration
const "const"
variable_declarator
identifier "previousEnv"
= "="
subscript_expression
identifier "subEnvironments"
[ "["
binary_expression
identifier "currentEnvIndex"
- "-"
number "1"
] "]"
; ";"
if_statement
if "if"
parenthesized_expression
( "("
unary_expression
! "!"
identifier "previousEnv"
) ")"
statement_block
{ "{"
expression_statement any 2:1
assignment_expression any 2:1
member_expression any 2:1
identifier "sourceEnv" any 2:1
. "." any 2:1
property_identifier "metaSortKey" any 2:1
= "=" any 2:1
binary_expression
member_expression
identifier "targetEnv"
. "."
property_identifier "metaSortKey"
- "-"
number "1"
; ";" any 2:1
} "}"
else_clause
else "else"
statement_block
{ "{"
expression_statement any 2:1
assignment_expression any 2:1
member_expression any 2:1
identifier "sourceEnv" any 2:1
. "." any 2:1
property_identifier "metaSortKey" any 2:1
= "=" any 2:1
binary_expression
parenthesized_expression
( "("
binary_expression
member_expression
identifier "previousEnv"
. "."
property_identifier "metaSortKey"
+ "+"
member_expression
identifier "targetEnv"
. "."
property_identifier "metaSortKey"
) ")"
/ "/"
number "2"
; ";" any 2:1
} "}"
} "}"
if_statement
if "if"
parenthesized_expression
( "("
binary_expression
identifier "dropPosition"
=== "==="
string
' "'"
string_fragment "after"
' "'"
) ")"
statement_block
{ "{"
lexical_declaration (+27 nodes collapsed)
lexical_declaration
const "const"
variable_declarator
identifier "nextEnv"
= "="
subscript_expression
identifier "subEnvironments"
[ "["
binary_expression
identifier "currentEnvIndex"
+ "+"
number "1"
] "]"
; ";"
if_statement
if "if"
parenthesized_expression
( "("
unary_expression
! "!"
identifier "nextEnv"
) ")"
statement_block
{ "{"
expression_statement any 2:1
assignment_expression any 2:1
member_expression any 2:1
identifier "sourceEnv" any 2:1
. "." any 2:1
property_identifier "metaSortKey" any 2:1
= "=" any 2:1
binary_expression
member_expression
identifier "targetEnv"
. "."
property_identifier "metaSortKey"
+ "+"
number "1"
; ";" any 2:1
} "}"
else_clause
else "else"
statement_block
{ "{"
expression_statement any 2:1
assignment_expression any 2:1
member_expression any 2:1
identifier "sourceEnv" any 2:1
. "." any 2:1
property_identifier "metaSortKey" any 2:1
= "=" any 2:1
binary_expression
parenthesized_expression
( "("
binary_expression
member_expression
identifier "nextEnv"
. "."
property_identifier "metaSortKey"
+ "+"
member_expression
identifier "targetEnv"
. "."
property_identifier "metaSortKey"
) ")"
/ "/"
number "2"
; ";" any 2:1
} "}"
} "}"
expression_statement (+41 nodes collapsed)
} "}"
, ","
method_definition (+121 nodes collapsed)
, ","
} "}"
) ")"
; ";"
return_statement (+2109 nodes collapsed)
} "}"
; ";"

After

program
import_statement
import "import"
type "type"
import_clause
named_imports
{ "{"
import_specifier
identifier "IconName"
, ","
import_specifier
identifier "IconProp"
} "}"
from "from"
string
' "'"
string_fragment "@fortawesome/fontawesome-svg-core"
' "'"
; ";"
import_statement (+25 nodes collapsed)
import_statement (+60 nodes collapsed)
import_statement
import "import"
import_clause
named_imports
{ "{"
import_specifier
identifier "useParams"
} "}"
from "from"
string
' "'"
string_fragment "react-router"
' "'"
; ";"
import_statement
import "import"
import_clause
named_imports
{ "{"
import_specifier
identifier "useEnvironmentCreateActionFetcher"
} "}"
from "from"
string
' "'"
string_fragment "~/routes/organization.$organizationId.project.$projectId.wor"...
' "'"
; ";"
import_statement
import "import"
import_clause
named_imports
{ "{"
import_specifier
identifier "useEnvironmentDeleteActionFetcher"
} "}"
from "from"
string
' "'"
string_fragment "~/routes/organization.$organizationId.project.$projectId.wor"...
' "'"
; ";"
import_statement
import "import"
import_clause
named_imports
{ "{"
import_specifier
identifier "useEnvironmentDuplicateActionFetcher"
} "}"
from "from"
string
' "'"
string_fragment "~/routes/organization.$organizationId.project.$projectId.wor"...
' "'"
; ";"
import_statement
import "import"
import_clause
named_imports
{ "{"
import_specifier
identifier "useEnvironmentUpdateActionFetcher"
} "}"
from "from"
string
' "'"
string_fragment "~/routes/organization.$organizationId.project.$projectId.wor"...
' "'"
; ";"
import_statement
import "import"
import_clause
named_imports
{ "{"
import_specifier
identifier "invariant"
} "}"
from "from"
string
' "'"
string_fragment "~/utils/invariant"
' "'"
; ";"
import_statement
import "import"
import_clause
named_imports
{ "{"
import_specifier
identifier "docsAfterResponseScript"
, ","
import_specifier
identifier "docsTemplateTags"
} "}"
from "from"
string
' "'"
string_fragment "../../../common/documentation"
' "'"
; ";"
import_statement (+29 nodes collapsed)
import_statement
import "import"
import_clause
named_imports
{ "{"
import_specifier
identifier "isRemoteProject"
} "}"
from "from"
string
' "'"
string_fragment "../../../models/project"
' "'"
; ";"
import_statement
import "import"
import_clause
named_imports
{ "{"
import_specifier
identifier "useWorkspaceLoaderData"
} "}"
from "from"
string
' "'"
string_fragment "../../../routes/organization.$organizationId.project.$projec"...
' "'"
; ";"
import_statement
import "import"
import_clause
named_imports
{ "{"
import_specifier
identifier "responseTagRegex"
} "}"
from "from"
string
' "'"
string_fragment "../../../templating/utils"
' "'"
; ";"
import_statement
import "import"
import_clause
named_imports
{ "{"
import_specifier
identifier "useOrganizationPermissions"
} "}"
from "from"
string
' "'"
string_fragment "../../hooks/use-organization-features"
' "'"
; ";"
import_statement
import "import"
import_clause
named_imports
{ "{"
import_specifier
identifier "EditableInput"
} "}"
from "from"
string
' "'"
string_fragment "../editable-input"
' "'"
; ";"
import_statement (+22 nodes collapsed)
import_statement
import "import"
import_clause
named_imports
{ "{"
import_specifier
identifier "EnvironmentKVEditor"
} "}"
from "from"
string
' "'"
string_fragment "../editors/environment-key-value-editor/key-value-editor"
' "'"
; ";"
import_statement
import "import"
import_clause
named_imports
{ "{"
import_specifier
identifier "handleToggleEnvironmentType"
} "}"
from "from"
string
' "'"
string_fragment "../editors/environment-utils"
' "'"
; ";"
import_statement
import "import"
import_clause
named_imports
{ "{"
import_specifier
identifier "Icon"
} "}"
from "from"
string
' "'"
string_fragment "../icon"
' "'"
; ";"
import_statement
import "import"
import_clause
named_imports
{ "{"
import_specifier
identifier "showModal"
} "}"
from "from"
string
' "'"
string_fragment "."
' "'"
; ";"
import_statement
import "import"
import_clause
named_imports
{ "{"
import_specifier
identifier "AlertModal"
} "}"
from "from"
string
' "'"
string_fragment "./alert-modal"
' "'"
; ";"
export_statement
export "export"
lexical_declaration
const "const"
variable_declarator
identifier "WorkspaceEnvironmentsEditModal"
= "="
arrow_function
formal_parameters (+24 nodes collapsed)
=> "=>"
statement_block
{ "{"
lexical_declaration (+45 nodes collapsed)
expression_statement
call_expression
identifier "invariant"
arguments
( "("
identifier "organizationId"
, ","
string
' "'"
string_fragment "Organization ID is required"
' "'"
) ")"
; ";"
expression_statement
call_expression
identifier "invariant"
arguments
( "("
identifier "projectId"
, ","
string
' "'"
string_fragment "Project ID is required"
' "'"
) ")"
; ";"
expression_statement
call_expression
identifier "invariant"
arguments
( "("
identifier "workspaceId"
, ","
string
' "'"
string_fragment "Workspace ID is required"
' "'"
) ")"
; ";"
lexical_declaration
const "const"
variable_declarator
identifier "routeData"
= "="
non_null_expression
call_expression
identifier "useWorkspaceLoaderData"
arguments
( "("
) ")"
! "!"
; ";"
lexical_declaration
const "const"
variable_declarator
identifier "environmentEditorRef"
= "="
call_expression
identifier "useRef"
type_arguments
< "<"
type_identifier "EnvironmentEditorHandle"
> ">"
arguments
( "("
null "null"
) ")"
; ";"
lexical_declaration
const "const"
variable_declarator
object_pattern
{ "{"
shorthand_property_identifier_pattern "features"
} "}"
= "="
call_expression
identifier "useOrganizationPermissions"
arguments
( "("
) ")"
; ";"
lexical_declaration
const "const"
variable_declarator
identifier "createEnvironmentFetcher"
= "="
call_expression
identifier "useEnvironmentCreateActionFetcher"
arguments
( "("
) ")"
; ";"
lexical_declaration
const "const"
variable_declarator
identifier "deleteEnvironmentFetcher"
= "="
call_expression
identifier "useEnvironmentDeleteActionFetcher"
arguments
( "("
) ")"
; ";"
lexical_declaration
const "const"
variable_declarator
identifier "updateEnvironmentFetcher"
= "="
call_expression
identifier "useEnvironmentUpdateActionFetcher"
arguments
( "("
) ")"
; ";"
lexical_declaration
const "const"
variable_declarator
identifier "duplicateEnvironmentFetcher"
= "="
call_expression
identifier "useEnvironmentDuplicateActionFetcher"
arguments
( "("
) ")"
; ";"
lexical_declaration
const "const"
variable_declarator
object_pattern
{ "{"
shorthand_property_identifier_pattern "baseEnvironment"
, ","
shorthand_property_identifier_pattern "activeEnvironment"
, ","
shorthand_property_identifier_pattern "subEnvironments"
, ","
shorthand_property_identifier_pattern "activeProject"
, ","
shorthand_property_identifier_pattern "activeWorkspaceMeta"
} "}"
= "="
identifier "routeData"
; ";"
lexical_declaration (+25 nodes collapsed)
lexical_declaration (+26 nodes collapsed)
lexical_declaration (+25 nodes collapsed)
lexical_declaration (+31 nodes collapsed)
lexical_declaration (+60 nodes collapsed)
comment "// Do not allowed to switch to json environment if contains "...
lexical_declaration (+35 nodes collapsed)
lexical_declaration (+273 nodes collapsed)
lexical_declaration (+267 nodes collapsed)
lexical_declaration (+98 nodes collapsed)
lexical_declaration (+95 nodes collapsed)
lexical_declaration
const "const"
variable_declarator
identifier "environmentsDragAndDrop"
= "="
call_expression
identifier "useDragAndDrop"
arguments
( "("
object
{ "{"
pair (+42 nodes collapsed)
, ","
method_definition
property_identifier "onReorder"
formal_parameters
( "("
required_parameter
identifier "e"
) ")"
statement_block
{ "{"
lexical_declaration
const "const"
variable_declarator
identifier "source"
= "="
subscript_expression
array
[ "["
spread_element
... "..."
member_expression
identifier "e"
. "."
property_identifier "keys"
] "]"
[ "["
number "0"
] "]"
; ";"
lexical_declaration (+24 nodes collapsed)
lexical_declaration (+30 nodes collapsed)
if_statement
if "if"
parenthesized_expression
( "("
binary_expression
unary_expression
! "!"
identifier "sourceEnv"
|| "||"
unary_expression
! "!"
identifier "targetEnv"
) ")"
statement_block
{ "{"
return_statement
return "return"
; ";"
} "}"
lexical_declaration
const "const"
variable_declarator
identifier "dropPosition"
= "="
member_expression
member_expression
identifier "e"
. "."
property_identifier "target"
. "."
property_identifier "dropPosition"
; ";"
if_statement
if "if"
parenthesized_expression
( "("
binary_expression
identifier "dropPosition"
=== "==="
string
' "'"
string_fragment "before"
' "'"
) ")"
statement_block
{ "{"
lexical_declaration (+27 nodes collapsed)
lexical_declaration
const "const"
variable_declarator
identifier "previousEnv"
= "="
subscript_expression
identifier "subEnvironments"
[ "["
binary_expression
identifier "currentEnvIndex"
- "-"
number "1"
] "]"
; ";"
expression_statement any 2:1
assignment_expression any 2:1
member_expression any 2:1
identifier "sourceEnv" any 2:1
. "." any 2:1
property_identifier "metaSortKey" any 2:1
= "=" any 2:1
ternary_expression
unary_expression
! "!"
identifier "previousEnv"
? "?"
binary_expression
member_expression
identifier "targetEnv"
. "."
property_identifier "metaSortKey"
- "-"
number "1"
: ":"
binary_expression
parenthesized_expression
( "("
binary_expression
member_expression
identifier "previousEnv"
. "."
property_identifier "metaSortKey"
+ "+"
member_expression
identifier "targetEnv"
. "."
property_identifier "metaSortKey"
) ")"
/ "/"
number "2"
; ";" any 2:1
} "}"
if_statement
if "if"
parenthesized_expression
( "("
binary_expression
identifier "dropPosition"
=== "==="
string
' "'"
string_fragment "after"
' "'"
) ")"
statement_block
{ "{"
lexical_declaration (+27 nodes collapsed)
lexical_declaration
const "const"
variable_declarator
identifier "nextEnv"
= "="
subscript_expression
identifier "subEnvironments"
[ "["
binary_expression
identifier "currentEnvIndex"
+ "+"
number "1"
] "]"
; ";"
expression_statement any 2:1
assignment_expression any 2:1
member_expression any 2:1
identifier "sourceEnv" any 2:1
. "." any 2:1
property_identifier "metaSortKey" any 2:1
= "=" any 2:1
ternary_expression
unary_expression
! "!"
identifier "nextEnv"
? "?"
binary_expression
member_expression
identifier "targetEnv"
. "."
property_identifier "metaSortKey"
+ "+"
number "1"
: ":"
binary_expression
parenthesized_expression
( "("
binary_expression
member_expression
identifier "nextEnv"
. "."
property_identifier "metaSortKey"
+ "+"
member_expression
identifier "targetEnv"
. "."
property_identifier "metaSortKey"
) ")"
/ "/"
number "2"
; ";" any 2:1
} "}"
expression_statement (+41 nodes collapsed)
} "}"
, ","
method_definition (+121 nodes collapsed)
, ","
} "}"
) ")"
; ";"
return_statement (+2109 nodes collapsed)
} "}"
; ";"