Skip to content

Commit

Permalink
Merge branch 'main' into pmakhnev/fix-non-mutable-function-generation
Browse files Browse the repository at this point in the history
  • Loading branch information
i582 committed Jan 28, 2025
2 parents fcf0974 + ebc6317 commit 88f2e22
Show file tree
Hide file tree
Showing 6 changed files with 144 additions and 113 deletions.
62 changes: 62 additions & 0 deletions .github/workflows/linter.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
name: Linter check

env:
HUSKY: 0

on:
pull_request:
branches: ["**"]
workflow_dispatch:

jobs:
linter:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Setup Node.js 22
uses: actions/setup-node@v4
with:
node-version: 22
cache: "yarn"

- name: Install dependencies
run: |
corepack enable
yarn install
- name: Prepare linter
run: |
yarn gen:grammar
yarn gen:stdlib
yarn gen:func-js
yarn gen:contracts:test
- name: Check there are no errors to be fixed in package.json and no uncommitted changes
run: |
npm pkg fix && git diff --exit-code
- name: Check there are no errors reported by ESLint
run: |
yarn lint
- name: Check formatting with Prettier
run: |
yarn fmt:check
- name: Spellcheck code base
run: |
yarn spell
- name: Check there are no unused dependencies
run: |
yarn knip
- name: Check broken file references in internal documentation
uses: lycheeverse/lychee-action@v2
with:
args: "-n -s file --exclude-path node_modules --exclude-path docs './**/*.md'"
output: "/dev/stdout"
fail: true
failIfEmpty: false
29 changes: 0 additions & 29 deletions .github/workflows/tact.yml
Original file line number Diff line number Diff line change
Expand Up @@ -107,39 +107,10 @@ jobs:
yarn gen
yarn build
- name: Check there are no errors to be fixed in package.json and no uncommitted changes
run: |
npm pkg fix && git diff --exit-code
- name: Test Tact compiler
run: |
yarn coverage
- name: Check there are no errors reported by ESLint
run: |
yarn lint
- name: Check formatting with Prettier
run: |
yarn fmt:check
- name: Spellcheck code base
run: |
yarn spell
- name: Check there are no unused dependencies
run: |
yarn knip
- name: Check broken file references in internal documentation
if: runner.os == 'Linux'
uses: lycheeverse/lychee-action@v2
with:
args: "-n -s file --exclude-path node_modules --exclude-path docs './**/*.md'"
output: "/dev/stdout"
fail: true
failIfEmpty: false

- name: Show an example .pkg file on Windows
if: runner.os == 'Windows'
run: |
Expand Down
1 change: 1 addition & 0 deletions dev-docs/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Unified `StatementTry` and `StatementTryCatch` AST nodes: PR [#1418](https://github.com/tact-lang/tact/pull/1418)
- Make `msg_bounced` last parameter of `*_contract_router_internal` for better code generation: PR [#1585](https://github.com/tact-lang/tact/pull/1585)
- Inline `*_contract_init` function: PR [#1589](https://github.com/tact-lang/tact/pull/1589)
- Better error message for `unresolved name` error: PR [#1595](https://github.com/tact-lang/tact/pull/1595)

### Fixed

Expand Down
22 changes: 11 additions & 11 deletions src/types/__snapshots__/resolveStatements.spec.ts.snap
Original file line number Diff line number Diff line change
Expand Up @@ -1234,7 +1234,7 @@ exports[`resolveStatements should fail statements for usage-of-bounced-field-tha
`;

exports[`resolveStatements should fail statements for var-does-not-exist 1`] = `
"<unknown>:5:9: Unable to resolve id 'nonExistentVariable'
"<unknown>:5:9: Cannot find 'nonExistentVariable'
4 | receive() {
> 5 | nonExistentVariable = 42;
^~~~~~~~~~~~~~~~~~~
Expand All @@ -1243,7 +1243,7 @@ exports[`resolveStatements should fail statements for var-does-not-exist 1`] = `
`;

exports[`resolveStatements should fail statements for var-does-not-exist2 1`] = `
"<unknown>:13:9: Unable to resolve id 'someField', did you mean 'self.someField'?
"<unknown>:13:9: Cannot find 'someField', did you mean 'self.someField'?
12 | receive() {
> 13 | someField = 42;
^~~~~~~~~
Expand All @@ -1252,7 +1252,7 @@ exports[`resolveStatements should fail statements for var-does-not-exist2 1`] =
`;

exports[`resolveStatements should fail statements for var-does-not-exist3 1`] = `
"<unknown>:17:9: Unable to resolve id 'someField', did you mean 'self.someField'?
"<unknown>:17:9: Cannot find 'someField', did you mean 'self.someField'?
16 | receive() {
> 17 | someField = 42;
^~~~~~~~~
Expand All @@ -1261,7 +1261,7 @@ exports[`resolveStatements should fail statements for var-does-not-exist3 1`] =
`;

exports[`resolveStatements should fail statements for var-does-not-exist4 1`] = `
"<unknown>:9:9: Unable to resolve id 'someField', did you mean 'self.someField'?
"<unknown>:9:9: Cannot find 'someField', did you mean 'self.someField'?
8 | receive() {
> 9 | someField = 42;
^~~~~~~~~
Expand All @@ -1279,7 +1279,7 @@ exports[`resolveStatements should fail statements for var-scope-block-statement
`;

exports[`resolveStatements should fail statements for var-scope-block-statement-use-after-block 1`] = `
"<unknown>:7:12: Unable to resolve id 'a'
"<unknown>:7:12: Cannot find 'a'
6 | }
> 7 | return a;
^
Expand Down Expand Up @@ -1315,7 +1315,7 @@ exports[`resolveStatements should fail statements for var-scope-catch-param-does
`;

exports[`resolveStatements should fail statements for var-scope-catch-param-is-not-visible-in-try 1`] = `
"<unknown>:5:16: Unable to resolve id 'e'
"<unknown>:5:16: Cannot find 'e'
4 | try {
> 5 | return e;
^
Expand Down Expand Up @@ -1405,7 +1405,7 @@ exports[`resolveStatements should fail statements for var-scope-external-shadows
`;

exports[`resolveStatements should fail statements for var-scope-foreach-internal-var-does-not-escape 1`] = `
"<unknown>:8:12: Unable to resolve id 'x'
"<unknown>:8:12: Cannot find 'x'
7 | }
> 8 | return x;
^
Expand All @@ -1414,7 +1414,7 @@ exports[`resolveStatements should fail statements for var-scope-foreach-internal
`;

exports[`resolveStatements should fail statements for var-scope-foreach-key-does-not-escape 1`] = `
"<unknown>:8:12: Unable to resolve id 'k'
"<unknown>:8:12: Cannot find 'k'
7 | }
> 8 | return k;
^
Expand Down Expand Up @@ -1468,7 +1468,7 @@ exports[`resolveStatements should fail statements for var-scope-foreach-shadows-
`;

exports[`resolveStatements should fail statements for var-scope-foreach-val-does-not-escape 1`] = `
"<unknown>:8:12: Unable to resolve id 'v'
"<unknown>:8:12: Cannot find 'v'
7 | }
> 8 | return v;
^
Expand Down Expand Up @@ -1567,7 +1567,7 @@ exports[`resolveStatements should fail statements for var-scope-if-then-shadows-
`;

exports[`resolveStatements should fail statements for var-scope-local-catch-param-does-not-escape 1`] = `
"<unknown>:9:12: Unable to resolve id 'e'
"<unknown>:9:12: Cannot find 'e'
8 | }
> 9 | return e;
^
Expand All @@ -1576,7 +1576,7 @@ exports[`resolveStatements should fail statements for var-scope-local-catch-para
`;

exports[`resolveStatements should fail statements for var-scope-local-loop-var-does-not-escape 1`] = `
"<unknown>:9:12: Unable to resolve id 'c'
"<unknown>:9:12: Cannot find 'c'
8 | }
> 9 | return c;
^
Expand Down
7 changes: 2 additions & 5 deletions src/types/resolveExpression.ts
Original file line number Diff line number Diff line change
Expand Up @@ -884,17 +884,14 @@ export function resolveExpression(
);
if (field) {
throwCompilationError(
`Unable to resolve id '${exp.text}', did you mean 'self.${exp.text}'?`,
`Cannot find '${exp.text}', did you mean 'self.${exp.text}'?`,
exp.loc,
);
}
}
}

throwCompilationError(
`Unable to resolve id '${exp.text}'`,
exp.loc,
);
throwCompilationError(`Cannot find '${exp.text}'`, exp.loc);
} else {
const cc = getStaticConstant(ctx, exp.text);
return registerExpType(ctx, exp, cc.type);
Expand Down
136 changes: 68 additions & 68 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -1178,74 +1178,74 @@
ignore "^5.1.8"
p-map "^4.0.0"

"@swc/core-darwin-arm64@1.10.7":
version "1.10.7"
resolved "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.10.7.tgz#ff727de61faabfbdfe062747e47305ee3472298e"
integrity sha512-SI0OFg987P6hcyT0Dbng3YRISPS9uhLX1dzW4qRrfqQdb0i75lPJ2YWe9CN47HBazrIA5COuTzrD2Dc0TcVsSQ==

"@swc/core-darwin-x64@1.10.7":
version "1.10.7"
resolved "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.10.7.tgz#a276d5ee56e7c9fb03201c92c620143f8df6b52e"
integrity sha512-RFIAmWVicD/l3RzxgHW0R/G1ya/6nyMspE2cAeDcTbjHi0I5qgdhBWd6ieXOaqwEwiCd0Mot1g2VZrLGoBLsjQ==

"@swc/core-linux-arm-gnueabihf@1.10.7":
version "1.10.7"
resolved "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.10.7.tgz#8f2041b818691e7535bc275d32659e77b5f2fecc"
integrity sha512-QP8vz7yELWfop5mM5foN6KkLylVO7ZUgWSF2cA0owwIaziactB2hCPZY5QU690coJouk9KmdFsPWDnaCFUP8tg==

"@swc/core-linux-arm64-gnu@1.10.7":
version "1.10.7"
resolved "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.10.7.tgz#c185499f7db12ee95fdceb4c00fb503ed398cf1d"
integrity sha512-NgUDBGQcOeLNR+EOpmUvSDIP/F7i/OVOKxst4wOvT5FTxhnkWrW+StJGKj+DcUVSK5eWOYboSXr1y+Hlywwokw==

"@swc/core-linux-arm64-musl@1.10.7":
version "1.10.7"
resolved "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.10.7.tgz#20732c402ba44fbd708e9871aaa10df5597a3d01"
integrity sha512-gp5Un3EbeSThBIh6oac5ZArV/CsSmTKj5jNuuUAuEsML3VF9vqPO+25VuxCvsRf/z3py+xOWRaN2HY/rjMeZog==

"@swc/core-linux-x64-gnu@1.10.7":
version "1.10.7"
resolved "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.10.7.tgz#d6310152dd154c0796d1c0d99eb89fc26957c8f6"
integrity sha512-k/OxLLMl/edYqbZyUNg6/bqEHTXJT15l9WGqsl/2QaIGwWGvles8YjruQYQ9d4h/thSXLT9gd8bExU2D0N+bUA==

"@swc/core-linux-x64-musl@1.10.7":
version "1.10.7"
resolved "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.10.7.tgz#e03d4ec66f4234323887774151d1034339d0d7af"
integrity sha512-XeDoURdWt/ybYmXLCEE8aSiTOzEn0o3Dx5l9hgt0IZEmTts7HgHHVeRgzGXbR4yDo0MfRuX5nE1dYpTmCz0uyA==

"@swc/core-win32-arm64-msvc@1.10.7":
version "1.10.7"
resolved "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.10.7.tgz#f1a8c3149e2671d477af4ca39c761d6ade342d4c"
integrity sha512-nYAbi/uLS+CU0wFtBx8TquJw2uIMKBnl04LBmiVoFrsIhqSl+0MklaA9FVMGA35NcxSJfcm92Prl2W2LfSnTqQ==

"@swc/core-win32-ia32-msvc@1.10.7":
version "1.10.7"
resolved "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.10.7.tgz#133f3168fee9910566a874eb1d422dc79eb17d54"
integrity sha512-+aGAbsDsIxeLxw0IzyQLtvtAcI1ctlXVvVcXZMNXIXtTURM876yNrufRo4ngoXB3jnb1MLjIIjgXfFs/eZTUSw==

"@swc/core-win32-x64-msvc@1.10.7":
version "1.10.7"
resolved "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.10.7.tgz#84d6ed82b2f19bc00b868c9747f03ea6661d8023"
integrity sha512-TBf4clpDBjF/UUnkKrT0/th76/zwvudk5wwobiTFqDywMApHip5O0VpBgZ+4raY2TM8k5+ujoy7bfHb22zu17Q==
"@swc/core-darwin-arm64@1.10.11":
version "1.10.11"
resolved "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.10.11.tgz#37e79f35f1d0226465d4b5fe8e1c957e35661bd5"
integrity sha512-ZpgEaNcx2e5D+Pd0yZGVbpSrEDOEubn7r2JXoNBf0O85lPjUm3HDzGRfLlV/MwxRPAkwm93eLP4l7gYnc50l3g==

"@swc/core-darwin-x64@1.10.11":
version "1.10.11"
resolved "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.10.11.tgz#da0354121088d73808634efb213a264400587c8f"
integrity sha512-szObinnq2o7spXMDU5pdunmUeLrfV67Q77rV+DyojAiGJI1RSbEQotLOk+ONOLpoapwGUxOijFG4IuX1xiwQ2g==

"@swc/core-linux-arm-gnueabihf@1.10.11":
version "1.10.11"
resolved "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.10.11.tgz#4357c4f8fd1a4d53020c2e5caf048ff5ca134eec"
integrity sha512-tVE8aXQwd8JUB9fOGLawFJa76nrpvp3dvErjozMmWSKWqtoeO7HV83aOrVtc8G66cj4Vq7FjTE9pOJeV1FbKRw==

"@swc/core-linux-arm64-gnu@1.10.11":
version "1.10.11"
resolved "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.10.11.tgz#2b92ddb2500c1292a999fc617044bed8318ac0dc"
integrity sha512-geFkENU5GMEKO7FqHOaw9HVlpQEW10nICoM6ubFc0hXBv8dwRXU4vQbh9s/isLSFRftw1m4jEEWixAnXSw8bxQ==

"@swc/core-linux-arm64-musl@1.10.11":
version "1.10.11"
resolved "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.10.11.tgz#8545fd335bd5234522bc23a8a11582ff549e26eb"
integrity sha512-2mMscXe/ivq8c4tO3eQSbQDFBvagMJGlalXCspn0DgDImLYTEnt/8KHMUMGVfh0gMJTZ9q4FlGLo7mlnbx99MQ==

"@swc/core-linux-x64-gnu@1.10.11":
version "1.10.11"
resolved "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.10.11.tgz#79e94f3d59e29016c8294d401d8b35bc13d6586a"
integrity sha512-eu2apgDbC4xwsigpl6LS+iyw6a3mL6kB4I+6PZMbFF2nIb1Dh7RGnu70Ai6mMn1o80fTmRSKsCT3CKMfVdeNFg==

"@swc/core-linux-x64-musl@1.10.11":
version "1.10.11"
resolved "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.10.11.tgz#edceb8cf38ad00d82db56349b919d4482bc5ba96"
integrity sha512-0n+wPWpDigwqRay4IL2JIvAqSKCXv6nKxPig9M7+epAlEQlqX+8Oq/Ap3yHtuhjNPb7HmnqNJLCXT1Wx+BZo0w==

"@swc/core-win32-arm64-msvc@1.10.11":
version "1.10.11"
resolved "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.10.11.tgz#000e82ccd079a7eab382b9124b216e2310d7d013"
integrity sha512-7+bMSIoqcbXKosIVd314YjckDRPneA4OpG1cb3/GrkQTEDXmWT3pFBBlJf82hzJfw7b6lfv6rDVEFBX7/PJoLA==

"@swc/core-win32-ia32-msvc@1.10.11":
version "1.10.11"
resolved "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.10.11.tgz#6138bdf97a221d2194f4181bf87255063520210d"
integrity sha512-6hkLl4+3KjP/OFTryWxpW7YFN+w4R689TSPwiII4fFgsFNupyEmLWWakKfkGgV2JVA59L4Oi02elHy/O1sbgtw==

"@swc/core-win32-x64-msvc@1.10.11":
version "1.10.11"
resolved "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.10.11.tgz#d1571d46a5c0efe17ef12898bc605e301d266b2d"
integrity sha512-kKNE2BGu/La2k2WFHovenqZvGQAHRIU+rd2/6a7D6EiQ6EyimtbhUqjCCZ+N1f5fIAnvM+sMdLiQJq4jdd/oOQ==

"@swc/core@^1.10.7":
version "1.10.7"
resolved "https://registry.npmjs.org/@swc/core/-/core-1.10.7.tgz#736a5bbf0db7628cb2de3eac871e331f9a27e60b"
integrity sha512-py91kjI1jV5D5W/Q+PurBdGsdU5TFbrzamP7zSCqLdMcHkKi3rQEM5jkQcZr0MXXSJTaayLxS3MWYTBIkzPDrg==
version "1.10.11"
resolved "https://registry.npmjs.org/@swc/core/-/core-1.10.11.tgz#cbc72a940b127dd6313b5c6c5ab67a746cd39751"
integrity sha512-3zGU5y3S20cAwot9ZcsxVFNsSVaptG+dKdmAxORSE3EX7ixe1Xn5kUwLlgIsM4qrwTUWCJDLNhRS+2HLFivcDg==
dependencies:
"@swc/counter" "^0.1.3"
"@swc/types" "^0.1.17"
optionalDependencies:
"@swc/core-darwin-arm64" "1.10.7"
"@swc/core-darwin-x64" "1.10.7"
"@swc/core-linux-arm-gnueabihf" "1.10.7"
"@swc/core-linux-arm64-gnu" "1.10.7"
"@swc/core-linux-arm64-musl" "1.10.7"
"@swc/core-linux-x64-gnu" "1.10.7"
"@swc/core-linux-x64-musl" "1.10.7"
"@swc/core-win32-arm64-msvc" "1.10.7"
"@swc/core-win32-ia32-msvc" "1.10.7"
"@swc/core-win32-x64-msvc" "1.10.7"
"@swc/core-darwin-arm64" "1.10.11"
"@swc/core-darwin-x64" "1.10.11"
"@swc/core-linux-arm-gnueabihf" "1.10.11"
"@swc/core-linux-arm64-gnu" "1.10.11"
"@swc/core-linux-arm64-musl" "1.10.11"
"@swc/core-linux-x64-gnu" "1.10.11"
"@swc/core-linux-x64-musl" "1.10.11"
"@swc/core-win32-arm64-msvc" "1.10.11"
"@swc/core-win32-ia32-msvc" "1.10.11"
"@swc/core-win32-x64-msvc" "1.10.11"

"@swc/counter@^0.1.3":
version "0.1.3"
Expand Down Expand Up @@ -1459,9 +1459,9 @@
integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==

"@types/node@*", "@types/node@>=13.7.0", "@types/node@^22.5.0":
version "22.10.7"
resolved "https://registry.npmjs.org/@types/node/-/node-22.10.7.tgz#14a1ca33fd0ebdd9d63593ed8d3fbc882a6d28d7"
integrity sha512-V09KvXxFiutGp6B7XkpaDXlNadZxrzajcY50EuoLIpQ6WWYCSvf19lVIazzfIzQvhUN2HjX12spLojTnhuKlGg==
version "22.10.10"
resolved "https://registry.npmjs.org/@types/node/-/node-22.10.10.tgz#85fe89f8bf459dc57dfef1689bd5b52ad1af07e6"
integrity sha512-X47y/mPNzxviAGY5TcYPtYL8JsY3kAq2n8fMmKoRCxq/c4v4pyGNCzM2R6+M5/umG4ZfHuT+sgqDYqWc9rJ6ww==
dependencies:
undici-types "~6.20.0"

Expand Down Expand Up @@ -3460,9 +3460,9 @@ kleur@^3.0.3:
integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==

knip@^5.24.1:
version "5.42.2"
resolved "https://registry.npmjs.org/knip/-/knip-5.42.2.tgz#7f2c2078440abe7612c166b6aecedb9b690bf34f"
integrity sha512-hVtZ6V59COFz3Y0/BHrWMlPAx82EdX/xFHXbutIRSNfJFPMGmIpxLBWTg35F4XQJGwlu5uWiJf8rBYYkmlYWWQ==
version "5.43.5"
resolved "https://registry.npmjs.org/knip/-/knip-5.43.5.tgz#2d5416d730d556d3ab3f1380a7054221aad4adfa"
integrity sha512-B5cexyDF+me8EjmihxF3XASybB+T8HUzZBSZLNr9CGS8WrceMOR5Qa2qdBXwU0MxphAgH2nzLQcKsCuqXYOJUg==
dependencies:
"@nodelib/fs.walk" "3.0.1"
"@snyk/github-codeowners" "1.1.0"
Expand Down

0 comments on commit 88f2e22

Please sign in to comment.