From 95cdf4ed5dbb214fe69965ea687decb01b8fe624 Mon Sep 17 00:00:00 2001 From: Petrov Igor Date: Tue, 25 Jun 2024 10:34:30 +0300 Subject: [PATCH 1/2] [ArkTS VSCode] Support `internal` access modifier Issue: no Testing: `vsce package` Signed-off-by: Petrov Igor --- vs_plugin/CHANGELOG.md | 4 +++ vs_plugin/package.json | 2 +- vs_plugin/src/syntaxes/sts.tmLanguage.json | 28 +++++++++--------- ...0.2.vsix => static-type-script-1.0.3.vsix} | Bin 47919 -> 47960 bytes 4 files changed, 19 insertions(+), 15 deletions(-) rename vs_plugin/{static-type-script-1.0.2.vsix => static-type-script-1.0.3.vsix} (54%) diff --git a/vs_plugin/CHANGELOG.md b/vs_plugin/CHANGELOG.md index 822228988..a83870d2b 100644 --- a/vs_plugin/CHANGELOG.md +++ b/vs_plugin/CHANGELOG.md @@ -1,5 +1,9 @@ # STS for Visual Studio Code Changelog +## Version 1.0.3: 25.06.2024 +### New features +* Support `internal` keyword as access modifier + ## Version 1.0.2: 03.07.2023 ### New features * Support `launch` keyword diff --git a/vs_plugin/package.json b/vs_plugin/package.json index d7e5a542e..bdb467976 100644 --- a/vs_plugin/package.json +++ b/vs_plugin/package.json @@ -8,7 +8,7 @@ }, "publisher": "Ark Core", "description": "Syntax highlighting for static type script", - "version": "1.0.2", + "version": "1.0.3", "engines": { "vscode": "^1.69.0" }, diff --git a/vs_plugin/src/syntaxes/sts.tmLanguage.json b/vs_plugin/src/syntaxes/sts.tmLanguage.json index 4f08d543e..268c7270b 100644 --- a/vs_plugin/src/syntaxes/sts.tmLanguage.json +++ b/vs_plugin/src/syntaxes/sts.tmLanguage.json @@ -876,7 +876,7 @@ "parameter-name": { "patterns": [ { - "match": "(?)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", + "match": "(?x)(?:(?)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", "captures": { "1": { "name": "storage.modifier.sts" @@ -904,7 +904,7 @@ } }, { - "match": "(?x)(?:(?]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", + "begin": "(?x)(?]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", "beginCaptures": { "1": { "name": "storage.modifier.sts" @@ -1343,7 +1343,7 @@ }, { "name": "meta.method.declaration.sts", - "begin": "(?x)(?]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", + "begin": "(?x)(?]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", "beginCaptures": { "1": { "name": "storage.modifier.sts" @@ -1864,7 +1864,7 @@ }, "access-modifier": { "name": "storage.modifier.sts", - "match": "(?)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", + "match": "(?x)(?:(?)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", "captures": { "1": { "name": "storage.modifier.sts" @@ -3269,7 +3269,7 @@ } }, { - "match": "(?x)(?:(?)\n ))\n ))\n)) |\n(:\\s*(?]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))", + "match": "(?x)(?:(?)\n ))\n ))\n)) |\n(:\\s*(?]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))", "captures": { "1": { "name": "storage.modifier.sts" @@ -4459,7 +4459,7 @@ } }, { - "match": "(?x)(?:(?Y{hU~kf=o;jWLnTs3AnmqF_?8 zIt{Rb@8Gm=`LXFWp#aK+V~zVgEL39tg9&H4q~Ps*vdj1@G;07$5$X6$coTg73#oku zK65b?8=qY^0r&xRHoD6dUViZNj62CE*8wlcs!O-U#Y-vRGCp$Wlv~=uQCj&7jBGN4 zcoJGFRo-n^9VeeT2%>s1jk}0QY68_lfd=5fBSZwJ%fl3R00w{n-KQ;fqArP5y*PvS zg{?YM#y*#0gvZ`E6Dt{=s90h(W6{XU@Kx0n@_dGJ_J$nbzD`0`9PnBaBt?VV&Y;Ai z$}ClzI>Bv`cT-E|31yWOL|ct8O&&%6Fu5(zRihUr9+|gkT|tawrak1odeu2)g$BsX zv_E+z25|gB!oUph&OGvP642f$V_*jzj}pQu`-~6hV}(|fo%V&FL!Zp@?{Vz6QkcPs zQ=*%Uwlr9h1Bx?|K>2~yz#B5o*z7fT1eMXo4}1~Rp>4q!(+Sx;TXR~`m__0MGKD8m z98xJ!LY1Y}5ne_nFvoQsB0rKj)&SH}{h8_jMG^tSs)Va|M|XnESlW_M{nHdrILlly zb*cKR*41wDgi>2>j{WGwntybrejs;Z#3FHATrrB3T44Dy7ga-eB#RQ?Xt6S36{b)0 zpvNW;x4Fp5DR@ooaz?@fJ0TiItUHYMLGpbi7N?QN{tG7{BaPH$Gs!(qrUDSz_f;pO zs}z8!`D0g9x#H3?vZoR{aq0B+)dg*1#wo{cWrQ2n5~ay@)D20;1fx6RKyAq_k6?6< zD=nUIc1U&qn*gU9$K~@dAg!^CHrJ#U!#Hd(F63;@;MV%pjT6(CpeIE(3kDlcXO8!M zvf_qpW^wc)i90<#?lVt2XBXlBq9REK^b+tNJb0y^t-XMOfC@o?fY5<}fJ{AHOzoU4 z?d=#uB!uL|MP=m0>1|DX6L+mQ8GrfjKB{kxNpqB6aaxXirJ51Z(BjdSFc=RFaBpgv zXkOVPYchD^=^kT)11MFkf zBo!MDD6vlybs3*$n_99*jWh8c08=0FYq%6K)WeU&KPyOF&s){PtR0>UssXw8O(N$6 zr3P1%ZovAaig25ruObM1Gw9vtPo9AC%cweOw3hKUk1W8pmivlpLIDpyj2<|4f4o~y zYbpML1k|DLa#RWZPF1YILBZ#{0O%!K1E;9WmznQ|ar4J@?~tPh4BR=*TATdEJqO_p zAdA#vurpUFH;q;;9!hzk;F39^mD}_B93;o`Qh&k*ZJKG)wkEk08$QJPdQYA<1K4BV z#!My^r{X81ERmZiaBQ^}%eTp`K(~EjvLjizCv-Ond9NE81uD@;#Lr@MvRNW5dH^n6 znyNYxwY;zd(nLeHh!ntYiunX`(PlsFQN)4qb#)eL{`cmf{?#)YO+EFdG4L5)1MhogXTClJ#5(0ME?K06F!CVZ>V z92iIoI1ZH%i}UQ`P1;9IpoA=L7IYV?3ieK2MnI*^!bljMnjnqCpF%O7r)k_}>UhH2 zj77RSn`O!+OR%fY7n`Qqc0i+z!W^vFcwsgzN%oQvmDOLT3ROqL3JVp< z!4ZiSQrd(!9J}Gx_nzTFFEK#!XzNaPk>%rgIQPd@?YVAJgi&%=`iSnYafpTVp-z`# zIe?`PeJmCeJD;E=1opWfHWjeSUC7Gg#l|4M*Lodph0tGe{sQBaiLQ7ipY$zO#n_l5 zHDWviu7`3h6=GkG zYkMFSoV&JZL2=B6_}%Pjq-I6tLChLeQvfMliF>PM@9Gfu5nSHEo7v|5E)SvQcwG9} zvGfNU&cR_)2EFw&%kA$scUBYZZjy5m1k7^!w?2J#*ulr)(gNHauHYppb^MXNHy9vu zd^#OI&i4o0B=04H#fs)nfPyq6lzN4R%f&y4`ho)i{a+Ldqc=@h=YoL!PhQyASpkEA z{+AaU_NHK&AgDk|A`VOdOM~4PhV3&eKJ73$#@Ft#`@)~CUjFXZps{C=)h^zcTJ=`< zj#dUd4{R~Hc+Z8ud2_FN*@CyZzSjn;x5PY7r+}_5#{tj1o!?KB4mZ1;0{0xk0KBOj zKg^J)E*zdf{_bBr*aCo;E0nLlS0R_v>X+cY-^T;+*`7y!4g(mrciX2Z`_e>kmpX%2 zB@DV;Ea{xShwn{PvG|-EerIBS4v_W+Q5g5qSF3x<1hHaX_G9R}K0%^CE_2o{O#R(5!`K)-zIdL2@0Pm>HCu>tCC zf?xhg$T?MQD`ddzCJu-?!tXZ<~cP=0e+HDB+axp*&M>wo*)UexG)Z0oGL`Xw7j zTIy=AGL&}<9`7O8iB&XR%mlm&oUdoTQ-rG+2aJn=<}cxJ?@w9R=dWhY>?-8fBgc{I%{kkRHzDpZ3a+iY&eTor5x7OwP5cl!rHrpMfhhwU!_=E*Pefj zAQt96Zf@wYSyg~X#!1Nk}(C!A5=*+W0oA&!16;mnw!bG~>7Ub=L*h|qtJ zwUH;?wNG}ncQh76=>WvJm16=_jbc1cC|7Xvt``@Cpw+EKgl4F?8DZLc`khbG@A=`sjN<&_qIac zh%Wa(;M&s;Unh^rxQQG`Aaf6Azs#8P^Y+^KK*?=pNsPkWcd`}ig74r-66Yv2eo?59 znmGn1=qBC~H#!l6pgMIsNepm71;GoI3i`(kRHU1(=o8D0>n%YMj{~&IxH-qhba;*^ zz_y%IU%b$eR<29O(u^%9v9)wsgx|XJ1M9o3j5B6nQqSo*bhVakfbD9oAYL8?lL_L# z_`)HwH#WO>cVB+id+iTqDCU!UD9T!>VqS}Aenq0s*!X&`r@9P%Y@nY2$2bR;$7D3- zvZw5(bF0xbmB2}nYa~58{|0$pP2zFE1AxtxJSr}77Z~8pF;+1i`ip_`0I8N^AgbE8 z0>9Jq6zs$x_L^69;a`{g`MGKII&2~Gv@dFgo^DlU=;-`Xv9-T>lWuusleNMc8#?Lm zN|s~yLfEkErjm1{-v0>IqFaNxFjw5#$RtVO@zn~Wvi=xsGO)&iy?)0fkJs3L04z$| zx`?7YwxFzkA6-T}c4Q!PWcXy+>Ki3!##9eLuu4Qz%?!V(a zWVk$=9We;mnicU^OU*1fvVX(+06gK8&&*c?5E+0pCwBAMXGNz(q*cr8EezLp&<~yt zE2NJO3q2?l>DFkQ4m8DPXr#Pc#mo#5>#V){a_E}<^e)K76LvJoBATUIA*OUd=SA)- zASw4Yno^3^FeO!?uGQp%QlFmjyHA?bZ*JxC*H|gCp?BpRAA-lQV3knQWS+j2V)=m@40UpS$J>T4I#@5Pm_Aw z^|*>ufRFQe$Q{j;} z8_gYpQV>HWsd{*Vc=|QXc_0IuEk5{gXv~ACEpfx|jNU-TcDKVDoKC$|*#JtKs2-Dj zHRP2KjXSN8AM_%>y*nt44cH)7_=Hcpd5ivMXUq79sXo*A2@Ks7u6m@;3a(nK2%F&F zCsu3Gn#qc11Qo*eJ~FRKSH84>i|)^KDO{M#Z~50zjw?SMP=YBk7XW)DyRk_HPK_4D z0GCZyUjt)KM=lRBgExz_W#$6D{n8|H@|@}O*8~1%5z$7N8C*};iaO9o+!4XbTh&h9_0EIsZJ6c9 zecHL=sxj8L_>*lV{qe@knETud8mm{yU8}rbtJvIM4$d)-LWuj#J7(49y;YM?mcqpW z^l-FwNaNGb^S5>myyG2!(YF@ZQ=Iy@`Yu6l>NEK*QQh>P3v-@NId|^&8B&(TvoQH; zvjnMa(kLIY^GLS8wUwR?G|=@{#W3*dDNS%>9Lc;qOd{j(WB^Vnz4%y;!qfGhOhwmW{F}ViQy{z~50L`+5O!2< zjxuq{0+bKlF<7|k6D z=0YZyG=p!eg>Opn<4Z2m6m*#m_x1>Vfo=I}&qbPt5=+|>bhyl3`7uZ)kkPxF#Jh$v zuHxF`z2Ch8ec?pHf(*jBYUjr$DDlJ`rbzf)N3+YAVQ2f-Co)Z!+r z%VgQ=oy7{kYJjqbVBBMmO}ETMB{{nH7M zzNosLhA{^c>1B0f)G7T@QG(=5n|A@YHx@%fS`>3a1v#^8+?*%F?3o_@#P3pe%$?t* z{|iH6Wm%KT2$^Np#QvfzfIa7dDOl5L*9hpAeHg&CM*q{w$T?n4a@ryLx)_)z@ z$a{fyO8aG9ODBEX-=d9;FPy6ZJuLH9^z3zfoI>)q^k229b1GZ+=n1U1?U`}uk|zp) z+x|>gWyw=|1l9P`ngh%7VjtFLCXIQ(KJR>}Dc;I=i&`vUKk+?077XCP@5=65)iu>{mvu$co@#Ok( z;}C|8LP!43%}qkQn>9Xs&nn6TQYjh$=O$iIOLxSa*cxo%&$L{FLs=Of3zGHU-V*u6 z+Ptl(;LPwfzs&Tz8pt(1_XAs&n=_>vO@!OrX|mfwOYElNQ)`>Fp3rA}z(J3tIFD4c zKePlMwJN94Q=m~-x;|3-5Q;#Hc%=?JY3R7q3; z(ymn-@`)8z%wxOzD@4By8H^NdjT+sql4s}jxRtK|UEgGkRN^?DIw9{E>5n}^r^2n?p44O?9MhpLyK=Vp!G47q&*F#S0)=4f%k4rMb zMmbyL`k%56@?TjG_}_ez$^VxaGWl9Xt=TO_8hFgw+igX;AHq!9fs9pxvLnGt6h5tT z7vII1k|LJ#UeB@CIvvF+DaU(AaBK^gwIB+Cv53J5u)?d|fDOt{;l1yGWxPU$BgP6I zHcxX$@qK<=Ofy_dx*xq*)Z_RW5htM$ij}O{Xk6A}c-oK?3$vjN88b$CfpDjD zH!~Y#xf7xm0M!Vf%xnV7)zDmNDq&c!1TmJ2kf|t^b$13zn*)&|>r)T)t%_eeM2k0r zbilvOt7aiGuz2gmT2k9&5riC_~%o0FT@neS!z&f!<=TC3krVpZnNE z1Qd`*w-b~c^`HJQnGqr=UXZIk;b!X-$lPpZh6uN`Hzf-D*{|Uo&T4u;66dw!Fm~UD zl*caXQKjeju~^e-BBUJI91&vfylaBQ&%W8YXL=zVY?%%6 z(o?AcfE|PYMEY-#>I4JW$9$G;DRyw|*97XYi@rsRK?yCyFr_Sc=5RUb;_mMCiM(F* z#C00EI6)Nw(1q>a#gEV<5`d)0eoz$vcj-z!oNFjsjUUJSN(-W}x+ z!yxYNjLo`Ht!dG}1xbgl|B~7=EF!>_d7x&45a@CvLFfD#rY8S_-oDMeLL~nT8vnVI z05Iz=&|ah_to;MPP%9#`wj9pvwk}Qr{9ougAWvfP-18EOhEgh6_pB&4u^;9Kbu**? z!fMgsg*R2@)p6m)Q5|GQB>f}WrDa%RKIB&<+-%pVeyH&&?l z#HXg;;#I^vR*_Rdrt`HArpGVKUh-=2`YSI*4G+a>Bd28iMVWf(%?%#B*G>%nf4QFJ zLl^6R0Qeoqy=ZuovFT9eFUps|F)e9hOzw-ga+pwLU z!<+`_jM<2w5T4m#zaA+Kv4yh5z#kb6vC*=J2u?v(anie-m;zhq`3EF~Tt^A7Q)Oys zM1fXX52t==)whLaVgai%-B`J+BrEDlLlfdZr6S7)7`+T+k{hAUR`sCIXDF~>Ugnxp zwNBh-E7GLK>TFPNXafy}ih2U046!^6j3ldbmn};VRy5xaU>!rbUGcFm_Iq_tC zBJ0;F$hArnddbv`ao_zF6NSE}0e4IFSea?^ai0KoJ~yn-DumQcLkOXk>WbkjZnttP zSUM#rPv(edFaRkj`1xz0F(SyHuRBXrm)YpwJXIAW_T%;S>-BTX5K9_BN+Blr!)a}a z@*?+QkQRUBqDRxxa8Gcbl$sNlL6=9GdZTvmNb}s0S<+7^IzI(;p>m2vrhK`|ngBM*z4&s)<%6??p{x@Ey`3l^>5i65es!c-4_k_m-Qf zwgwQ687r**c5zo-g@AgMvPTu|T3U$~=*ZHQdi7!gt!6Kl%MJU0&P zk4DFzdI(CIi{xy>rYciDv|LIYvbuLg=K#1f78a3kk_%E6siR>|5Xs{76C=RcF`t8k zuG;BbbT_WQD2`r{qtGWP6->n1FYEi;RosXqj&K&W9tN+$TXdJVykhfi_B^K*i zXrVW6tb9&B7#%~XQeRjl>QEzKfK~i_j6 z_&XrVgiaGXQWf%sag(ezWv5qy)q|zEMy7dg$4H8yiC31PXB8*XD`s9^%nw7CMDZm@ zvXWg7pBKYwF>P?!-(%N~-8J%!KT6S{?Aj-z54me?4gW=QOK_A%{Bm7+RX5^o$i$L& z8QD-O*U|e_Mc|lR3|xEph5}gjpZOm`AsdQ7;=|&VAD!8c5p}EuP!4=3uQl#UjeL$z@VLW@;ZmrG4NSe|^v@!$??_T-nfqKh{E>j;EF7@lRY*y?xKfUGY|4 zT2Ftn|8ll@^#g2vniHs@7p?f4nQfKYZ+=@py1FQ-mZ-P(;^{c}0s&&yziA0kMpBB@ zBO}(ds_3@@V`}cVtD)XE5W}nXJK4G_Z+Ow8Lq-))TcI8}$)~Wwz&_T7e0qtLc>L zJw9|QTQRnFzSQvE)B@0%ObqLoqAAL*OxwxUxOl#K)QBD!pt2dN&C)2k0JVm`(I!}9 zC^sRehCu1X__k9d$%`vzI{zLn%gWYh_YNO7W{3;Uwyx4t#kqT+gRnj|SH0fT zY`LB6>#dctoO~~C_9}rezy{W_R6RbGQyd*rf?6Q$y*J6$;O-8(4*;M>qFJ+ zO)EYE38OGUs+J@fZ4B&{R1+o=$U{xcn_hJO|c$r>^mT=t~E1gr5`J=Y&c0RMh3V$sVIg7j}J^35#CRZo}yzE4!wytyAozX zHA`{$1nUuo?wi}^x$L4B-&W^d0c#Xc|J3NvSMGgwCrNai&t zSqx(x4o&%xcKrvn8jLe!@;QYU0M#Zg^`T5oH}+le?eIw;rW{3{reyEa&T?ZbVrM9@ zHqPKx(XbAMS#$xOmVQ9?XTn#|ig}y&WLq~u>G`N|#yu`zy$abx4wS*jh3OP1)hQh;6YjB@83y;Fs}MX|}Qf{pDTot0z% zoHcnz^H&9wOj*CNo71&&c*8X9fw%rt15IcuuXX4ELze*>frFGH<482OY{b}A$F!V% zfafSYPtWRo_9lXuzZ|a^>?>l<>%)Hv2v{(rqtldRTp>_j<)m||jjU#{y13AV{nM>! znKiu8PtMk{VQfB-8O%LT;^e&YO!ixR=OS z0x!|TWeLTiCPVxLjj1iu^ zNbU`d-d#H@=+_*VgDUeGKDvko&{4+tL#;TP_7>D=6}Gq52xLp3s;C$sE!c1fcXlq7 zLPlFAI{LxU=5TBO#3?Tv&j9yS+W@yya6l6?@#(ijA`#g|87am>=54Izt~ZxRsN1ia zA0VRmOno6!?vst`RuvQ@$cLZ0Fuin~|o3~3-e z?|CnH$DoZ@=-0BAQpac(Zh?_$OLNHd^9*gvPF?@HUeek&7mxvw>I136DSnA!X)l+T zK-+D3Gu&3-<~~I^%BfLhW?l;YKE+Rv3{Ytq5lWJ9u359Tn)+>kM(_zQ(`h=LZyz0- zcPGGm<04f{+yiuw-%Q{!t|3Z0^Ss2SazN%dbQTkg-RI=ou3~-hdvg);ltqdQzk-Oc zj9AsY4U3;O&5MX}6CS?HOZc=ezEyWksj2LHHp1qAU^)PE%lzxFusOm4EvKhg>WNW9Uccfb&_E=Pm zKtH+Ep|v=kJececas+$w=hv@NoXPSNgFa*!v`&l{L;fW|O5I8AI0Yqn$8Zv~AQpf7 z8#tu*ZG{Q2@$PYVzpfj^r-RarGMic?cc|MQ`&Q8BsXuXR=j>EVz09sUXD8I4kT_%N z!mXg8{UdevR(!Hsm?+6vi>!c~af~8np8P7elvfwDoYROiC5A?*LLR0W!d6yFc8BU# zvoO!OX|_M*E5*3Houqu*RS0mf5+#ugM~+g+ywL(6ty-N`dSb2eAg>PMuaZ~7R4uhr zZb5sm>HWZ0F(4fDxgStuE1A3ZjF_J2s}P2-yiH z;ElWk-DZV&-e*n$J^^o0*A%KLDCC=xUYP`xnJ@e~-fKo<=&-Uf2_LT`>N8X15%)Lr zXE{msw2 z(>wC0C9pyMgWRP9;v4Hz_FiGF)-aIjZx9L?kcm@MZp{`~(~0LxosoeA`l}35PUiJf1C=fZ7a}`qhOO;rwyfe*1w-6LXLQfZO#>H<$JyYuL7-P{Us9sIwcpCq?fMvpYWMqSnfEdPz>GQKK;1@Xi*ZXm(KdmG4^Sg zo$5ht@5)8z)=!+3^<+sqRfUCY|A>#L$jhn^#{M;Ar-D?ubFJI+X@bA-;(3PAx6SGs#c( zvEMf$J4#b&{1&0#L=1u4gcFsVaTu{2TpBmMIUx!xw#ov_+k`p;(b;U zFn8IWt0e5uaxLRE8zWgWgQx>$^Dy8N*1ATaOKcFfFz2Cqyip^Q>Fl#w(hg47w%tWz z0H?V_J)`!m`FTd4JdX{EoFk$}Ztm}VJZQ0X4#IdZ9B}UFTM@^W&sYY|cBdh@eQ5Wf zBYo)6m5s#A?EPP7A7NH;Ik66>G&IT5*_nFhH~l(uopAUEDOKv{eFq7IJpkZCy6&=1 zbG?!D6bjjYiYp*vRjJ7k__)CU+4+dTMLsP2{w_-@woH7{48ywwy!uPpU9TN(uA8bt zcu@&plx5M;+ZR(?n=^)HHaNeLcl7{P?k(8!MqDBym@NkH*m__R|97}3V4H(K1Wnia z;CvthQqC37ovY_A$Z5LG6a}b0Nqo%GyLi-xGCSiZORv!0a^*kQIH6>^nUPyinD07l zznFt|io(!Ke$_h@%KN+^;8`}N<#T&2ky5|eda>C126^y&U{SX0AuO>^#YlTzQ4`ad zhcA>-HYi#}W5vwVuvZ|)%|+}X%=5pK6S~=~*gC1v@gEs4Xi?JbcLMw)8Lujr;Zr_< zmtUkA?*)VEEt&EKPit545=t)(H8$0 zRlnk2i66t5-iz<`8vxzzi(h&v0U!h4mG229TQRXE!TuNivxyN4h6B-s^-e!V8iz9< zPrI__ezXrHjSslAcgvym!zmIjMF`pZk-0UP_A~s=Do0mCWp>*3P*hn|s*4M)XwU~- zLsTKA9M-zQOaI!tA2=ep-I;Q9OBTGRdkAMmh~Rrj$z)3cZ(*TXVC z#rm<2Ql(j}#4%2+FWG4{-CJd)cO?ZUa|M*O{>b~N3hkg zZXKF7q5zp9B&2D8SVk`11&DU#8Dqfjh0Ozo>Af^X z??+zR`oo!~3E)X4DOJUmqmGmCw;6{Cn55Fv@P)35d}_OM^spa<)B3kD;d&G$f(A}S$?)c_44aPV zxRwT~Cg8BJx@WAhQem2dKZf?8<@v3!{HmB>zEs;--5yet>BjA){;07@fM=|4i4wn| zs2Pj3xFu;rDP0^Mo$C&?(dp0RS>y=O$5Q#vB*W7qLvJyTxQ0*PPDstIDeaFQy;QP~ z$%3gSs$}%a?%(I_xW7M-@<#$YKZj}V_JFsaGynnMWApXz%Qs*F^6&S{?%zxA2Lgc~ zl{Xmt`Z~XlpWU6G>(Rd>b$)O6Wdwg;{*LJb{9cW3Btw(gkbRaS5+In8P>NvSI}$P3 z@+~4>nst9b^&4FXk=fbDzww6KoHCHTH zVgYDDA(`;$L+j>?%MUC|SE51QmNt%{!6;desA)-qnSbE&;GtGJvyMdpmmraojz5t` zv22MW%g(*3Npo`!LQRza0x2u2o$y*@pWGh*G zAXW6Nmu})dms?QoY@ws!+naqg6Ffxg(go)JeVpZ2xbeNwbwJ|XroT`uomMh*225|T zmZDRv)@JO1&@ACN@K*4UE=09;#!4vuF2J@Lg-ETD)it-vub+g0bTXuZ1u}) zc1#j%g`bU@$|;s0&x84CxR#fZN8UlGg}3Z-C&}&N;Uo04?WpkHZjAWx45exq{8$r_L-@+A_ zDD+6wnw`0xbz!O_)IbLN0e+%ME0u2j)1Cu-Wi~#RI&0x;e>U!6OZMMNlWKXCaL`11muR(su=DKNkfyct$o2Omolo}h_cD;=vJ(;Y!{2Lsl= zio4F}3RH%xTArE&0T_8eswQ~kD_%^p#onnsq{ZRp@H1j7$@LDY%_*c?Lqd_r(NSr-?ali>X@(*b0>={!0cpa)7qgfOaNRvYNyFt{`*BCm` zBgmUjtKcFmVP*x$pOrya!Da=JoSP|kAll3XwPwCV?kxVZAQt@ro}?TFv%~Z4^nk0oWsuET@oMIb9wvqSq3FdS^qH*w*ely{_s}9e77dzNT;i zqRRQnT4sqx%@ zz3bd65!IyX0XFFAhYbQjUPbsQ(}CLD)DyCffXeI4RFiFzcj8t!XojIp!P__7lOD*V z>KHoaDtWxsQYI0-8kXv|MHU#VLL#)-N!KJD`Maq-ZPka8;;)e4y&rs}o?C zCG<8qv4k;DB9hj1kMfzt)q30|2WToUYJ6~(SO9#WfSj1qSi(n|x%)LHa_igf(_ODj z5JR(u5*A8b7J&C7n(+^CUeZBbROFL)Lo(-1`OvnV z*-90vUt(iCSpsi>V^*=SSIh*BdEubuj$gGLVIzVhjrWO7Ds<;KczgSiu_rzDQl)4E zv6;gFAgI4C;PK`AYW!^}^M_UY{qdD8?8sRfCds5)EriB@Kc)AKNjXzXND(7^N1Vc9 z>13m)!x3Gkbk4GOh+0*PPGzFlte%t{r=?9G@Ce2jrleW!S(+#rTryhz&R*- z{76xM29MuWava|S^f~PhWbE>Vm9!fvinASh3uqKG(`g*b$sa|^1g&RxQC}`5@?`Eg zSb_`6;wqU=be@=1G4g+A5SQkX4e%^Wua$D?71LiklPXVzCFvxd;Rkc+aEhC^ojEym z`?Rc@2W!d}J}K-Jnh6+aWL`62B+1h@57eI_+^#!&!j9((`&gAy^9E0ThS7|#+l{T#0kYd(Dq2yE(F%%u0-Ee9%wnt!AN<7WkKJz!chQ~3Qtc-3-if00=TE@7jsuG`J(xvI^5 zpsu_Y*Gp*Bb}4%sTIur&z_+qaB0G${1*ANgTza0EN$C!_|5-4VTv$zPvk;&|Q%KMY zNG^kZij^S`I$<0u?%#!jsxAUM?LuBPa|>)emXr1_GqRT*0AKz-_(>lZ%@1wh>4-sL z)aIVW-Q$o5&fA_Z-hF#of;!e*R6IXgPDe9AL24gd30;Tf9BjPbVQfnJjj1%z?@O!)i%mDtOzJ_<;<;@-bA^4K06=Y%E+cw)>q3F#aCJt zyz-Wfu`zA1XX?`fZYp_s6t8SdqcdBDi6hsPRAep`|8(H#$U0Rvx#75YdblV`FO zi1A9m9h$&(XQw!>fLtrwGuz$qO&z4rt1(jan&j}F$xY${UU96KVE4m>fwaH4VbLo& zcDPnKXx2!H^w2)2L%`);CUl>+mnS-!&%p`I9Crz^1MJ~K{nwpk7*B%z?;muJph$N`UlJ`a zdVRuWi!G}F)AZ!UMPGJ~JV`$B<5|8hrQu*C5?utN`p-XKt*=4b+HwNl`z)H~e}Axl z#Oj)!kUnyd-aZkP-|nZM7S$={PS|{YP`nw5>w5PIM)U_6emdk4n&v&3*5|u2_G-MG zy~z+n=?Pu8@(-j`$d{u#ds~TtDLA|md_5x)xYwxwY`+XApt7IJslR`;C_W<@NKwrd zNe(L~tMARiE;XUKE0oY^u4*^ae6*@kf7yIhaQnI%nXNT}~g0kKC& z$y>I6HcL1dgSC2~yOwC)V3E&h@pC{QTO$cbBgV?}Uf)fegx!sJ$p)Ptz$FUw^Udj- zM3623fjC{?|3)Q%Z!76eAZ=Qo`rDSS&VQ~gtF*1=DT!W~J~IGELa4nkymFzv7on_n zX+b7Q$R$avKBlw3R_5~mKcRO*eMqL5`!37;Me>_b@sJ85Xr@B@eW&?(CrQS*Mf#t= zy~yH85>mOl5)H-M*jGQp$CDH~bpsek&E(tesmZ_wfM1`ylYSrN;b zClk9buyC0$i%v(*e1#y#csY6BpR7|)C>A&%DIl%>_W18_&wXrvuACgvBj^eBLsA{; znQd^G?6op@OM)#l%110m@kDTP+|a%!YE)pKnKBZ)E>13}8DdZS<+y>zK)-$I;LE{B z?n6skEeG4#FuT;1$E~y84ftHvc1>iXiM_v@KLr(XKb6~i3qG>|jf;pPeA4eqy!)w?l4MpzWIE4{eJ%lKYmk_b1Ruhm9gKBgRBhdzLu zt!M8l(U3VKF5tJ!J3({2d>rhfj)i^I;mB|gnBCo~k&Rqnqeq<+uJb&dG$;Hiec>OUk=@2ht>6H( z0T6fTevrX;!pNk~4nX)W!ijK;t9<-i#ToVz99+cUT)bujF*(;NJl>=XR5_^76mP~UL)V@T*x9b2K*cS#tJD&ImQGc4k^7^KXyJd#a4&t z*N^5&l4KpG<=9?S&RsYw-~3*QRHg?!;@CJrF+0#$9bBj2G$3z5H>>3f6ugTKx+JlR zCUJD-T{4;2W3K5mMX-Gs(uWwrb;{Th@TaxWU>Q#vZx0M zS+eEK#&IRbjUl=eZ;7a%584vgYU=KP68J++O&G2?NQGq`MMA#D9DX0qQId%BW%_Ny zWd1l>TfpErCz#;QkutzJqucFG&6}vw`y^iy!E9v}hZQG;Pw4=m-+K?v-&JR&XGQqN zfbZHFT-=@FeJ7bN3c~aA-V6XV+Y5K>i0*wnoGt6rkqB?2_x^IyfV7{~tf41nyh?d>kYFy72*SKu%zP1VMo{nb_2%u0brRBygS>WD@e2w)t1+C{0zJ&QqtN z_UaUkE6LH;9{+hoZI))JZoB&Pbs8m98lKtKo4Q2mfZb82Rp8@WG`vXr?qu@F9iS|O z-KkO3r-J4EwNZtb#zWNASi0(}yGCbp-E~FC(=e5X>;juI>qo#z&Q@<49*@e|9Q@+{ zQ^lP}L!tcv03QZ}qM~S+F=%WvNV0^4H;g6u$rg>B5G7)UJQ_<(DBF-FlOe<`3+&Q?=a{d_C4Q{hM!Gth8MX3{YGUmrK44 zp*x?NfgI-1r$8EtX6vwAkxE0E!;xx4x-IWSse@uBzgxX^J!_6zjm$6q=D3VcDhHn% zbk`{JOkuK?w1DV2&wD2Ctc2bh+ef((^(ALA**^oUz#Zq&u~qHsHN4jr>Vd`H$!9~* z9tYp3DT$pu>J3tv{PR5~BzWQxJn0pIcnSvD+RV(QV_J}eSD(1wr2NG*f;JxR!`qsr zBle96qt=B08o0Lf(vZjq!&Ur+`>CBJU(2p*5U+UPb{37eB&)`@r5^#2N6d6*0%GS5 z?A-ojNdVLI=M;+dA9s!o3~^&NB=HXfr6@b1UpVKF8(cHmeYi#`3Ftfe`+-FFbA1Hm zhY)K9%FJog1#{lgb0D);4V5!F)`*+Nh}P{jwTB>RY&3iG-28;sG!}1sK#(*v=(73D z(oK~tE+NlB56^nU*vf{=gWX5K)3L#e#rfAbbj-q57;T{9S_!Q1cn2(O*o98GpCi&M zRm;=r>M*9*WX+>i$i{yr7n+F%H|p4BFIbs9lR-vFMkkKJ*__TY5e1D7mE8 zt0z5)u<*JVW9Nbw_y(fTQaZN(*=|FB`!rs!(9d)YMw7jx-`D)T`0J*7`ZPGgR^S}< zVN7w8vk|(Re4iU$EQ!wt=hW1aI;s2T>Rczf-Bn%h*=ieIj)rDF4$G>1_Lmuh8YW(P zDw0gFsJx@T`6OD;x5QB<39+7s<2B}|8(@Aamj&{HJ)$}ILEIUW6ai*)_?VWcWnj1X zN=ok{!ff<({KdrC@qG$gj7}St_$5#-TomN@#1c^wA_vbg2tbGOjy|nyRu1y&hn9Ug zp$WQO-PAbgH#9WoUy&x6LXzZ!eN5pRm$SA*{ii_7C0)!OZ0As|bllo>;|x`{;YZ&1i~6acx{aNP zVQhSTs*Rnlyxi<_zQeat-UCr*@h_S0HV6%Qm*_m>Ezd(|&FqALd1 z)A5NkXJv(RVnF)^*xd!`(N|L4l1Ewg0nm|>7u?T$5r-TDNsbF4%S>e_eshN}pB+&F zBU3z!iS}V^(;vKOy2f3@4y1*TYfXvyi5yJ7_b(^*2dRuF$uritA|$=8|GaDPaDTY% z?4i1+QRHt`_3iy`ZF#arZL9LXeA<(3lksk;aQ7Bj!l~kWV)MreJcmEeMZXHi-IBZr zM{-7Ae*hII6BuI4*?zwHf6`wR@aqtc#e-QIwLBeXRoHPG-ecFzTc3xK#^oW8;>nqO zleyO|izyG9t}kayE}nf#$~z=LYR{)hJf3F^QgBQq?E!VSSOfEv5Yq@%^xZLUX}ok0 z6G&m12>S*klneIk%YWM`HgZcSafcO)<)^Lmd%VJZ43cDnb=R*GGNvcOw}wMc{nU69 z_ZX$5N_Q_re%0nyymfeC);YxQYIQn&!-PMmgX6f{Y}kiY$S-PLd8uTz9Xs%trnmG2 z6&vKWBBnkZ(c^Jb$d!5{nh|W`2CZi6gx&3(HMW&kCH4hH5pmAX8RM)Y_8802!@|VK zW>o~v%;)r%ZUsI5X@N{%8?hd0cCy9=q-L1>{g56>P0U+QsFzZgSKXEOUBsbgDSQ}r zPCev!eW~b7q&T;{7xnx~QwZaGH#+o|Xf|bBZl9#YpbPX!99tW{PPX7Lwdvfte&;P} z4LH25d65&RZIv(g>mV!0nmq%oyBR{luoK*_$)gg`*%+MN+zoo9^@2h!5-)Jgow9I| zq+X=yl##UkvQOBTJwj?7p-!>!&7gp<=&w}O@-yK!+Gb*_g#ECzc0r*}1B$c)=(D^a zkFRP@(cA*Y)uAQ>mtc{G$@jel$w2khQ4bxQ}-6OF9$7&x1QZzl7_8p-0qzs`H3-!b3r zjA4k3r$_JuOcT^onC$ov+pcSUy%|cwYR0QmA-!kYb~^uO36>dlC}0+Y3lRw2hXD!M z>W^@wJX+>~U;x?AEZ8fZR1|90$fhv_+Vb0wrN%CyIUl=zGGv^NqMYE{+GdRet;H;i! zae-CU3RC>YZt0LroNJtgU;CSWc+__35BQnQk1PJ@qd6+E-m^bi#i9jo`Hc_{QBbJ{oRBM5>KsniPV@<;c0RRFKX> zT&2!UhRG*$H^m8b{wZo3&vu8qNm#lBpeNl)zAE>*P1`+q@4DXB#wHiICsQ1C#jLhk z002UPz+IVwht~-BUw26u2mn+H{f1?BZJED=oJCRM+mmOANQ$Aze+U{PmZJN&WkGD9 zNb!6i4p0yzf4?eF%$q$_9p)ilE(80 delta 19119 zcmY&)l8$ZL?pPf=w`23^*tTsa9ox2Tb*A6FrQ*Zfw)SDr^a9-R#cwJL|ef{-Z}4#i&_Cc_{> zPacS|4NdTUCHhLSzF1k9_zE^U_&4+OrggAer#QSGqOcXyuK6Id9XU*ijVZ4wJze}R z(tF{>TEYRHiZcR!N!>X9&Se2DgGV z9*?GO_RJh;4AIMI)&ZIf>oCCNzobd#?dHs~1BfAP)+L?XcMf>4{qj3eC1Fl3xfcPJ ze_{2GuqUiUkx%*;~T<|)W~YMn&aS)ak= z5gu_W`r{OkZ~)qPTKG~jo&$b%UpQ$QmcRy$KMxPAD=5K=E-8%XfA7ui75a`)njuqa zn#kiNy46Sb`dgw6LoP6cvrYM=)`^ZIdIfRO+}u!IQ^|n8cYV{pM&YeM>~{?@2dea- zusgMkL_|?3Rz0`m1t=5iAcjmHU1`wO1n;0WSYXB5GC5H;KFsl3dgVi49^zOF@*Ct5 zw>$&@VrS~i`mv29HUKTL?N7~}wLX>f^in<{bZb35bRzJBlto@dP1Sh|qG9lsDaS#t z2LJcn5J+u|%@iNE5u=9!Z#L)?LIdVT>+tbPd>w2qDKw`O4M+9@noVI+huojM6l{*Qrfv zs{`I5wVr$d3UpJGk3n6t-oS%Xq)1TiEqO{27ogo*brf|wiU#Oe?h=CRy>Bl;wCVs_ z%4cG!EZsHP*p{8zLR!@#ZpNsRr+!Q}z~w)II6NXDAGKHG##$cI@l--3kvoQ~KqY@P zBFtc5azcad%SV-UY?}WRXbyqo+lmX= z#p}vKvZ4lWz0pg&<^`-=G|@a(E~+3j1tfNbxrnm26QoZB>3O|8nQIn6zr_hn_Kdhs zx){II1_dxw6d>sJ&ccwv4N;;FVJ%V7(eY;5<7ilBQX=su)!D*YWf!6_$kzK2x*7X> z)5N_Q&A8ed<3*93k!kWB%P00@$9e;GyFO}C6AM*v0M1bwH3P#I6XVjlV?7{>*s^2D1sEFmCesLA36qGcw2f^3HO5 zK*(aYy4l;Q(U{G{t3X_IKX;PdUuxTKJH6k25UK;6|Ahnw8>(ibfDz~_4UTj z_Gf)$3p-s;f8(Hbt8YMi|E~v)iq6XZntM(cf0KGP0$p?|?sByKZp8#a^kFL{ zBM2XsmjOuueyb$lUcd<*z{FU(F%JRD!MTfNVPK_`SihhCi$Py#u>b8L|7Y_O z!LC2E$%26DNp#VukG8i4hx#!4=NE4dW>EMLm=K^JKUsm3(XI=_wwVR5CgjWozH5r% z*w?%5*ZWli@v3g8kFmMq)%uUIM&Fa3ITk04)UO|(aFCyaaQByMOUP~?Om!6Qf1BG0 zzGhUfr-%9BO$HJief=weTcPP(Od>({aXA!|qbL|uJv5cg{|5Cb=)Lpm?9iE0-L2O` zZ$aEjl5uSh?ep{^_N)Ti&$GnheIlzliAb%mItyE~^uh8N#5wDgOnliz~I`qKmKQRdQqIdU|(j@*>@`)2Xjz$%5H{ie!$= ze(^7#4&*yTclXbvswB8V<>@?4VHrE0@-o3;U-f{zm( zwR5ru4Nw3POuQIAXbC4fk)qLi$5({V_v@Ui^Vh?Cy!frOD|Me|9BhQN~&$Q^7h#NL4dDA(LuS zXK#4}W9%&i!PR!Qm+d=B?-ZSF;YVxl$L5d3)dhAcE|e>8Uk&I@t++f{OctJr91LQwstW=W?e$uZdw|Ea5)+`_nI|wL_ka>zSficD+8&gBR!uhSS8}&W% zk-K>uO~D;Vz;3aS!$k)`JBo;#U`yhzP{A>iXJMe_#Mw-d!5xtzazdp-fOEnZn46W80kl+$~-H_+?K@;Mc)TYgU$%78;$5ovc(;3Y+}?d@2!Z6 zDo#+Q0xHcI8jhS(giM0R07d4;87%qnC50bPplbG^19O@6AGdZ*zTx8L9Ch#nE^c%u zI=Gl@Ww}wxCAcq(H)NXQuTTu)o1Kloa6us)g$JnizfuSE2z!u2O$d ziCu&h=TVbYveJKD8(ADK1|K>6v6x**SFV9-OpSi6q2pE^Ub$z!1`b%|af#5uogruZalSrf`oS3MO1lkOjgI}hvmpWH19m%n|@ zfZI}VybT(8!Q|Q`13kK~V?Q(VvSy!x@j5g6u5TizKI^}VxbM1yj@>r#)KOiJ6O~0E z`(y5UZ+I{3*!iwnjA2Uhu0UJv2HeGJ;0HN;RL9q{X2lrLnZX#`cd#Y??n}bMj0MQo zGO#9Txk%>9ytOpocFXVgzmYL?SdVY~F>2vKZXTWxZ^HFA9_Zk}(yb4d)(nKkJP*?5 z@MSfjw_|%iCi_}--ACeN(YWfPF~59t>`9gMA8*>ntAo5K{{>vFC)muV+o;R`^cs7w zhkC4IW-zpVv)154mb2DaM_c>IMaPyJvzseRKz$$?UL3-*Y(YV5(8%?9 z-^19{N)gFSdyrzlDG^GDiU}%B(Q0KMeF_hoK@4fPdB?2G zvbTB!5wH*|4rWB9uR|G{e44v)bl@579DHqrJtnDst?m-^V?2}J6g5cqT$plu%)E5D z&6GATnnB6dnjlYXlg56LnZ>gCtFL}%qKR&_AXfle5y5Tt6BagPG=sX~o?DVT)vcat zOr#R)AVo)+Mw%$>bOcEeRtJXD+&E+T-d>|58<2DtBzscI|0(WO*psd%t}D%6Yd!;+ zSl?A-;kp7p*cQ7Y6HoU|PkoZ@_qx*U`2Zpn*YEco8c$)K&9E$sH*1LnEbkUzH4D;3 zZWk$-6LVGRcs+xdDp=w8j`S`^I`{%nA479R105bq{&svhS0{sL`?6xa_5Q;{`6L*T z3JCc~c|MSnT5|i=UDnNlKC@hjCx|bk49&Fiq&Zo5SNm8Q@)|Qx;`6DK;4-zU;pXOZ zgn5vl^R_1{E&kH^n@p}F|Kz5~Owd%7@rkIqo5GKkd1guz;#FJbFaY#tTA^vxmO7;g zeS)Q~0s;h4b%pa|wD|(MM=g%cACcjg1mIPuy2CpCID7a0-CxM~k<}FA){+VFS5{Lh z%e3WBDiIyW(43sfed&aie*Lw6!osPm0xeFZjlLTNdoq3131o%lhQNf{L{252S56MW zKa{ZbOT2YU5w|I;F<-li_yuir%Q7@2-lyBNKDR40F8j#1&Qgyi;f`I7fh&e>5b)L; zQ$yX^Ddgbe^%k?pFhO0aUQfBrSAL7|TU{^K_pg}IB-jpx;iE*2(U>$&is7=9$8^e3 zP$AbhA1wV=<7h{*xcGXy=ghb8SP5##t;<1_b2FuZf3X#mopwFPFLKn$m+#$5gWiMlF znyw(uqOjyTG5JWPTwDqiIsC(mC6(Bz$7?l}IO{@#Da)&j*0@lnqE#E&zo9);p-}@V z_d}My=7ze6s3Be|kDpR$mXTQZ6+AUW12(sMLklD9!X=cTy?rp0!}Iz^qIf;%`sLybr1OWPj1 z1$_WD^_?vg&Cb(GOr{gZs_bWJr{3=y zHLk2v@1RLNofaob`EwRWiVqVaN+_HX55l2Q?e z1lRK=?seJSy5vYU%sWRFIa3H<9t)R$`B^RpDTIq!32=_e>dA|On@<^aF*>#1E9PikCe9gLuVFyrQuijp!_F|_Hp6f zS4k+;X{4>>wNL5ku0Q5ZFD3gO>bMT9KBCLY{z$}nHId!^{0RAp{IRgXaNzrJq9SAR z=rJ+_{zPAGlco4D9ji~as!-^4R-HpV6vV)K{^7*$rPp6b*ziJ0uVHH-5oW4VNj#iJ z-vP>1{axA24t@k|_uZPd=jd_cWRlhUL5<0)Dk9khQF7iSj!-cdPFLjcW1l8K>Jm~= zbg3Jv7xsdN|ME%ErlYEw_1A9!H%k_)^pq_6r#8HITqAV28i@eL@xVzJ`V~yeb;&Zq zGDyXIBnm5jLK!=O5mFw;_{T?c0~Vl~5~$bAAoefuqZ~lfdQ&HjVbd7v7~(-4CW$1E zbCseRQW#u;QEmN_tx-rm-i=k?(l>|rVdgbhA^SpH6ah<94)NlV6R%!VO4%tbBHY+y zGNDyj`CZ?LsJTQDFJ%u;2ELyX8H-WHl4zwX>I5%BKV48#$c|%nivLnHL5lpo1bCjb z3#16h{-RcAyr@GzLS6$5opd&|{6iq4OR(#$y>Tv#2?lI%;PI%+p3~S9Hv@^TUo>Up431^Dr6Fd31X0rd6R& zD9s0govu=ECn=i7UL!u$W5C;m4+1dR+BvpJr7 zQX@Zi0^*`th0xYvLZ4!7I4*Y)ypJ72YAMRh?~BFdF~Xjw0l zpP@{`I^xm15zOh#SM1Nb$+{H%1DEmR=LT?VOCV%^(O!lXqQ1%BU=eo7@H zF~E7CLFp>3N*To>or+Fbh(sAVsA7YiM4>z(i&ER1x;I!CL=8R#zg4Ku&Bl>Vc?Z3E zzif71&7)->iU+k&SA?y4yqsIc*dRr=k4M3V9v6pMuoW4@4|{#vU##57&yIdkQKZ#D z)!%2{FQQ4HWC|{Y#pZ@-xG6J>I7mR01Kfb~Q^7mbQNr7tbLorPweQPwEVbObZa7ts za+rxPqp2W3sYG_@DYr#&qg^tp7oMgv_+I?I4cg(SiM)cDZ|+nxMnEfY&H^2`+}z7P;e$k~c?(pwxzfU$ahSg#DW%ORr^P|E~3 z80X*rAj@P>f&f#iySvAN-iYY->MkIen>pxzyRl+RWt_cz8-FdyzGCers?7S3^qYo? zTZ!(chD_U#g@N|^`A14?ooSZ)zx*keL z`00_N@7@kZt5S7rdT<}t5#^dk3QSS+6Qf{X781_}a1+{&4F98hC& zZJG7MfmBhn5b7`_SE>tmt<4j?tImq;Qi-4&2rikXL`ikH`Sc3lZ&sTl8&S`gS#%UR z->o<3TlF5yyo{M;w3O~)`o=h>X;=Pc##-wXNcZ5(0nU^dfN-ly&ZYqyT^YNU*RScd zs`d>5&N4D`oPoXaL~H?3EZ*kGD+xtdS|c^pTtkGP>=?>5B{KpHF|}|+IG(7mPQI}Q zlzycK-N68Hzmo^7*8Q?UDbuD^MJowd<{V5ysSk$F(^l^OGo}~rr8k!82@zMxqbSpwmT`Y{BF@Vnq@nkt z!eRg(Q@qYvn*!#3r7>?dArr;K@aoeC7GY;dx||RAxyk^W9xhMwb+Q*1!s@J_#ou{; zxOt`U5nfF%%&AF45*6mM7i`IsnMp)68n9mM6&OdgrS;<#n5Y(xl3f=ZknJx7=Kzi zNR3w@`}+`R^Kx+{J~2Tll#!G6cEmmj(1>!I)a~%4XX~(4ymgr!9e5%rgucndcE16F z^nY~BX!i1)-O{sWX-!0ZOI#rs%-CN3W84s8E1dk4u55VZ43Ax%IFKHY>m}y``7l?zdZBTr|ER27P^uE2 zK^&QFfTWSue?ZPYvFhX!&y1G-91v4M(rT~?VqrHsF%lKOp5pmTY-&^pjbnDAc1x#zd-`BbviWdl9 z>r?{Ni>T9hUZ|1;MNN(iW4qCAVusi%8>*iAnRKe2o!<&}9cg8pL@Sc%ss?f*-PaovVg|y&C_CO~} zQ*+f%W?Y(WHr_@NQ{gsNXx&~_Bo-?vCU_SU(*paFOyyi6`ETpadr_>o~L63IF0Sn~aX=>yN3pNd3=$w~x$UT~XR*Auyp6`5$lHPG?XtKUx zl?P?7mFpr^P#8CisUfX@Jr9?LZsdvEyvgH)=M(NCjVRD9(LY*b%0>v1O>@Yf$3}OFydkjUq%`HsCv5c;2|C=d}$Ie|5v*bH|lqB}PN!4ck=&Yl@RfOb4s&a=QcaEVAV6i1*FQ%0Er&TpW* zPnmotvJKabH41N+{`LRd|9vle=K%cB^eY3_{_`oA9v3G|A8PE@*~87BT6V_${RPJm zY^MJcR;3=vUh@fzg4?>55M87Iu!VlfI`!B5!VH+wGZDNHozoU+W7z%_l;@aLZbg|g zKku=og`oB9p({eMia?@&NIsqAnbEBtqms+XJy&hwRvSva_2Sr;-in-nX3bC#sF(3O z=`1(1BXL23Y~l=Ak&J9r7{?XmZRmpFexi7RVH~r6N^JyRr(!bQ%924uAKODb1@Ne!Ho} zJt%{Pp(xrwPuvzp(Je*=NL{$;-8WM@*d(YFC{*VCht;wtX8sUWsJ8d&()V}v6<_8-97XDHjz=v~_vm3*8Q@@StuX}1xUTnJ< zx+-Z6V>1V%IKehGYg13Y%y2{DKD!;azVDRa!%Z7UtK!)}yyZH?zqJP~RCQz(!dpWrK6+j!%ooeb$_A~=}2Axdk>`9jv7 zZJN&+q;C(m2csKcMpbZZ_7y5*2Ch0F3@0jvR%6*w;Je?jzFWu<5!X4C->|zqFD^LG z4IbmVpv&eMds}iOfR0K$Fv9wkKLP@bo^C3&j>8PifC##@d!{=%vx+0^#oZ}+xU@)* z5_i5F1->8B#WJP=oB>VX>8)aDo3sisR?T>~n?Wf6xtiqCB`>G`C(DNi3`UH*{l+nT zDP#wF0E>lXp!U21gNzUXryze}f6x=M)sV25R~wV-?wlPKaEwGIc^gDiolLIPt|0-r z_0zpMZha*$xSg?$;$`BE0e)si4)dXrpiu7#4$4 z4|o=G*7Sq`K(+2(BrFu8QleQ-vzg=K!&ODqZ#Vf>h#N&Wd|_^^fMUXMX}8o8s-Vf_ z$AGcgK|e^1jG&h7M^AoH=~+L{HOYGbZC^oX%HQw}eJf_0bUd$zCo?SzHmnWkdBVj| zD&CRZF9fahk=hcHR6ZT*Y>Xv&!#0%BCbzXf#E^kCpy=INQYV8;Z!;v-SuSxpk+DJ* zyp_;g$m+GCl}z`lc~MW#AQeYKx1@pDtx|taZc4)*D#P_WKI_bm&by=8vTkRGEFyH& zqdt=3t%Ya|9%n&4)=sQ$>qtS^ZGCQqM=}qufrY1!9)jk~C#svpV#mtLHac7z?Hrmu z=1cAd{Bq22@OM0hfU_``n#CZK4*6Y@ouDUW)5UA>B<*pwP+%F9V2 zOM9QE7QlzHGQjL&?``!bN(S?;X6-_za!g+W@RPX7>e*s8V*>ZM5I^G>K(gNYx}Lq5 zHpDu4{Eo|2oJnLT4!$M(#RZLbC?2Rg<{ z#8@CJVTbz#B4!om522O`z6hT1xF=`3UGT*a`M0BR?qS;#Nc+;2xsSCujplitJ_6iF zfb}gEh|*u5m18zj#WJVk@);tn*aMlZ8gbK-AtrU4sMXYyK3&WQyHgP{&}!LDB%MRGoHsHld>Nl&%T7L&Ja?3(orU`U{b^u z@DWWpf`s?>4cOeLU?a_jGcV7O^Sb^-Gd{6P^%h`B0LWm1sGWj7nWfGbszZ94NS@u7 zdU?)g0^%AihxqI?E*lA2NltA5n8kHu9Lc3or%Y##jW1AVP;mU_$rP@^!J2Ty+4JwZ zYHV=B>JSkW^*(*aQMa4nuXhil?W%5pDOA-sYYZ8lLU2WG z-cF~!n)fIQm6nun$|h(sbNckVI!O8)%zIvvyI#wCt77WLiTIjkZ)&!{D7w1sZ%>w4t)b_A9o@C=EpYz zE!MLJ>c;CjaR4hFj{T5cNa6fqF~_x3C0OdyJL{!ht0UmBHJ!JYjk%wraw*Qmo%uFR ziCUp3N9`*3STa+E%hUsS?IsQCp?OJDlsr7o|Gs7UDe8AQEiBgDsDJ0 zP|nQzHvEzi-_z|)S68(pbPxTiYFttn-uNxjt44gM-lu}9aXS4vP!i2ACw(YKK(C0c zrz7W)j=qFLts&HN#Ovi=F0Gj`qiL5)Q$8Az^@Rg!nZf!9mIV>`Ih4VMGGVm@4>1ec z4Pu|I8$>V#lke?k%lX#d|3fFsT2qH0)$P^2C)|kWqr?#@PX~_LMlrragXK|rD~M?+ zN6@sJmKc7GLyiT@=cfie7+b6M6ra0-y$1LpmMix4$cK@n!lph9a~MbZw-J?vZ&PZt zk{==ehaLdJxM_#@S%qU>`{Vozwb`7fqpQ|YiKQLR7Zw~ZSy}K0vqV!AIHf7m4O~r% zR+uo79PReS2E?H5*rS>gf+LW?5CB*Ge-ZXl-(#{r>EWEAE`lzqoFKOgNY7JA+d{WfWTWK<1!;%#_jbF z9S^L#|FRX4UVHGk%>t~z-#M4_xv3)t@U!Yy|C*e<7$nu&Dk^r<@zKZTSw`u8S0 zl?VFMt3-w&&>rF#i~{sdD!eF}E;OYWH->W~K{8n<2U-i#=ZpqevS~M)8rK`xi_US2 zPL`Vh0SDosTS*)~Z5B?KzSPt$Lvkuixel9GFWtdx?2$Z;_!p?34E&OzDkaKztnqO% z^xQ#CsAeLiU!qh~yqE6p4_Q#H6tN zsK>4L=#U*gsw2u!vN#C2(iNUIF`*3CRAgsFd z1rJE4i|7b$#BYx85oV@OV0f+k3=pSf*P>1^-K%^?ZHdIj4&AVAX)A)T`6H5^dO)f` zi1%VQf8LQ<*t?vC zV0GXr>#ks1epX@H-Ie5l`njysE3K7HdT5qldt`Lg3D zUXHh_N^nu(-vQ1UCxD)-t<8;GGv!3W2B;gu$hic6*^T^-4DN`}F|ZN=68?)5`^9bR z8B@chGQ1eUqRXl5?d;*c4YH5+EJphWM{>s2y-N0{2+P|eZ7;+6Zq*&!Ae&^kqq|!| z2oRw_G^`$~5XaSVo!9Xsg7Uhq`MF$5YX7dc2;7eC;7=D{yAk`m^hPf5Y4Jn(6iykUEj(-w z)jI|jOs0BgUpI5)=uF7Jy9B0ttbk3h)Z$-bjdVq-tHE2A_{EYasmjhD@!wZx#QN4| zu$YRSO~1m&yh`4p*u1M>O}RO|G(Giy`*)_QgqH~&q?r;k=2bdM<_oCp3*XV5^(AM z&EPvRww9BIG)#}lh7sAhq&=vD+m9|rL8l&#SMYRF;vA|}FkP^bE!{!qPByWqP&H=jdF0;gdR^2BLJ}oedXv<>?Z?r*h8;ZsTkGITHmvS0y1O!qWz26Hs zN*Y*YFGI!g;vM$HhM0+&_mC?tXGfGu;1T}f@R`@Q z?yk3+E#PnX`|uj@etUU=vh{hprwF|L-Rk;OeBJKe`uhg>D*oLY&W1Pag?wC4-1=Nw z>;8D&dR{;g{CmH*^%o#{Ih(rj8|NR1tCI+bh25i&2 znTExWpXSvAHAa=GcuGk!+rb|71V6xM`;MP}pYw?0*LrOA`1(Vpr5O(%qFNW(&P6 z*it(Pd-ooYdRWc(-ZSq{l)3SGO}{vr1S96rTO_Vx1WSxC{?aw+T%o8r6{)v(A84M8 z{;6r|5d|!F>bI(Uex>xLy+=gFg-OhWyiLBr+Ae8EG$EIt;cWfVgull4rBuSjkkh7& zO+LpD_dbEbPCwqqAx`9eV`wA;{RwtvIT$)Q&ls3O9)i3boImXgLLPzcl@dgiDcuIV zBHVw9Dn(2d->cR%ST=={9YbUbQ)a2u@-yGx_2{GitbCI?&w;+r^l!i%#Ti*Z>_qm( z*&EG$_%%J19WSPSx-n(tIUU`1|{-N)TL1O{y*1)Dhv69VV-Xy)1m&UpiGh zLK$RQldbgt>p;Q$YZg|cQwo&6CstyMKeX}p2FDo z6aw?H_t0u>u7QV7Oxvu;2Np={Ru4_O>osMO<@ZV-*sn8*XcpRn*Qq(0wUo*N}V%IvcHExM8SYO8J2#J<|8w2LjICy!Q1rZNIN z^u^Dh{IOqC=lH~PM|9Q|n$&aXdheU|vj(_ETGkf~2U^wmG*8h)+Qb;%FrO-*G)_a7 z*$yY!ghkl@EteQm?w4-6!9F!N*lD>o78OC^Q~pDA@%P*cFwHl6l`gT92Pzyu$JJu0 z%n7>OfZ@UBDel|2wQ*h&5}cb#hGMmh!5Y>L<&SnK^i^Z3eA(I-8k>C)j)Wyng^=k% zvE3hTINT-UXw28l(jMaK{LD4N{0NKe(<>gAux#BBM6pDsb&p$by_MCpsOH$ZJb|+u zcgNE`z!1g^>WklOg)2CBxBAqIU0-+Sge5<#E5=K z8O>J~ibKVV_r<9=<6BFF2~&);atXCMSXE#ln!S0$a#q&R;`*ds|CnMRpYy-et`S?X z!W)%F>8y3G3N=R{73)e#=ZEtA6k8%Jd}y%`2Ar1YW*ml-RQTkVB0hbBtTf+(GVx=* z_PZX{^~lpXew6p%F-wh3h?$yGiHdG}6)#co7z{0Qn27XL;h~CIEsha#I+T0xOP70-4laWI?{nzg1Q}5ws*wdKT7>v05Ecf{ zwafyKf4&yfKa+fCE4QIviI*#B{qON8C{1uu=}rPo%vyX4z*^WJ2vIr}Vzw^Hk1J$5 z(K)9#Ac*_jfKzOu%nr^s^>8PUC+qx|2hYGZc&nnb#xi_QvDFd}<#bWXl z0j^+#Yt?BY&^_z>d)->4-6+@4kv={9`=>jBgCD^UIeY}Eug!F(?- zpM&+1JzgF}9J$z3GwR_q)N;hIQ92pwN?^@WR#z!S1U6}{oj&8k?7lv55@slGEciDd zEVF{E6Rzxb-n*nyJ}HX6>r;IeRCyGdPHPLdb<>taC2c6XnfKA4#w6~wqnt%O&C8aG znAT4UfbRX+No!)zGp=L^Q&-?tlkONUG9x-UPO#LTBE1c%m;CTKFZVCydu&hmoPTYR zUii96g8cU8R4IO2FiI4HG)*<)AO62M+t8I1k0O z-7zzUjX2hgMQY=se;UuL_@O znt69p);L%RCpV*~m~Fs9SN2KDGf|1%ow(SxPEgHkT+12j&yUoR;WUeAxhhcd??eEm zB*Mi{srTu5Q?d0A2XMUa^_Bk&jUX6rmGYKV074@+OBPIRXf%v3$D1y3T)V<1xL-|= z%}S!2F)d+2k{tuDjIpa-Y6DvDsm}Jv+;k3GwzTpMUc{1nU}D`DpH0Z*7Bd#ia2qU!4cGulPpH}-bfG&O$f4=|q3fw^olrX}x*O%ABuJzQTPyUw|bFq}ntJYJZbpc1agy`>u>4Fv|MXDJuV zaWH0;{hC`cr5}g)Cj`7z#RAX@He&axy#T+px86&};_ScIsTK7AfCS{%YXh&a8xyea zAEC7G&*rZut91xv^rAGk2mD5H9A`_!XaZ3q=>jm zTF?`vIr1;7E2Vlyq78l+8kp!QxXB=irLaMK{1Yv9jZZ z4Z*jh#`BX;vL8v@tH-*E+8Jmm@}aK|@yIuBuEN!(Hmh(IqsrQ!isv&(@Q!qEzyA`V zG{$9|>;(-7lV=X*-|22@lm=2>;JRK3WXmZWD?}Cl@KERiqrFFP`D5lrBf{@s>aaBd z&$X@JIJgc>BndqKPnFirRhAK-a6rIZ@Gh3mZCBHOc;s4h18fMmaEh~q&vQu#sXoW+ z!^dwx(6xSa`Fy+=eu+p4R}1yL;}a+)p|<8bn4RKwrQb?#+VoDas&M;9juU!O%N8g- ztfis(OJd_Lwpv)s#;xcttJD|2H5Wfk@m$SJ(l-rT)BI|Ss_ZMG{Z<+=S3zmMF<&p6 zVs%h6@y%#Nj6EMH+gGut=SZ=9pFpQ8CNgtyf7Wm8x#(}r;*JciKenh&VPmpu_XcIi zQ|S2ny@uOPOiZbEycnnatyvOWaAvu8ioCCr62n&>O>{o-neS@Pue2|tnEVPdeU82N z+OHRv4Ml7Z#E^S*@?oLEVF-)Q`8hi^i}m;2#6DEvMfVlJG|OXFA`bY3E!QIcy8OK` z>*4w>Ok&zGHf#>=BlN_BfypCY>p0!Ku-5c39!^PPhX4V{a2t-4ed5vEl8=QWK^QBU zyR|!Kf4D40*8CrS-EZOTjyY7doV9ZP7P%BV3+&s-d@O#OtF=ei{M`8fZPwznZ6GOI zl&w)45SQmPgSNG6EfTQ7id^?|2Z<$}yI(iV44om#ghgGoDY{s`CA(LZgKwf<^KTKG z6;silnvWN(i6_x^TJC8TpETdlKhEHvB=A&2?`!{@{7aB7p|X!Ruz2tXG6j;x%^OxX zN#dD{hEBwoum0%Do8IE2f{}1>-1C{e1LROeH%RhvnD9hFC ze~(s#&j_RBE3Mrdp*|wilX$S&tLjH>rA?V(H=oYw<8w7<}GrXL-|H@hW^sZ3#|6n753{SZgv|Py|#yM=A-qaY5mi2~P z-}c-ogE)6iUQKMAhT0g+E2(HNOR!u}c%>l^sqxpG_3O5GUjS_XHEZXEDFhO0Ill(q z>YunSbF9)lXeX?NT!{;5ZR`xH4uJh9ahL8pmCg%E5>0O8*i8vV$j`W{+m{8R&R>#! zGkC1i7p?GxLI3o#?fAv$bIX$dGzh=7p`5+GCSyA>u}-R5>u{gOAS;UGKNF-dKlKaLe7Ez-=ISRq&fLnO!>`ozpCN5PGckI3F^h;&{oV4)?>EBAQvZ+ zBMT0cly{9Kt6)MdeDee;Y$g;;BN}Q1!p2d5cWr#qmb(*`y#lC_HV@LdcP&QDC8mo) zhA!oQM;il!rAaZX&mc`zR={fY*}e=haQr7vDwQ)ORV?1QL}zHpeB_qIVnf%^o8&8Q zQhaC4RvawHAQILsML$}iXnqvogXOC$z2)n0WiGAlxOjr25U7J?T>IbUz8LCqr__8s zl$p^^X)h`K@IT|wMrhq!gh*3u;jO95OIn*3Uy6`{%^5*$PNezmeqfI&Bbfg50vlcM z7gzG*Y9yGa1=Q!THd;?(k7@Jv^n7kU3raO3cU)~7cJUE|^ab`w-cJV*8WxCkEg4JG z&LU}6putwO_hnyMT)E?q8Exsg*toOelr9!+VyI?a>UA)y9RhyE`U;Q9ORrdHM3ekI z^v4~UqiSh`n*ZjJ0r2{gLHpu~*w|sHX1|B7-LA1SlE|9+{HO4jaV-?hK$j!y91l9i zbD3U6kUDFw!#HONW}h{r67&lolJXj&$slJS%2$3Y&%pmR%_4yzPS~FZ5v$EB>qR}) zgciJ{Go~s)9bQUKN3iP|`!5f#AWvpp)GMTi$mf9U>&+l-8*ul!3?7DZ4H5lmS~#b* z(||ykOZsEFn}ywP$mC6{Ip??BNTDtpb3nI*cWK)EXjZp-UY9&ZUX9J)2*1HJx!#sN zy|t>)@poSm8=e1E#hph(p~Z0k9}LD=hq9GMWn?XD#*%3)S+gf4gzP2j*o`qH`!YPC ziHVwIXDmZ_DwN8Sv5aRM(`1AgOAE>4k9W@N-aqcS_k7Rqp8MDR=iX19oO2!1CYJg{ z!#0e461eNl=KV;pMxbB+o_{_su?=@qxd zV`@$Z%bel;G?gQ{3jmD8c2wwnGVOnP@CR>y^erP{Pbs2g_wL12R@vVHMZgr{deLOn zR1kB=E4rX{=jzOB4H&x4Urhajug5pnlbrS$g+4?H6}9e0zC1^83s><+=VA&Gl>NHZ z#C`yjrN(Z#>g9Gc^3}~wc7?wp*?lO$k?D}U`lOSnoW#zEJ=pRe)2Li-(XH9J3FVG#2IA=dU4r0P9kH44s zrx3rtGlVAEDV^KUm2@>8xeS*q8^afc4OOa zQ{D~!BZ%o>4yR%i#)_zl-1qiXfslS)tbqA1El7KIg6}AD=%EROE}x-?xm?9;gs{b7@8=xNWX4``iXi~9E&17qV>G&io$3x&-M zV!VY6+Yi=~ZYDCz4`sgGK|y}4O()3-oLD_6tWa*zCFv$`%{MrOU@q|#53oV*3_9w9 zD;?2-va2i#UwNs7|-leS9{X?E86p_0!prh71q`)j%bX zuW@Q^r8K2|WkS?^>z!pt$w)W`pP?-4p@N3~aM-=Mpe53NbRT1R6i6Q=2~HWN(6g75 z@XlK7OWmHY&{YL-{ng*%##}=?zjtG6MPgmT@KNjxKsyUmKzfBj& ztqtB_chrtzTfQ~%UCB6Fk5V{xI<5%Hd{-RYmE_*_5H+iMChwPA!X5m=MPE%!Ag#mi z%Fq+lzB;SlDtOfFsppsq{ur+q2|QYD0x^Eq6Oyl?#b-%CYdpSdDH0&=cJqxjA>1fs z=Qp;gJ^h*8awOqZbAP$h(c`wMSTSBgvp;vWnAHcGNGGrOlUEujK%I1EaO%Aiy$*r$ z>8sAPy8#ymWbdg{HESz66!wG2NX1cP!RfZCFC%%xu5SwGSRSsw)(5j!vbX(Z4PYqc zyvU`*;|mGb%^zm_CL*yVn~1G` zrC2$A?1W$K3;1naS{a+3gy(I`k36x41&=3gR|Q$i;+D&P@rTdei2|GBX!IQgWeHhN5Sc9yIAFu(JY8zxd^Xjqpi78RDhc zOzyH>FA|^QxSZF$6~i}msx%Wo+fGk-AWaa}naam6X&Xp2D_VR)S0@zSh(`DD&Atd3 zDc5n)_o|lW=T?^~ zkJ`A*Rwve8z{^(cp|7{dnt#iR@-{_~Bv`|O;#NO<^w#xuWy6^L%g2)Pph@)(K4f4I zM2L&6C6QYOb3BZ7qF$#(niD-c)7->9k6ye%h28+8^Hpf852cG6)L|ZeDIL}yjVkD+ z*vhq;o<(h6sfIRH*Mw6A=5^B1NoNfNtJaZ*El}yP!5?<7wzr!*+m~+vUE;NK3L~+` zIeBV&WtAFqLv{EShrmlCT=FjFt2(OW)6nUo!;;z4FHh(q=oKC;GMdI8sUCIJ2-CQr z(2=rAyHKqXR&BZy;O{QzS35aFT-9dI4^cE9RHcAbYf{^`E1Aq~@+ZUc+KV#uW#7!Q z)+38K%`T)1>3Xjl;S>#_wvRMLEXKE@0`h&-)B7^pw*AueZXSbiI9D(oLoss{wBM8p zcM>ikkB~f+Q)6FY;?DueAerp}cRiypo8ihf%BQ)5X2sVruMn%k3d zwQ%svSwMP%R$=#76^~I66j20F`g1v0M3G>b<~Ex!bu(son#ky4l^1}RFmI7_Cwcth z1oq>8@5>xo7uteM*(Or}Aj*&9z`9^#M{xW}HQ|ns^?-*k4bFjlf&UMo2KR`p1wC|A z61!=%iR*`CsO+PF(vb=%Kp7KAl!0c3^X8aR31Fe`H*7UF~q`LyzPCXHxhh^ZqW5CrC-u U#)6aUa2<5e4GuP(Xgi$!3*zL%qW}N^ -- Gitee From fdef3a6f88d96598003ad0839c410a3bec002834 Mon Sep 17 00:00:00 2001 From: Daniil Kofanov Date: Thu, 18 Jul 2024 23:30:29 +0800 Subject: [PATCH 2/2] Fix codestyle Signed-off-by: Daniil Kofanov --- compiler/inline_intrinsics_ecmascript.cpp | 51 +++++++++--------- .../code_generator/compiler_base_types.cpp | 2 +- .../code_generator/compiler_base_types.h | 9 ++-- .../ir_builder/ecmascript_inst_builder.cpp | 52 ++++++++++--------- .../ir_builder/ecmascript_inst_builder.h | 6 +-- .../optimizer/optimizations/ecma_inlining.cpp | 8 +-- .../optimizations/inline_call_intrinsics.cpp | 9 ++-- .../ecmascript_inst_builder_gen.cpp.erb | 16 ++++-- 8 files changed, 80 insertions(+), 73 deletions(-) diff --git a/compiler/inline_intrinsics_ecmascript.cpp b/compiler/inline_intrinsics_ecmascript.cpp index 9b4380c19..fedfa14c4 100644 --- a/compiler/inline_intrinsics_ecmascript.cpp +++ b/compiler/inline_intrinsics_ecmascript.cpp @@ -121,8 +121,7 @@ Inst *InlineIntrinsics::CreateCompareClassWithDeopt(uint32_t pc, Inst *getClsIns auto loadClsInst = GetGraph()->CreateInstLoadImmediate(DataType::REFERENCE, pc, receiver); auto cmpInst = GetGraph()->CreateInstCompare(DataType::BOOL, pc, getClsInst, loadClsInst, DataType::REFERENCE, ConditionCode::CC_NE); - auto deoptInst = - GetGraph()->CreateInstDeoptimizeIf(DataType::NO_TYPE, pc, cmpInst, saveState, DeoptimizeType::INLINE_IC); + auto deoptInst = GetGraph()->CreateInstDeoptimizeIf(pc, cmpInst, saveState, DeoptimizeType::INLINE_IC); getClsInst->InsertAfter(deoptInst); getClsInst->InsertAfter(cmpInst); getClsInst->InsertAfter(loadClsInst); @@ -132,8 +131,8 @@ Inst *InlineIntrinsics::CreateCompareClassWithDeopt(uint32_t pc, Inst *getClsIns Inst *InsertLoadObject(Inst *input, uint32_t typeId, RuntimeInterface::MethodPtr method, uint32_t pc, RuntimeInterface::FieldPtr field, ObjectType objType, Inst *insertAfter, DataType::Type dataType) { - auto loadObject = - input->GetBasicBlock()->GetGraph()->CreateInstLoadObject(dataType, pc, input, typeId, method, field); + auto loadObject = input->GetBasicBlock()->GetGraph()->CreateInstLoadObject(dataType, pc, input, + TypeIdMixin {typeId, method}, field); loadObject->SetObjectType(objType); insertAfter->InsertAfter(loadObject); return loadObject; @@ -161,8 +160,8 @@ void InsertCheckJSArrayLength(Inst *obj, Inst *index, Inst *insertAfter, Runtime // calculate new length auto add = graph->CreateInstAdd(DataType::INT32, pc, index, graph->FindOrCreateConstant(1)); // Store new length - auto storeLength = graph->CreateInstStoreObject(DataType::INT32, pc, obj, add, TypeIdMixin::MEM_DYN_ARRAY_LENGTH_ID, - method, nullptr); + auto storeLength = graph->CreateInstStoreObject( + DataType::INT32, pc, obj, add, TypeIdMixin {TypeIdMixin::MEM_DYN_ARRAY_LENGTH_ID, method}, nullptr); storeLength->SetObjectType(ObjectType::MEM_DYN_ARRAY_LENGTH); storeBb->AppendInst(add); add->InsertAfter(storeLength); @@ -179,8 +178,9 @@ Inst *InsertMemFromFieldInlined(IntrinsicInst *intrinsic, Inst *objInst, Inst *i ObjectType::MEM_DYN_INLINED, insertAfter, DataType::ANY); return loadObject; } else { - auto storeObject = graph->CreateInstStoreObject(DataType::ANY, pc, objInst, intrinsic->GetInput(2).GetInst(), - offset, saveState->GetMethod(), nullptr, false, true); + auto storeObject = + graph->CreateInstStoreObject(DataType::ANY, pc, objInst, intrinsic->GetInput(2).GetInst(), + TypeIdMixin {offset, saveState->GetMethod()}, nullptr, false, true); storeObject->SetObjectType(ObjectType::MEM_DYN_INLINED); insertAfter->InsertAfter(storeObject); @@ -239,9 +239,9 @@ Inst *InsertChangeClassInst(IntrinsicInst *intrinsic, Inst *objInst, Inst *inser auto pc = objInst->GetPc(); auto klass = reinterpret_cast(klassAddr); auto loadClsInst = graph->CreateInstLoadImmediate(DataType::REFERENCE, pc, klass); - auto storeClass = - graph->CreateInstStoreObject(DataType::REFERENCE, pc, objInst, loadClsInst, TypeIdMixin::MEM_DYN_CLASS_ID, - intrinsic->GetSaveState()->GetMethod(), nullptr, false, true); + auto storeClass = graph->CreateInstStoreObject( + DataType::REFERENCE, pc, objInst, loadClsInst, + TypeIdMixin {TypeIdMixin::MEM_DYN_CLASS_ID, intrinsic->GetSaveState()->GetMethod()}, nullptr, false, true); storeClass->SetObjectType(ObjectType::MEM_DYN_CLASS); insertAfter->InsertAfter(storeClass); insertAfter->InsertAfter(loadClsInst); @@ -270,8 +270,7 @@ Inst *InsertPrototypeCheckInst(IntrinsicInst *intrinsic, uintptr_t protoMem, Ins auto isChange = InsertLoadObject(prototypeMarker, TypeIdMixin::MEM_DYN_CHANGE_FIELD_ID, saveState->GetMethod(), pc, nullptr, ObjectType::MEM_DYN_CHANGE_FIELD, prototypeMarker, DataType::BOOL); - auto deoptInst = - graph->CreateInstDeoptimizeIf(DataType::NO_TYPE, pc, isChange, saveState, DeoptimizeType::INLINE_IC); + auto deoptInst = graph->CreateInstDeoptimizeIf(pc, isChange, saveState, DeoptimizeType::INLINE_IC); isChange->InsertAfter(deoptInst); @@ -331,7 +330,7 @@ void InsertDeoptimizeInst(uint32_t pc, SaveStateInst *ss, BasicBlock *loadBb) ASSERT(compareInst != nullptr && compareInst->GetCc() == ConditionCode::CC_EQ); compareInst->SetCc(ConditionCode::CC_NE); - auto deoptInst = graph->CreateInstDeoptimizeIf(DataType::NO_TYPE, pc, compareInst, ss, DeoptimizeType::INLINE_IC); + auto deoptInst = graph->CreateInstDeoptimizeIf(pc, compareInst, ss, DeoptimizeType::INLINE_IC); loadBb->RemoveInst(ifInst); loadBb->AppendInst(deoptInst); @@ -498,8 +497,7 @@ void InsertCheckKeyInstructions(IntrinsicInst *intrinsic, uintptr_t keyMem) auto keyIc = graph->CreateInstLoadObjFromConst(DataType::ANY, pc, keyMem); auto cmpInst = graph->CreateInstCompare(DataType::BOOL, pc, keyIc, intrinsic->GetInput(1).GetInst(), DataType::ANY, ConditionCode::CC_NE); - auto deoptInst = - graph->CreateInstDeoptimizeIf(DataType::NO_TYPE, pc, cmpInst, saveState, DeoptimizeType::INLINE_IC); + auto deoptInst = graph->CreateInstDeoptimizeIf(pc, cmpInst, saveState, DeoptimizeType::INLINE_IC); intrinsic->InsertBefore(keyIc); intrinsic->InsertBefore(cmpInst); intrinsic->InsertBefore(deoptInst); @@ -563,8 +561,7 @@ void InlineIntrinsics::InlineObjByValueFromElements(IntrinsicInst *intrinsic) cmpInst1->InsertAfter(andInst); } // Insert deoptimize - auto deoptInst = - GetGraph()->CreateInstDeoptimizeIf(DataType::NO_TYPE, pc, deoptInput, saveState, DeoptimizeType::INLINE_IC); + auto deoptInst = GetGraph()->CreateInstDeoptimizeIf(pc, deoptInput, saveState, DeoptimizeType::INLINE_IC); deoptInput->InsertAfter(deoptInst); auto key = intrinsic->GetInput(1).GetInst(); @@ -595,8 +592,7 @@ void InlineIntrinsics::InlineObjByValueFromElements(IntrinsicInst *intrinsic) ConditionCode::CC_EQ); loadArray->InsertAfter(cmpHoleInst); - auto deoptHoleInst = - GetGraph()->CreateInstDeoptimizeIf(DataType::NO_TYPE, pc, cmpHoleInst, saveState, DeoptimizeType::HOLE); + auto deoptHoleInst = GetGraph()->CreateInstDeoptimizeIf(pc, cmpHoleInst, saveState, DeoptimizeType::HOLE); cmpHoleInst->InsertAfter(deoptHoleInst); } else { auto storeArray = GetGraph()->CreateInstStoreArray(DataType::ANY, pc, loadObject, boundsCheck, @@ -788,7 +784,7 @@ bool InlineIntrinsics::InlineLdLexDyn(IntrinsicInst *intrinsic) GetGraph()->CreateInstCompare(DataType::BOOL, pc, loadLexVar, hole, DataType::ANY, ConditionCode::CC_EQ); appender.Append(compare); - auto *deoptIf = GetGraph()->CreateInstDeoptimizeIf(DataType::NO_TYPE, pc, compare, saveState, DeoptimizeType::HOLE); + auto *deoptIf = GetGraph()->CreateInstDeoptimizeIf(pc, compare, saveState, DeoptimizeType::HOLE); appender.Append(deoptIf); InlineLdLexVarDyn(loadLexVar); @@ -852,7 +848,7 @@ bool InlineIntrinsics::InlineStLexDyn(IntrinsicInst *intrinsic) GetGraph()->CreateInstCompare(DataType::BOOL, pc, getProp, hole, DataType::ANY, ConditionCode::CC_EQ); appender.Append(compare); - auto *deoptIf = GetGraph()->CreateInstDeoptimizeIf(DataType::NO_TYPE, pc, compare, saveState, DeoptimizeType::HOLE); + auto *deoptIf = GetGraph()->CreateInstDeoptimizeIf(pc, compare, saveState, DeoptimizeType::HOLE); appender.Append(deoptIf); auto *storeLexVar = GetGraph()->CreateInstStoreArray( @@ -1013,18 +1009,19 @@ void InlineIntrinsics::InlineTryLdGlobalField(IntrinsicInst *inst, uint32_t type auto pc = inst->GetPc(); auto saveState = inst->GetSaveState(); - auto getAddress = GetGraph()->CreateInstGetGlobalVarAddress(DataType::REFERENCE, pc, inst->GetInput(2).GetInst(), - saveState, typeId, GetGraph()->GetMethod(), address); + auto getAddress = + GetGraph()->CreateInstGetGlobalVarAddress(DataType::REFERENCE, pc, inst->GetInput(2).GetInst(), saveState, + TypeIdMixin {typeId, GetGraph()->GetMethod()}, address); inst->InsertBefore(getAddress); - auto loadObject = GetGraph()->CreateInstLoadObject(DataType::ANY, pc, getAddress, TypeIdMixin::MEM_DYN_GLOBAL_ID, - GetGraph()->GetMethod(), nullptr); + auto loadObject = GetGraph()->CreateInstLoadObject( + DataType::ANY, pc, getAddress, TypeIdMixin {TypeIdMixin::MEM_DYN_GLOBAL_ID, GetGraph()->GetMethod()}, nullptr); loadObject->SetObjectType(ObjectType::MEM_DYN_GLOBAL); inst->InsertBefore(loadObject); if constexpr (NEED_GUARD) { auto cmp = GetGraph()->CreateInstCompareAnyType(pc, loadObject, AnyBaseType::ECMASCRIPT_HOLE_TYPE); - auto deopt = GetGraph()->CreateInstDeoptimizeIf(DataType::BOOL, pc, cmp, saveState, DeoptimizeType::INLINE_IC); + auto deopt = GetGraph()->CreateInstDeoptimizeIf(pc, cmp, saveState, DeoptimizeType::INLINE_IC); inst->InsertBefore(cmp); inst->InsertBefore(deopt); } diff --git a/compiler/optimizer/code_generator/compiler_base_types.cpp b/compiler/optimizer/code_generator/compiler_base_types.cpp index 1d74b7e53..bb8eba5bd 100644 --- a/compiler/optimizer/code_generator/compiler_base_types.cpp +++ b/compiler/optimizer/code_generator/compiler_base_types.cpp @@ -497,7 +497,7 @@ bool ecmascript::CastValueToAnyTypeGen(const CastValueToAnyTypeInst *cvai, Encod return false; } -bool ecmascript::ObjByIndexCheckGen(const FixedInputsInst2 *checkInst, EncodeVisitor *encV, LabelHolder::LabelId id) +bool ecmascript::ObjByIndexCheckGen(const FixedInputsInst<2> *checkInst, EncodeVisitor *encV, LabelHolder::LabelId id) { auto src = encV->GetCodegen()->ConvertRegister(checkInst->GetSrcReg(0), DataType::Type::INT64); Encoder *enc = encV->GetEncoder(); diff --git a/compiler/optimizer/code_generator/compiler_base_types.h b/compiler/optimizer/code_generator/compiler_base_types.h index d98b3e6b4..ad02339aa 100644 --- a/compiler/optimizer/code_generator/compiler_base_types.h +++ b/compiler/optimizer/code_generator/compiler_base_types.h @@ -1,5 +1,5 @@ /** - * Copyright (c) 2021-2022 Huawei Device Co., Ltd. + * Copyright (c) 2021-2024 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -26,7 +26,8 @@ class CastAnyTypeValueInst; class CastValueToAnyTypeInst; class AnyTypeCheckInst; class GetAnyTypeNameInst; -class FixedInputsInst2; +template +class FixedInputsInst; class EncodeVisitor; class HclassCheckInst; @@ -36,8 +37,8 @@ bool CompareAnyTypeGen(const CompareAnyTypeInst *cati, EncodeVisitor *encV); bool CastAnyTypeValueGen(const CastAnyTypeValueInst *cati, EncodeVisitor *encV); bool CastValueToAnyTypeGen(const CastValueToAnyTypeInst *cvai, EncodeVisitor *encV); bool AnyTypeCheckGen(AnyTypeCheckInst *checkInst, EncodeVisitor *encV); -bool ObjByIndexCheckGen(const FixedInputsInst2 *checkInst, EncodeVisitor *encV, LabelHolder::LabelId id); -bool DynamicCallCheckGen(FixedInputsInst2 *checkInst, EncodeVisitor *encV); +bool ObjByIndexCheckGen(const FixedInputsInst<2> *checkInst, EncodeVisitor *encV, LabelHolder::LabelId id); +bool DynamicCallCheckGen(FixedInputsInst<2> *checkInst, EncodeVisitor *encV); bool LoadConstantPoolGen(const Inst *inst, EncodeVisitor *encV); bool LoadLexicalEnvGen(const Inst *inst, EncodeVisitor *encV); bool GetAnyTypeNameGen(const GetAnyTypeNameInst *inst, EncodeVisitor *encV); diff --git a/compiler/optimizer/ir_builder/ecmascript_inst_builder.cpp b/compiler/optimizer/ir_builder/ecmascript_inst_builder.cpp index 7f71ee376..eec48887f 100644 --- a/compiler/optimizer/ir_builder/ecmascript_inst_builder.cpp +++ b/compiler/optimizer/ir_builder/ecmascript_inst_builder.cpp @@ -54,17 +54,20 @@ void InstBuilder::BuildEcmaFnCall(const BytecodeInstruction *bcInst, bool isRang // Check callee is heap object auto typeCheck = BuildAnyTypeCheckInst(bcPc, callee, saveState, AnyBaseType::ECMASCRIPT_HEAP_OBJECT_TYPE); + InitAnyTypeCheckInst(typeCheck); callee = typeCheck; { // Load class (it is movable object in js) auto loadClass = GetGraph()->CreateInstLoadObject( - DataType::REFERENCE, bcPc, callee, TypeIdMixin::MEM_DYN_CLASS_ID, GetGraph()->GetMethod(), nullptr); + DataType::REFERENCE, bcPc, callee, TypeIdMixin {TypeIdMixin::MEM_DYN_CLASS_ID, GetGraph()->GetMethod()}, + nullptr); loadClass->SetObjectType(ObjectType::MEM_DYN_CLASS); AddInstruction(loadClass); // Load Jshclass auto loadHclass = GetGraph()->CreateInstLoadObject( - DataType::REFERENCE, bcPc, loadClass, TypeIdMixin::MEM_DYN_HCLASS_ID, GetGraph()->GetMethod(), nullptr); + DataType::REFERENCE, bcPc, loadClass, TypeIdMixin {TypeIdMixin::MEM_DYN_HCLASS_ID, GetGraph()->GetMethod()}, + nullptr); loadHclass->SetObjectType(ObjectType::MEM_DYN_HCLASS); AddInstruction(loadHclass); @@ -221,16 +224,17 @@ void InstBuilder::BuildEcmaGetunmappedargs(const BytecodeInstruction *bcInst) namespace ark::compiler { template -void InstBuilder::BuildStGlobalVar(const BytecodeInstruction *bcInst, size_t typeId) +void InstBuilder::BuildStGlobalVar(const BytecodeInstruction *bcInst, uint32_t typeId) { auto pc = GetPc(bcInst->GetAddress()); auto saveState = CreateSaveState(Opcode::SaveState, pc); - auto getAddress = graph_->CreateInstGetGlobalVarAddress(DataType::REFERENCE, pc, GetEnvDefinition(CONST_POOL_IDX), - saveState, typeId, GetGraph()->GetMethod(), 0); + auto getAddress = + graph_->CreateInstGetGlobalVarAddress(DataType::REFERENCE, pc, GetEnvDefinition(CONST_POOL_IDX), saveState, + TypeIdMixin {typeId, GetGraph()->GetMethod()}, 0); - auto storeObject = - graph_->CreateInstStoreObject(DataType::ANY, pc, getAddress, nullptr, TypeIdMixin::MEM_DYN_GLOBAL_ID, - GetGraph()->GetMethod(), nullptr, false, true); + auto storeObject = graph_->CreateInstStoreObject( + DataType::ANY, pc, getAddress, nullptr, TypeIdMixin {TypeIdMixin::MEM_DYN_GLOBAL_ID, GetGraph()->GetMethod()}, + nullptr, false, true); storeObject->SetObjectType(ObjectType::MEM_DYN_GLOBAL); Inst *storeVal = nullptr; if constexpr (IS_ACC_READ) { @@ -246,15 +250,16 @@ void InstBuilder::BuildStGlobalVar(const BytecodeInstruction *bcInst, size_t typ } template -void InstBuilder::BuildLdGlobalVar(const BytecodeInstruction *bcInst, size_t typeId) +void InstBuilder::BuildLdGlobalVar(const BytecodeInstruction *bcInst, uint32_t typeId) { auto pc = GetPc(bcInst->GetAddress()); auto saveState = CreateSaveState(Opcode::SaveState, pc); - auto getAddress = graph_->CreateInstGetGlobalVarAddress(DataType::REFERENCE, pc, GetEnvDefinition(CONST_POOL_IDX), - saveState, typeId, GetGraph()->GetMethod(), 0); + auto getAddress = + graph_->CreateInstGetGlobalVarAddress(DataType::REFERENCE, pc, GetEnvDefinition(CONST_POOL_IDX), saveState, + TypeIdMixin {typeId, GetGraph()->GetMethod()}, 0); - auto loadObject = graph_->CreateInstLoadObject(DataType::ANY, pc, getAddress, TypeIdMixin::MEM_DYN_GLOBAL_ID, - GetGraph()->GetMethod(), nullptr); + auto loadObject = graph_->CreateInstLoadObject( + DataType::ANY, pc, getAddress, TypeIdMixin {TypeIdMixin::MEM_DYN_GLOBAL_ID, GetGraph()->GetMethod()}, nullptr); loadObject->SetObjectType(ObjectType::MEM_DYN_GLOBAL); AddInstruction(saveState); AddInstruction(getAddress); @@ -292,15 +297,12 @@ void InstBuilder::BuildLdStObjByIndex(const BytecodeInstruction *bcInst, Inst *o auto pc = GetPc(bcInst->GetAddress()); auto checkObj = graph_->CreateInstObjByIndexCheck(DataType::ANY, pc, objInst, nullptr); - auto loadObject = graph_->CreateInstLoadObject(DataType::REFERENCE, pc, checkObj, TypeIdMixin::MEM_DYN_ELEMENTS_ID, - GetGraph()->GetMethod(), nullptr); + auto loadObject = + graph_->CreateInstLoadObject(DataType::REFERENCE, pc, checkObj, + TypeIdMixin {TypeIdMixin::MEM_DYN_ELEMENTS_ID, GetGraph()->GetMethod()}, nullptr); loadObject->SetObjectType(ObjectType::MEM_DYN_ELEMENTS); - Inst *saveState = nullptr; - Inst *nullCheck = nullptr; - Inst *arrayLength = nullptr; - Inst *boundsCheck = nullptr; - BuildChecksBeforeArray(pc, loadObject, &saveState, &nullCheck, &arrayLength, &boundsCheck, false); + auto [saveState, nullCheck, arrayLength, boundsCheck] = BuildChecksBeforeArray(pc, loadObject, false); ASSERT(saveState != nullptr && nullCheck == loadObject && arrayLength != nullptr && boundsCheck != nullptr); checkObj->SetInput(1, saveState); @@ -313,7 +315,7 @@ void InstBuilder::BuildLdStObjByIndex(const BytecodeInstruction *bcInst, Inst *o auto cmpInst = graph_->CreateInstCompare( DataType::BOOL, pc, inst, graph_->FindOrCreateConstant(DataType::Any(ark::coretypes::TaggedValue::VALUE_HOLE)), DataType::ANY, ConditionCode::CC_EQ); - auto deoptInst = graph_->CreateInstDeoptimizeIf(DataType::NO_TYPE, pc, cmpInst, saveState, DeoptimizeType::HOLE); + auto deoptInst = graph_->CreateInstDeoptimizeIf(pc, cmpInst, saveState, DeoptimizeType::HOLE); AddInstruction(saveState, checkObj, loadObject, arrayLength, boundsCheck, inst, cmpInst, deoptInst); @@ -325,10 +327,10 @@ void InstBuilder::BuildLdStObjByIndex(const BytecodeInstruction *bcInst, Inst *o } } -template void InstBuilder::BuildStGlobalVar(const BytecodeInstruction *bc_inst, size_t type_id); -template void InstBuilder::BuildStGlobalVar(const BytecodeInstruction *bc_inst, size_t type_id); +template void InstBuilder::BuildStGlobalVar(const BytecodeInstruction *bc_inst, uint32_t type_id); +template void InstBuilder::BuildStGlobalVar(const BytecodeInstruction *bc_inst, uint32_t type_id); -template void InstBuilder::BuildLdGlobalVar(const BytecodeInstruction *bc_inst, size_t type_id); -template void InstBuilder::BuildLdGlobalVar(const BytecodeInstruction *bc_inst, size_t type_id); +template void InstBuilder::BuildLdGlobalVar(const BytecodeInstruction *bc_inst, uint32_t type_id); +template void InstBuilder::BuildLdGlobalVar(const BytecodeInstruction *bc_inst, uint32_t type_id); } // namespace ark::compiler diff --git a/compiler/optimizer/ir_builder/ecmascript_inst_builder.h b/compiler/optimizer/ir_builder/ecmascript_inst_builder.h index bc9349905..8ae653ba0 100644 --- a/compiler/optimizer/ir_builder/ecmascript_inst_builder.h +++ b/compiler/optimizer/ir_builder/ecmascript_inst_builder.h @@ -1,5 +1,5 @@ /** - * Copyright (c) 2021-2022 Huawei Device Co., Ltd. + * Copyright (c) 2021-2024 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -21,9 +21,9 @@ template void BuildEcmaAsIntrinsics([[maybe_unused]] const BytecodeInstruction *bcInst); void BuildEcmaFromIrtoc([[maybe_unused]] const BytecodeInstruction *bcInst); template -void BuildStGlobalVar(const BytecodeInstruction *bcInst, size_t typeId); +void BuildStGlobalVar(const BytecodeInstruction *bcInst, uint32_t typeId); template -void BuildLdGlobalVar(const BytecodeInstruction *bcInst, size_t typeId); +void BuildLdGlobalVar(const BytecodeInstruction *bcInst, uint32_t typeId); void BuildStObjByIndex(const BytecodeInstruction *bcInst, uint64_t imm); void BuildLdObjByIndex(const BytecodeInstruction *bcInst, uint64_t imm); diff --git a/compiler/optimizer/optimizations/ecma_inlining.cpp b/compiler/optimizer/optimizations/ecma_inlining.cpp index baf367307..d06aae41f 100644 --- a/compiler/optimizer/optimizations/ecma_inlining.cpp +++ b/compiler/optimizer/optimizations/ecma_inlining.cpp @@ -149,12 +149,12 @@ void EcmaInlining::BuildGuard(CallInst *callInst, RuntimeInterface::MethodPtr me auto methodCnst = graph->CreateInstLoadImmediate(DataType::POINTER, callInst->GetPc(), methodPtr, LoadImmediateInst::ObjectType::METHOD); auto loadMethod = graph->CreateInstLoadObject(DataType::POINTER, callInst->GetPc(), callInst->GetInput(0).GetInst(), - TypeIdMixin::MEM_DYN_METHOD_ID, nullptr, nullptr); + TypeIdMixin {TypeIdMixin::MEM_DYN_METHOD_ID, nullptr}, nullptr); loadMethod->SetObjectType(ObjectType::MEM_DYN_METHOD); auto cmpInst = graph->CreateInstCompare(DataType::BOOL, callInst->GetPc(), loadMethod, methodCnst, DataType::POINTER, ConditionCode::CC_NE); - auto deoptInst = graph->CreateInstDeoptimizeIf(DataType::BOOL, callInst->GetPc(), cmpInst, callInst->GetSaveState(), - DeoptimizeType::INLINE_DYN); + auto deoptInst = + graph->CreateInstDeoptimizeIf(callInst->GetPc(), cmpInst, callInst->GetSaveState(), DeoptimizeType::INLINE_DYN); callInst->InsertBefore(methodCnst); callInst->InsertBefore(loadMethod); callInst->InsertBefore(cmpInst); @@ -231,7 +231,7 @@ void EcmaInlining::CreateCompareFunctions(CallInst *callInst, RuntimeInterface:: LoadImmediateInst::ObjectType::METHOD); auto loadMethod = GetGraph()->CreateInstLoadObject(DataType::POINTER, callInst->GetPc(), callInst->GetInput(0).GetInst(), - TypeIdMixin::MEM_DYN_METHOD_ID, nullptr, nullptr); + TypeIdMixin {TypeIdMixin::MEM_DYN_METHOD_ID, nullptr}, nullptr); loadMethod->SetObjectType(ObjectType::MEM_DYN_METHOD); auto cmpInst = GetGraph()->CreateInstCompare(DataType::BOOL, callInst->GetPc(), loadMethod, methodCnst, DataType::POINTER, ConditionCode::CC_EQ); diff --git a/compiler/optimizer/optimizations/inline_call_intrinsics.cpp b/compiler/optimizer/optimizations/inline_call_intrinsics.cpp index 4e1ef2262..899ccd0fe 100644 --- a/compiler/optimizer/optimizations/inline_call_intrinsics.cpp +++ b/compiler/optimizer/optimizations/inline_call_intrinsics.cpp @@ -1,5 +1,5 @@ /** - * Copyright (c) 2021-2022 Huawei Device Co., Ltd. + * Copyright (c) 2021-2024 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -70,9 +70,9 @@ Inst *InlineCallIntrinsics::NewObjCreateConstructorCall(Inst *origCall, Inst *al {origCall->GetInput(2).GetInst(), DataType::ANY}, {allocObj, DataType::ANY}}); for (size_t i = 3; i < origCall->GetInputsCount() - 1; ++i) { - callCtor->AppendInputAndType(origCall->GetInput(i).GetInst(), origCall->GetInputType(i)); + callCtor->AppendInput(origCall->GetInput(i).GetInst(), origCall->GetInputType(i)); } - callCtor->AppendInputAndType(ss, DataType::NO_TYPE); + callCtor->AppendInput(ss, DataType::NO_TYPE); return callCtor; } @@ -281,8 +281,7 @@ void InlineCallIntrinsics::BuildGuard(Inst *inst, uintptr_t target) auto loadFunction = GetGraph()->CreateInstFunctionImmediate(DataType::ANY, pc, target); auto cmpInst = GetGraph()->CreateInstCompare(DataType::BOOL, pc, loadFunction, inst->GetInput(1).GetInst(), DataType::ANY, ConditionCode::CC_NE); - auto deoptInst = GetGraph()->CreateInstDeoptimizeIf(DataType::BOOL, pc, cmpInst, inst->GetSaveState(), - DeoptimizeType::INLINE_DYN); + auto deoptInst = GetGraph()->CreateInstDeoptimizeIf(pc, cmpInst, inst->GetSaveState(), DeoptimizeType::INLINE_DYN); auto saveState = inst->GetSaveState(); ASSERT(saveState); diff --git a/compiler/templates/ecmascript_inst_builder_gen.cpp.erb b/compiler/templates/ecmascript_inst_builder_gen.cpp.erb index a23375850..898b8d155 100644 --- a/compiler/templates/ecmascript_inst_builder_gen.cpp.erb +++ b/compiler/templates/ecmascript_inst_builder_gen.cpp.erb @@ -182,7 +182,9 @@ void InstBuilder::BuildEcmaAsIntrinsics(const BytecodeInstruction* bcInst) // NO profiling::AnyInputType allowedInputType {}; bool isTypeProfiled = false; auto operandType = GetRuntime()->GetProfilingAnyType(profile, bcInst, <%= input_index %>, &allowedInputType, &isTypeProfiled); - input = BuildAnyTypeCheckInst(GetPc(bcInst->GetAddress()), input, instSaveState, operandType, isTypeProfiled, allowedInputType); + auto anyCheck = BuildAnyTypeCheckInst(GetPc(bcInst->GetAddress()), input, instSaveState, operandType); + InitAnyTypeCheckInst(anyCheck, isTypeProfiled, allowedInputType); + input = anyCheck; if (g_options.IsCompilerEcmaReplaceIntrinsicsToDeopt() && !isTypeProfiled) { inst->SetReplaceOnDeoptimize(); } @@ -227,7 +229,9 @@ void InstBuilder::BuildEcmaAsIntrinsics(const BytecodeInstruction* bcInst) // NO auto input = GetDefinition(GetGraph()->GetRuntime()->GetMethodRegistersCount(GetMethod()) + 1); // NOLINTNEXTLINE(readability-braces-around-statements, bugprone-suspicious-semicolon) if constexpr (WITH_SPECULATIVE) { - input = BuildAnyTypeCheckInst(GetPc(bcInst->GetAddress()), input, instSaveState); + auto anyCheck = BuildAnyTypeCheckInst(GetPc(bcInst->GetAddress()), input, instSaveState); + InitAnyTypeCheckInst(anyCheck); + input = anyCheck; } inst->AppendInput(input); inst->AddInputType(DataType::ANY); @@ -241,7 +245,9 @@ void InstBuilder::BuildEcmaAsIntrinsics(const BytecodeInstruction* bcInst) // NO auto input = GetDefinition(startReg + i); // NOLINTNEXTLINE(readability-braces-around-statements, bugprone-suspicious-semicolon) if constexpr (WITH_SPECULATIVE) { - input = BuildAnyTypeCheckInst(GetPc(bcInst->GetAddress()), input, instSaveState); + auto anyCheck = BuildAnyTypeCheckInst(GetPc(bcInst->GetAddress()), input, instSaveState); + InitAnyTypeCheckInst(anyCheck); + input = anyCheck; } inst->AppendInput(input); inst->AddInputType(DataType::ANY); @@ -258,7 +264,9 @@ void InstBuilder::BuildEcmaAsIntrinsics(const BytecodeInstruction* bcInst) // NO bool isTypeProfiled = false; % idx = inst.profile.properties.include?('operand_types_2') ? 1 : 0 auto operandType = GetRuntime()->GetProfilingAnyType(profile, bcInst, <%= idx %>, &allowedInputType, &isTypeProfiled); - input = BuildAnyTypeCheckInst(GetPc(bcInst->GetAddress()), input, instSaveState, operandType, isTypeProfiled, allowedInputType); + auto anyCheck = BuildAnyTypeCheckInst(GetPc(bcInst->GetAddress()), input, instSaveState, operandType); + InitAnyTypeCheckInst(anyCheck, isTypeProfiled, allowedInputType); + input = anyCheck; if (g_options.IsCompilerEcmaReplaceIntrinsicsToDeopt() && !isTypeProfiled) { inst->SetReplaceOnDeoptimize(); } -- Gitee