@aster-cloud/aster-lang-ts 1.6.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +64 -0
- package/dist/scripts/aster.js +5 -12
- package/dist/scripts/aster.js.map +1 -1
- package/dist/scripts/emit-classfiles.js +3 -1
- package/dist/scripts/emit-classfiles.js.map +1 -1
- package/dist/scripts/generate-core-ir-types.d.ts +16 -0
- package/dist/scripts/generate-core-ir-types.d.ts.map +1 -0
- package/dist/scripts/generate-core-ir-types.js +116 -0
- package/dist/scripts/generate-core-ir-types.js.map +1 -0
- package/dist/scripts/generate-naming-rules.d.ts +5 -0
- package/dist/scripts/generate-naming-rules.d.ts.map +1 -0
- package/dist/scripts/generate-naming-rules.js +35 -0
- package/dist/scripts/generate-naming-rules.js.map +1 -0
- package/dist/scripts/golden.js +1 -1
- package/dist/scripts/golden.js.map +1 -1
- package/dist/src/ast/ast_visitor.d.ts +27 -27
- package/dist/src/ast/ast_visitor.d.ts.map +1 -1
- package/dist/src/ast/ast_visitor.js.map +1 -1
- package/dist/src/browser/schema.d.ts.map +1 -1
- package/dist/src/browser/schema.js +1 -3
- package/dist/src/browser/schema.js.map +1 -1
- package/dist/src/browser.d.ts +7 -0
- package/dist/src/browser.d.ts.map +1 -1
- package/dist/src/browser.js +7 -4
- package/dist/src/browser.js.map +1 -1
- package/dist/src/cli/policy-converter.js +6 -10
- package/dist/src/cli/policy-converter.js.map +1 -1
- package/dist/src/cli/utils/core-ir-file.d.ts +8 -0
- package/dist/src/cli/utils/core-ir-file.d.ts.map +1 -0
- package/dist/src/cli/utils/core-ir-file.js +29 -0
- package/dist/src/cli/utils/core-ir-file.js.map +1 -0
- package/dist/src/cnl-printer.d.ts.map +1 -1
- package/dist/src/cnl-printer.js +13 -3
- package/dist/src/cnl-printer.js.map +1 -1
- package/dist/src/compile-pipeline.d.ts.map +1 -1
- package/dist/src/compile-pipeline.js +2 -3
- package/dist/src/compile-pipeline.js.map +1 -1
- package/dist/src/config/lexicons/diagnostic-overlays.generated.d.ts.map +1 -1
- package/dist/src/config/lexicons/diagnostic-overlays.generated.js +18 -6
- package/dist/src/config/lexicons/diagnostic-overlays.generated.js.map +1 -1
- package/dist/src/config/lexicons/fallback-lexicon.d.ts +1 -1
- package/dist/src/config/lexicons/fallback-lexicon.d.ts.map +1 -1
- package/dist/src/config/lexicons/fallback-lexicon.js +1 -4
- package/dist/src/config/lexicons/fallback-lexicon.js.map +1 -1
- package/dist/src/config/lexicons/overlay-loader.d.ts +0 -13
- package/dist/src/config/lexicons/overlay-loader.d.ts.map +1 -1
- package/dist/src/config/lexicons/overlay-loader.js +0 -18
- package/dist/src/config/lexicons/overlay-loader.js.map +1 -1
- package/dist/src/config/lexicons/types.d.ts +0 -3
- package/dist/src/config/lexicons/types.d.ts.map +1 -1
- package/dist/src/config/lexicons/types.js.map +1 -1
- package/dist/src/core/canonical-decimal.d.ts +3 -0
- package/dist/src/core/canonical-decimal.d.ts.map +1 -0
- package/dist/src/core/canonical-decimal.js +19 -0
- package/dist/src/core/canonical-decimal.js.map +1 -0
- package/dist/src/core/canonical-json.d.ts +59 -0
- package/dist/src/core/canonical-json.d.ts.map +1 -0
- package/dist/src/core/canonical-json.js +250 -0
- package/dist/src/core/canonical-json.js.map +1 -0
- package/dist/src/core/core-ir-v2.generated.d.ts +807 -0
- package/dist/src/core/core-ir-v2.generated.d.ts.map +1 -0
- package/dist/src/core/core-ir-v2.generated.js +6 -0
- package/dist/src/core/core-ir-v2.generated.js.map +1 -0
- package/dist/src/core/core-ir-v2.schema.generated.d.ts +6 -0
- package/dist/src/core/core-ir-v2.schema.generated.d.ts.map +1 -0
- package/dist/src/core/core-ir-v2.schema.generated.js +2636 -0
- package/dist/src/core/core-ir-v2.schema.generated.js.map +1 -0
- package/dist/src/core/core_ir.d.ts +27 -11
- package/dist/src/core/core_ir.d.ts.map +1 -1
- package/dist/src/core/core_ir.js +118 -63
- package/dist/src/core/core_ir.js.map +1 -1
- package/dist/src/core/index.d.ts +4 -3
- package/dist/src/core/index.d.ts.map +1 -1
- package/dist/src/core/index.js +3 -2
- package/dist/src/core/index.js.map +1 -1
- package/dist/src/core/inferred_fields.d.ts +9 -11
- package/dist/src/core/inferred_fields.d.ts.map +1 -1
- package/dist/src/core/inferred_fields.js +7 -28
- package/dist/src/core/inferred_fields.js.map +1 -1
- package/dist/src/core/interpreter.js +16 -35
- package/dist/src/core/interpreter.js.map +1 -1
- package/dist/src/core/lambda-captures.d.ts +14 -0
- package/dist/src/core/lambda-captures.d.ts.map +1 -0
- package/dist/src/core/lambda-captures.js +128 -0
- package/dist/src/core/lambda-captures.js.map +1 -0
- package/dist/src/core/pretty_core.d.ts.map +1 -1
- package/dist/src/core/pretty_core.js +6 -10
- package/dist/src/core/pretty_core.js.map +1 -1
- package/dist/src/core/read-core-ir.d.ts +15 -0
- package/dist/src/core/read-core-ir.d.ts.map +1 -0
- package/dist/src/core/read-core-ir.js +69 -0
- package/dist/src/core/read-core-ir.js.map +1 -0
- package/dist/src/core/resolution-mark.d.ts +3 -4
- package/dist/src/core/resolution-mark.d.ts.map +1 -1
- package/dist/src/core/resolution-mark.js +2 -3
- package/dist/src/core/resolution-mark.js.map +1 -1
- package/dist/src/core/resolve-typed-references.d.ts.map +1 -1
- package/dist/src/core/resolve-typed-references.js +11 -27
- package/dist/src/core/resolve-typed-references.js.map +1 -1
- package/dist/src/core/serialize-core-ir.d.ts +13 -0
- package/dist/src/core/serialize-core-ir.d.ts.map +1 -0
- package/dist/src/core/serialize-core-ir.js +125 -0
- package/dist/src/core/serialize-core-ir.js.map +1 -0
- package/dist/src/core/visitor.d.ts.map +1 -1
- package/dist/src/core/visitor.js +4 -1
- package/dist/src/core/visitor.js.map +1 -1
- package/dist/src/diagnostics/error_codes.d.ts +2 -0
- package/dist/src/diagnostics/error_codes.d.ts.map +1 -1
- package/dist/src/diagnostics/error_codes.js +16 -0
- package/dist/src/diagnostics/error_codes.js.map +1 -1
- package/dist/src/effects/declared-effects.d.ts +17 -0
- package/dist/src/effects/declared-effects.d.ts.map +1 -0
- package/dist/src/effects/declared-effects.js +27 -0
- package/dist/src/effects/declared-effects.js.map +1 -0
- package/dist/src/effects/effect_inference.d.ts.map +1 -1
- package/dist/src/effects/effect_inference.js +14 -10
- package/dist/src/effects/effect_inference.js.map +1 -1
- package/dist/src/effects/effect_inference_browser.d.ts.map +1 -1
- package/dist/src/effects/effect_inference_browser.js +14 -9
- package/dist/src/effects/effect_inference_browser.js.map +1 -1
- package/dist/src/frontend/keyword-translator.d.ts.map +1 -1
- package/dist/src/frontend/keyword-translator.js +3 -0
- package/dist/src/frontend/keyword-translator.js.map +1 -1
- package/dist/src/frontend/lexer.d.ts.map +1 -1
- package/dist/src/frontend/lexer.js +7 -3
- package/dist/src/frontend/lexer.js.map +1 -1
- package/dist/src/frontend/resolve-declarations.d.ts.map +1 -1
- package/dist/src/frontend/resolve-declarations.js +3 -23
- package/dist/src/frontend/resolve-declarations.js.map +1 -1
- package/dist/src/governance/input-refs.js +5 -8
- package/dist/src/governance/input-refs.js.map +1 -1
- package/dist/src/index.d.ts +5 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/jvm/emitter.d.ts.map +1 -1
- package/dist/src/jvm/emitter.js +20 -29
- package/dist/src/jvm/emitter.js.map +1 -1
- package/dist/src/lower_to_core.d.ts +2 -19
- package/dist/src/lower_to_core.d.ts.map +1 -1
- package/dist/src/lower_to_core.js +194 -384
- package/dist/src/lower_to_core.js.map +1 -1
- package/dist/src/lsp/pii_diagnostics.d.ts.map +1 -1
- package/dist/src/lsp/pii_diagnostics.js +3 -8
- package/dist/src/lsp/pii_diagnostics.js.map +1 -1
- package/dist/src/mapping/mapping-ir.d.ts +3 -3
- package/dist/src/mapping/mapping-ir.js +3 -3
- package/dist/src/nodeid/node-id-map.d.ts +6 -15
- package/dist/src/nodeid/node-id-map.d.ts.map +1 -1
- package/dist/src/nodeid/node-id-map.js +6 -15
- package/dist/src/nodeid/node-id-map.js.map +1 -1
- package/dist/src/parser/constraint-parser.js +25 -6
- package/dist/src/parser/constraint-parser.js.map +1 -1
- package/dist/src/parser/decl-parser.d.ts.map +1 -1
- package/dist/src/parser/decl-parser.js +30 -59
- package/dist/src/parser/decl-parser.js.map +1 -1
- package/dist/src/parser/expr-stmt-parser.d.ts.map +1 -1
- package/dist/src/parser/expr-stmt-parser.js +17 -10
- package/dist/src/parser/expr-stmt-parser.js.map +1 -1
- package/dist/src/parser/field-variant-parser.d.ts.map +1 -1
- package/dist/src/parser/field-variant-parser.js +9 -3
- package/dist/src/parser/field-variant-parser.js.map +1 -1
- package/dist/src/parser/naming-rules.d.ts +19 -0
- package/dist/src/parser/naming-rules.d.ts.map +1 -0
- package/dist/src/parser/naming-rules.generated.d.ts +7 -0
- package/dist/src/parser/naming-rules.generated.d.ts.map +1 -0
- package/dist/src/parser/naming-rules.generated.js +392 -0
- package/dist/src/parser/naming-rules.generated.js.map +1 -0
- package/dist/src/parser/naming-rules.js +2 -0
- package/dist/src/parser/naming-rules.js.map +1 -0
- package/dist/src/parser/parse-issue.d.ts +2 -0
- package/dist/src/parser/parse-issue.d.ts.map +1 -1
- package/dist/src/parser/parse-issue.js +2 -0
- package/dist/src/parser/parse-issue.js.map +1 -1
- package/dist/src/parser/type-inference.d.ts +29 -70
- package/dist/src/parser/type-inference.d.ts.map +1 -1
- package/dist/src/parser/type-inference.js +82 -212
- package/dist/src/parser/type-inference.js.map +1 -1
- package/dist/src/parser/type-parser.d.ts +1 -1
- package/dist/src/parser/type-parser.d.ts.map +1 -1
- package/dist/src/parser/type-parser.js +31 -21
- package/dist/src/parser/type-parser.js.map +1 -1
- package/dist/src/parser.d.ts.map +1 -1
- package/dist/src/parser.js +2 -5
- package/dist/src/parser.js.map +1 -1
- package/dist/src/stability/stability_gate.d.ts +1 -1
- package/dist/src/stability/stability_gate.d.ts.map +1 -1
- package/dist/src/stability/stability_gate.js +2 -26
- package/dist/src/stability/stability_gate.js.map +1 -1
- package/dist/src/typecheck/async.d.ts.map +1 -1
- package/dist/src/typecheck/async.js +4 -1
- package/dist/src/typecheck/async.js.map +1 -1
- package/dist/src/typecheck/browser.d.ts.map +1 -1
- package/dist/src/typecheck/browser.js +4 -3
- package/dist/src/typecheck/browser.js.map +1 -1
- package/dist/src/typecheck/capabilities.d.ts.map +1 -1
- package/dist/src/typecheck/capabilities.js +3 -2
- package/dist/src/typecheck/capabilities.js.map +1 -1
- package/dist/src/typecheck/context.d.ts +5 -5
- package/dist/src/typecheck/context.d.ts.map +1 -1
- package/dist/src/typecheck/context.js.map +1 -1
- package/dist/src/typecheck/diagnostics.d.ts +2 -2
- package/dist/src/typecheck/diagnostics.d.ts.map +1 -1
- package/dist/src/typecheck/diagnostics.js.map +1 -1
- package/dist/src/typecheck/effects.js +18 -11
- package/dist/src/typecheck/effects.js.map +1 -1
- package/dist/src/typecheck/expression.d.ts +4 -4
- package/dist/src/typecheck/expression.d.ts.map +1 -1
- package/dist/src/typecheck/expression.js +1 -1
- package/dist/src/typecheck/expression.js.map +1 -1
- package/dist/src/typecheck/generics.d.ts +2 -2
- package/dist/src/typecheck/generics.d.ts.map +1 -1
- package/dist/src/typecheck/generics.js +23 -12
- package/dist/src/typecheck/generics.js.map +1 -1
- package/dist/src/typecheck/governance.d.ts +1 -1
- package/dist/src/typecheck/governance.d.ts.map +1 -1
- package/dist/src/typecheck/governance.js +1 -1
- package/dist/src/typecheck/governance.js.map +1 -1
- package/dist/src/typecheck/module.d.ts.map +1 -1
- package/dist/src/typecheck/module.js +7 -6
- package/dist/src/typecheck/module.js.map +1 -1
- package/dist/src/typecheck/pattern.d.ts +2 -2
- package/dist/src/typecheck/pattern.d.ts.map +1 -1
- package/dist/src/typecheck/pattern.js +12 -46
- package/dist/src/typecheck/pattern.js.map +1 -1
- package/dist/src/typecheck/pure.d.ts +19 -19
- package/dist/src/typecheck/pure.d.ts.map +1 -1
- package/dist/src/typecheck/pure.js.map +1 -1
- package/dist/src/typecheck/statement.d.ts +6 -6
- package/dist/src/typecheck/statement.d.ts.map +1 -1
- package/dist/src/typecheck/statement.js +17 -20
- package/dist/src/typecheck/statement.js.map +1 -1
- package/dist/src/typecheck/symbol_table.d.ts +2 -2
- package/dist/src/typecheck/symbol_table.d.ts.map +1 -1
- package/dist/src/typecheck/symbol_table.js.map +1 -1
- package/dist/src/typecheck/type_system.d.ts +4 -4
- package/dist/src/typecheck/type_system.d.ts.map +1 -1
- package/dist/src/typecheck/type_system.js +1 -1
- package/dist/src/typecheck/type_system.js.map +1 -1
- package/dist/src/typecheck/workflow.d.ts +3 -3
- package/dist/src/typecheck/workflow.d.ts.map +1 -1
- package/dist/src/typecheck/workflow.js.map +1 -1
- package/dist/src/typecheck-pii.d.ts.map +1 -1
- package/dist/src/typecheck-pii.js +2 -13
- package/dist/src/typecheck-pii.js.map +1 -1
- package/dist/src/types/type-inference.d.ts +1 -13
- package/dist/src/types/type-inference.d.ts.map +1 -1
- package/dist/src/types/type-inference.js +1 -2
- package/dist/src/types/type-inference.js.map +1 -1
- package/dist/src/types.d.ts +160 -172
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js.map +1 -1
- package/dist/src/version.d.ts +3 -3
- package/dist/src/version.js +3 -3
- package/dist/test/helpers/core-ir-v2.d.ts +5 -0
- package/dist/test/helpers/core-ir-v2.d.ts.map +1 -0
- package/dist/test/helpers/core-ir-v2.js +123 -0
- package/dist/test/helpers/core-ir-v2.js.map +1 -0
- package/dist/test/helpers/locales-core-ir.d.ts +7 -0
- package/dist/test/helpers/locales-core-ir.d.ts.map +1 -0
- package/dist/test/helpers/locales-core-ir.js +15 -0
- package/dist/test/helpers/locales-core-ir.js.map +1 -0
- package/dist/test/helpers/locales-type-inference.d.ts +6 -0
- package/dist/test/helpers/locales-type-inference.d.ts.map +1 -0
- package/dist/test/helpers/locales-type-inference.js +14 -0
- package/dist/test/helpers/locales-type-inference.js.map +1 -0
- package/dist/test/helpers/test-factories.d.ts +5 -5
- package/dist/test/helpers/test-factories.d.ts.map +1 -1
- package/dist/test/helpers/test-factories.js +9 -8
- package/dist/test/helpers/test-factories.js.map +1 -1
- package/dist/test/integration/compliance/compliance-smoke.test.js +1 -2
- package/dist/test/integration/compliance/compliance-smoke.test.js.map +1 -1
- package/dist/test/integration/pipeline/pipeline.test.js +1 -1
- package/dist/test/integration/pipeline/pipeline.test.js.map +1 -1
- package/dist/test/integration/vocabulary-resolution.test.js +1 -1
- package/dist/test/integration/vocabulary-resolution.test.js.map +1 -1
- package/dist/test/regression/type-checker-golden.test.js +1 -1
- package/dist/test/regression/type-checker-golden.test.js.map +1 -1
- package/dist/test/type-checker/pii-propagation.test.js +7 -6
- package/dist/test/type-checker/pii-propagation.test.js.map +1 -1
- package/dist/test/types/core-ir-v2.test-d.d.ts +28 -0
- package/dist/test/types/core-ir-v2.test-d.d.ts.map +1 -0
- package/dist/test/types/core-ir-v2.test-d.js +5 -0
- package/dist/test/types/core-ir-v2.test-d.js.map +1 -0
- package/dist/test/unit/browser/typecheck-browser-pii-failure.test.js +4 -3
- package/dist/test/unit/browser/typecheck-browser-pii-failure.test.js.map +1 -1
- package/dist/test/unit/canonicalizer/article-declaration-names.test.js +1 -1
- package/dist/test/unit/canonicalizer/article-declaration-names.test.js.map +1 -1
- package/dist/test/unit/canonicalizer/chinese-function-syntax.test.js +2 -1
- package/dist/test/unit/canonicalizer/chinese-function-syntax.test.js.map +1 -1
- package/dist/test/unit/core/canonical-json.test.d.ts +2 -0
- package/dist/test/unit/core/canonical-json.test.d.ts.map +1 -0
- package/dist/test/unit/core/canonical-json.test.js +38 -0
- package/dist/test/unit/core/canonical-json.test.js.map +1 -0
- package/dist/test/unit/core/caseless-pattern-name.test.js +6 -8
- package/dist/test/unit/core/caseless-pattern-name.test.js.map +1 -1
- package/dist/test/unit/core/core-ir-conformance.test.d.ts +2 -0
- package/dist/test/unit/core/core-ir-conformance.test.d.ts.map +1 -0
- package/dist/test/unit/core/core-ir-conformance.test.js +39 -0
- package/dist/test/unit/core/core-ir-conformance.test.js.map +1 -0
- package/dist/test/unit/core/core-ir-schema-parity.test.d.ts +2 -0
- package/dist/test/unit/core/core-ir-schema-parity.test.d.ts.map +1 -0
- package/dist/test/unit/core/core-ir-schema-parity.test.js +25 -0
- package/dist/test/unit/core/core-ir-schema-parity.test.js.map +1 -0
- package/dist/test/unit/core/core-ir-v2-outputs.test.d.ts +2 -0
- package/dist/test/unit/core/core-ir-v2-outputs.test.d.ts.map +1 -0
- package/dist/test/unit/core/core-ir-v2-outputs.test.js +128 -0
- package/dist/test/unit/core/core-ir-v2-outputs.test.js.map +1 -0
- package/dist/test/unit/core/read-core-ir.test.d.ts +2 -0
- package/dist/test/unit/core/read-core-ir.test.d.ts.map +1 -0
- package/dist/test/unit/core/read-core-ir.test.js +129 -0
- package/dist/test/unit/core/read-core-ir.test.js.map +1 -0
- package/dist/test/unit/core/resolve-typed-references.test.js +22 -18
- package/dist/test/unit/core/resolve-typed-references.test.js.map +1 -1
- package/dist/test/unit/diagnostics/lowering-diagnostics-parity.test.js +5 -5
- package/dist/test/unit/diagnostics/lowering-diagnostics-parity.test.js.map +1 -1
- package/dist/test/unit/diagnostics/parse-diagnostics-parity.test.js +3 -2
- package/dist/test/unit/diagnostics/parse-diagnostics-parity.test.js.map +1 -1
- package/dist/test/unit/effect/effect-caps-explicit-only.test.d.ts +2 -0
- package/dist/test/unit/effect/effect-caps-explicit-only.test.d.ts.map +1 -0
- package/dist/test/unit/effect/effect-caps-explicit-only.test.js +73 -0
- package/dist/test/unit/effect/effect-caps-explicit-only.test.js.map +1 -0
- package/dist/test/unit/effect/effect-inference.test.js +17 -13
- package/dist/test/unit/effect/effect-inference.test.js.map +1 -1
- package/dist/test/unit/emitter/emitter.test.js +47 -46
- package/dist/test/unit/emitter/emitter.test.js.map +1 -1
- package/dist/test/unit/formatter-corpus-roundtrip.test.js +5 -1
- package/dist/test/unit/formatter-corpus-roundtrip.test.js.map +1 -1
- package/dist/test/unit/formatter-roundtrip.test.js +5 -4
- package/dist/test/unit/formatter-roundtrip.test.js.map +1 -1
- package/dist/test/unit/frontend/resolve-declarations.test.js +13 -14
- package/dist/test/unit/frontend/resolve-declarations.test.js.map +1 -1
- package/dist/test/unit/governance/governance-check.test.js +1 -1
- package/dist/test/unit/governance/governance-check.test.js.map +1 -1
- package/dist/test/unit/governance/input-refs-parity.test.js +1 -1
- package/dist/test/unit/governance/input-refs-parity.test.js.map +1 -1
- package/dist/test/unit/governance/input-refs.test.js +2 -2
- package/dist/test/unit/governance/input-refs.test.js.map +1 -1
- package/dist/test/unit/governance/no-profile-ir-unchanged.test.js +6 -6
- package/dist/test/unit/governance/no-profile-ir-unchanged.test.js.map +1 -1
- package/dist/test/unit/interpreter/interpreter.test.js +23 -21
- package/dist/test/unit/interpreter/interpreter.test.js.map +1 -1
- package/dist/test/unit/interpreter/scope-writeback.test.js +28 -27
- package/dist/test/unit/interpreter/scope-writeback.test.js.map +1 -1
- package/dist/test/unit/keyword-aliases.test.js +1 -1
- package/dist/test/unit/lambda-capture-parity.test.js +43 -14
- package/dist/test/unit/lambda-capture-parity.test.js.map +1 -1
- package/dist/test/unit/lexicons/fallback-lexicon.test.d.ts +1 -1
- package/dist/test/unit/lexicons/fallback-lexicon.test.js +2 -4
- package/dist/test/unit/lexicons/fallback-lexicon.test.js.map +1 -1
- package/dist/test/unit/lowering/core-ir-v2.test.d.ts +2 -0
- package/dist/test/unit/lowering/core-ir-v2.test.d.ts.map +1 -0
- package/dist/test/unit/lowering/core-ir-v2.test.js +253 -0
- package/dist/test/unit/lowering/core-ir-v2.test.js.map +1 -0
- package/dist/test/unit/lowering/lowering.test.js +19 -14
- package/dist/test/unit/lowering/lowering.test.js.map +1 -1
- package/dist/test/unit/lsp/pii-diagnostics.test.js +33 -30
- package/dist/test/unit/lsp/pii-diagnostics.test.js.map +1 -1
- package/dist/test/unit/lsp/utils.test.js +5 -4
- package/dist/test/unit/lsp/utils.test.js.map +1 -1
- package/dist/test/unit/parser/effect-unknown-name.test.js +7 -7
- package/dist/test/unit/parser/effect-unknown-name.test.js.map +1 -1
- package/dist/test/unit/parser/entry-annotations.test.js +2 -1
- package/dist/test/unit/parser/entry-annotations.test.js.map +1 -1
- package/dist/test/unit/parser/func-type.test.js +3 -3
- package/dist/test/unit/parser/func-type.test.js.map +1 -1
- package/dist/test/unit/parser/governance-sugar.test.js +4 -4
- package/dist/test/unit/parser/governance-sugar.test.js.map +1 -1
- package/dist/test/unit/parser/inferred-type-anchor.test.d.ts +2 -0
- package/dist/test/unit/parser/inferred-type-anchor.test.d.ts.map +1 -0
- package/dist/test/unit/parser/inferred-type-anchor.test.js +83 -0
- package/dist/test/unit/parser/inferred-type-anchor.test.js.map +1 -0
- package/dist/test/unit/parser/naming-rules-parity.test.d.ts +2 -0
- package/dist/test/unit/parser/naming-rules-parity.test.d.ts.map +1 -0
- package/dist/test/unit/parser/naming-rules-parity.test.js +26 -0
- package/dist/test/unit/parser/naming-rules-parity.test.js.map +1 -0
- package/dist/test/unit/parser/parser.test.js +11 -32
- package/dist/test/unit/parser/parser.test.js.map +1 -1
- package/dist/test/unit/parser/type-inference-vectors.test.d.ts +2 -0
- package/dist/test/unit/parser/type-inference-vectors.test.d.ts.map +1 -0
- package/dist/test/unit/parser/type-inference-vectors.test.js +40 -0
- package/dist/test/unit/parser/type-inference-vectors.test.js.map +1 -0
- package/dist/test/unit/parser/type-inference.test.d.ts +2 -1
- package/dist/test/unit/parser/type-inference.test.d.ts.map +1 -1
- package/dist/test/unit/parser/type-inference.test.js +93 -159
- package/dist/test/unit/parser/type-inference.test.js.map +1 -1
- package/dist/test/unit/regex-guard.test.js +6 -6
- package/dist/test/unit/regex-guard.test.js.map +1 -1
- package/dist/test/unit/rule-call-checks.test.js +2 -1
- package/dist/test/unit/rule-call-checks.test.js.map +1 -1
- package/dist/test/unit/typecheck/async-discipline-extended.test.js +11 -10
- package/dist/test/unit/typecheck/async-discipline-extended.test.js.map +1 -1
- package/dist/test/unit/typecheck/effect-prefix-injection.test.js +3 -2
- package/dist/test/unit/typecheck/effect-prefix-injection.test.js.map +1 -1
- package/dist/test/unit/typecheck/function-return-inference.test.js +33 -32
- package/dist/test/unit/typecheck/function-return-inference.test.js.map +1 -1
- package/dist/test/unit/typecheck/pii-cross-runtime-conformance.test.js +5 -4
- package/dist/test/unit/typecheck/pii-cross-runtime-conformance.test.js.map +1 -1
- package/dist/test/unit/typecheck/regression-fixes.test.js +110 -112
- package/dist/test/unit/typecheck/regression-fixes.test.js.map +1 -1
- package/dist/test/unit/typecheck/symbol-table.test.js +3 -2
- package/dist/test/unit/typecheck/symbol-table.test.js.map +1 -1
- package/dist/test/unit/typecheck/type-system-extended.test.js +6 -5
- package/dist/test/unit/typecheck/type-system-extended.test.js.map +1 -1
- package/dist/test/unit/typecheck/type-system.test.js +20 -19
- package/dist/test/unit/typecheck/type-system.test.js.map +1 -1
- package/dist/test/unit/typecheck/typecheck-advanced.test.js +19 -18
- package/dist/test/unit/typecheck/typecheck-advanced.test.js.map +1 -1
- package/dist/test/unit/typecheck/untyped-field-dynamic.test.js +6 -4
- package/dist/test/unit/typecheck/untyped-field-dynamic.test.js.map +1 -1
- package/dist/test/unit/version.test.js +3 -3
- package/package.json +4 -3
- package/dist/src/config/lexicons/type-inference-rules.d.ts +0 -19
- package/dist/src/config/lexicons/type-inference-rules.d.ts.map +0 -1
- package/dist/src/config/lexicons/type-inference-rules.js +0 -63
- package/dist/src/config/lexicons/type-inference-rules.js.map +0 -1
- package/dist/src/core/core_ir_json.d.ts +0 -62
- package/dist/src/core/core_ir_json.d.ts.map +0 -1
- package/dist/src/core/core_ir_json.js +0 -81
- package/dist/src/core/core_ir_json.js.map +0 -1
- package/dist/test/unit/core_ir_json/core_ir_json.test.d.ts +0 -2
- package/dist/test/unit/core_ir_json/core_ir_json.test.d.ts.map +0 -1
- package/dist/test/unit/core_ir_json/core_ir_json.test.js +0 -218
- package/dist/test/unit/core_ir_json/core_ir_json.test.js.map +0 -1
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* 类型推断引擎单元测试(ADR 0056 §3.2:分词 + 词表,与词法表无关)。
|
|
3
|
+
* 全量对照见 type-inference-vectors.test.ts(aster-lang-locales 共用测试向量)。
|
|
3
4
|
*/
|
|
4
5
|
import { describe, it } from 'node:test';
|
|
5
6
|
import assert from 'node:assert';
|
|
6
|
-
import { inferFieldType,
|
|
7
|
-
import { EN_US } from '../../../src/config/lexicons/en-US.js';
|
|
8
|
-
import { attachTypeInferenceRules } from '../../../src/config/lexicons/type-inference-rules.js';
|
|
9
|
-
/** en-US lexicon 附带类型推断规则 */
|
|
10
|
-
const enUS = attachTypeInferenceRules(EN_US);
|
|
7
|
+
import { inferFieldType, tokenize, constraintType, refine } from '../../../src/parser/type-inference.js';
|
|
11
8
|
/** 辅助函数:创建 span */
|
|
12
9
|
const freshSpan = () => ({ start: { line: 1, col: 1 }, end: { line: 1, col: 1 } });
|
|
13
10
|
/** 辅助函数:获取类型名称 */
|
|
@@ -18,20 +15,17 @@ function getTypeName(type) {
|
|
|
18
15
|
return type.kind;
|
|
19
16
|
}
|
|
20
17
|
describe('类型推断引擎', () => {
|
|
21
|
-
describe('
|
|
22
|
-
it('
|
|
23
|
-
|
|
24
|
-
assert.
|
|
25
|
-
assert.
|
|
26
|
-
assert.
|
|
18
|
+
describe('分词', () => {
|
|
19
|
+
it('驼峰、全大写缩写、snake_case 与数字', () => {
|
|
20
|
+
assert.deepStrictEqual(tokenize('interestRateAPR'), ['interest', 'rate', 'apr']);
|
|
21
|
+
assert.deepStrictEqual(tokenize('userID'), ['user', 'id']);
|
|
22
|
+
assert.deepStrictEqual(tokenize('days_since_consent'), ['days', 'since', 'consent']);
|
|
23
|
+
assert.deepStrictEqual(tokenize('pre_auth__Code'), ['pre', 'auth', 'code']);
|
|
24
|
+
assert.deepStrictEqual(tokenize('abc123Score'), ['abc', '123', 'score']);
|
|
27
25
|
});
|
|
28
|
-
it('
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
const baseTypes = new Set(BASE_NAMING_RULES.map(r => r.type));
|
|
32
|
-
const allTypes = new Set([...baseTypes, ...overlayTypes]);
|
|
33
|
-
assert.ok(allTypes.has('Bool'), '应包含 Bool 规则');
|
|
34
|
-
assert.ok(allTypes.has('DateTime'), '应包含 DateTime 规则');
|
|
26
|
+
it('含非 ASCII 字符的名字词列表为空', () => {
|
|
27
|
+
assert.deepStrictEqual(tokenize('是否成年'), []);
|
|
28
|
+
assert.deepStrictEqual(tokenize('kundeGültig'), []);
|
|
35
29
|
});
|
|
36
30
|
});
|
|
37
31
|
describe('inferFieldType 字段类型推断', () => {
|
|
@@ -97,50 +91,49 @@ describe('类型推断引擎', () => {
|
|
|
97
91
|
assert.strictEqual(getTypeName(inferFieldType('currentIndex')), 'Int');
|
|
98
92
|
});
|
|
99
93
|
});
|
|
100
|
-
describe('
|
|
94
|
+
describe('布尔类型推断', () => {
|
|
101
95
|
it('应该将 is* 前缀推断为 Bool', () => {
|
|
102
|
-
assert.strictEqual(getTypeName(inferFieldType('isActive'
|
|
103
|
-
assert.strictEqual(getTypeName(inferFieldType('isApproved'
|
|
104
|
-
assert.strictEqual(getTypeName(inferFieldType('isVerified'
|
|
96
|
+
assert.strictEqual(getTypeName(inferFieldType('isActive')), 'Bool');
|
|
97
|
+
assert.strictEqual(getTypeName(inferFieldType('isApproved')), 'Bool');
|
|
98
|
+
assert.strictEqual(getTypeName(inferFieldType('isVerified')), 'Bool');
|
|
105
99
|
});
|
|
106
100
|
it('应该将 has* 前缀推断为 Bool', () => {
|
|
107
|
-
assert.strictEqual(getTypeName(inferFieldType('hasPermission'
|
|
108
|
-
assert.strictEqual(getTypeName(inferFieldType('hasAccess'
|
|
101
|
+
assert.strictEqual(getTypeName(inferFieldType('hasPermission')), 'Bool');
|
|
102
|
+
assert.strictEqual(getTypeName(inferFieldType('hasAccess')), 'Bool');
|
|
109
103
|
});
|
|
110
104
|
it('应该将 can*/should*/allow* 前缀推断为 Bool', () => {
|
|
111
|
-
assert.strictEqual(getTypeName(inferFieldType('canEdit'
|
|
112
|
-
assert.strictEqual(getTypeName(inferFieldType('shouldNotify'
|
|
113
|
-
assert.strictEqual(getTypeName(inferFieldType('allowAccess'
|
|
105
|
+
assert.strictEqual(getTypeName(inferFieldType('canEdit')), 'Bool');
|
|
106
|
+
assert.strictEqual(getTypeName(inferFieldType('shouldNotify')), 'Bool');
|
|
107
|
+
assert.strictEqual(getTypeName(inferFieldType('allowAccess')), 'Bool');
|
|
114
108
|
});
|
|
115
109
|
it('应该将 *Flag/*Enabled/*Active 后缀推断为 Bool', () => {
|
|
116
|
-
assert.strictEqual(getTypeName(inferFieldType('debugFlag'
|
|
117
|
-
assert.strictEqual(getTypeName(inferFieldType('featureEnabled'
|
|
118
|
-
assert.strictEqual(getTypeName(inferFieldType('accountActive'
|
|
119
|
-
});
|
|
120
|
-
it('无 lexicon 时不应推断 Bool', () => {
|
|
121
|
-
assert.strictEqual(getTypeName(inferFieldType('isActive')), 'Text');
|
|
122
|
-
assert.strictEqual(getTypeName(inferFieldType('hasPermission')), 'Text');
|
|
110
|
+
assert.strictEqual(getTypeName(inferFieldType('debugFlag')), 'Bool');
|
|
111
|
+
assert.strictEqual(getTypeName(inferFieldType('featureEnabled')), 'Bool');
|
|
112
|
+
assert.strictEqual(getTypeName(inferFieldType('accountActive')), 'Bool');
|
|
123
113
|
});
|
|
124
114
|
});
|
|
125
|
-
describe('
|
|
115
|
+
describe('日期时间类型推断', () => {
|
|
126
116
|
it('应该将 *Date/*Time 后缀推断为 DateTime', () => {
|
|
127
|
-
assert.strictEqual(getTypeName(inferFieldType('birthDate'
|
|
128
|
-
assert.strictEqual(getTypeName(inferFieldType('startTime'
|
|
129
|
-
assert.strictEqual(getTypeName(inferFieldType('expiryDate'
|
|
117
|
+
assert.strictEqual(getTypeName(inferFieldType('birthDate')), 'DateTime');
|
|
118
|
+
assert.strictEqual(getTypeName(inferFieldType('startTime')), 'DateTime');
|
|
119
|
+
assert.strictEqual(getTypeName(inferFieldType('expiryDate')), 'DateTime');
|
|
130
120
|
});
|
|
131
121
|
it('应该将 *At/*Timestamp 后缀推断为 DateTime', () => {
|
|
132
|
-
assert.strictEqual(getTypeName(inferFieldType('createdAt'
|
|
133
|
-
assert.strictEqual(getTypeName(inferFieldType('updatedAt'
|
|
134
|
-
assert.strictEqual(getTypeName(inferFieldType('eventTimestamp'
|
|
122
|
+
assert.strictEqual(getTypeName(inferFieldType('createdAt')), 'DateTime');
|
|
123
|
+
assert.strictEqual(getTypeName(inferFieldType('updatedAt')), 'DateTime');
|
|
124
|
+
assert.strictEqual(getTypeName(inferFieldType('eventTimestamp')), 'DateTime');
|
|
135
125
|
});
|
|
136
126
|
it('应该将 *Created/*Updated/*Modified 后缀推断为 DateTime', () => {
|
|
137
|
-
assert.strictEqual(getTypeName(inferFieldType('dateCreated'
|
|
138
|
-
assert.strictEqual(getTypeName(inferFieldType('lastUpdated'
|
|
139
|
-
assert.strictEqual(getTypeName(inferFieldType('lastModified'
|
|
127
|
+
assert.strictEqual(getTypeName(inferFieldType('dateCreated')), 'DateTime');
|
|
128
|
+
assert.strictEqual(getTypeName(inferFieldType('lastUpdated')), 'DateTime');
|
|
129
|
+
assert.strictEqual(getTypeName(inferFieldType('lastModified')), 'DateTime');
|
|
140
130
|
});
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
131
|
+
});
|
|
132
|
+
describe('与词法表无关:三种语言的规则对所有名字生效', () => {
|
|
133
|
+
it('中文、德语名字照常推断', () => {
|
|
134
|
+
assert.strictEqual(getTypeName(inferFieldType('是否成年')), 'Bool');
|
|
135
|
+
assert.strictEqual(getTypeName(inferFieldType('信用评分')), 'Int');
|
|
136
|
+
assert.strictEqual(getTypeName(inferFieldType('kundeGueltig')), 'Bool');
|
|
144
137
|
});
|
|
145
138
|
});
|
|
146
139
|
describe('默认类型推断', () => {
|
|
@@ -150,10 +143,10 @@ describe('类型推断引擎', () => {
|
|
|
150
143
|
assert.strictEqual(getTypeName(inferFieldType('info')), 'Text');
|
|
151
144
|
assert.strictEqual(getTypeName(inferFieldType('something')), 'Text');
|
|
152
145
|
});
|
|
153
|
-
it('*Value 后缀应该推断为 Int
|
|
154
|
-
assert.strictEqual(getTypeName(inferFieldType('value'
|
|
155
|
-
assert.strictEqual(getTypeName(inferFieldType('vehicleValue'
|
|
156
|
-
assert.strictEqual(getTypeName(inferFieldType('totalValue'
|
|
146
|
+
it('*Value 后缀应该推断为 Int', () => {
|
|
147
|
+
assert.strictEqual(getTypeName(inferFieldType('value')), 'Int');
|
|
148
|
+
assert.strictEqual(getTypeName(inferFieldType('vehicleValue')), 'Int');
|
|
149
|
+
assert.strictEqual(getTypeName(inferFieldType('totalValue')), 'Int');
|
|
157
150
|
});
|
|
158
151
|
it('明确的文本字段应该返回 Text', () => {
|
|
159
152
|
assert.strictEqual(getTypeName(inferFieldType('firstName')), 'Text');
|
|
@@ -162,125 +155,66 @@ describe('类型推断引擎', () => {
|
|
|
162
155
|
});
|
|
163
156
|
});
|
|
164
157
|
});
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
];
|
|
170
|
-
assert.strictEqual(
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
const constraints = [
|
|
174
|
-
{ kind: 'Range', min: 0.5, max: 1.5, span: freshSpan() },
|
|
175
|
-
];
|
|
176
|
-
assert.strictEqual(inferTypeFromConstraints(constraints), 'Float');
|
|
177
|
-
});
|
|
178
|
-
it('Range 约束(仅最小值,整数)应该推断为 Int', () => {
|
|
179
|
-
const constraints = [
|
|
180
|
-
{ kind: 'Range', min: 18, span: freshSpan() },
|
|
181
|
-
];
|
|
182
|
-
assert.strictEqual(inferTypeFromConstraints(constraints), 'Int');
|
|
183
|
-
});
|
|
184
|
-
it('Range 约束(仅最大值,小数)应该推断为 Float', () => {
|
|
185
|
-
const constraints = [
|
|
186
|
-
{ kind: 'Range', max: 99.99, span: freshSpan() },
|
|
187
|
-
];
|
|
188
|
-
assert.strictEqual(inferTypeFromConstraints(constraints), 'Float');
|
|
189
|
-
});
|
|
190
|
-
it('Pattern 约束应该推断为 Text', () => {
|
|
191
|
-
const constraints = [
|
|
192
|
-
{ kind: 'Pattern', regexp: '^[A-Z]+$', span: freshSpan() },
|
|
193
|
-
];
|
|
194
|
-
assert.strictEqual(inferTypeFromConstraints(constraints), 'Text');
|
|
195
|
-
});
|
|
196
|
-
it('Required 约束不应该影响类型推断', () => {
|
|
197
|
-
const constraints = [
|
|
198
|
-
{ kind: 'Required', span: freshSpan() },
|
|
199
|
-
];
|
|
200
|
-
assert.strictEqual(inferTypeFromConstraints(constraints), null);
|
|
201
|
-
});
|
|
202
|
-
it('多个约束时应该综合考虑', () => {
|
|
203
|
-
const constraints = [
|
|
204
|
-
{ kind: 'Required', span: freshSpan() },
|
|
205
|
-
{ kind: 'Range', min: 0, max: 100, span: freshSpan() },
|
|
206
|
-
];
|
|
207
|
-
assert.strictEqual(inferTypeFromConstraints(constraints), 'Int');
|
|
208
|
-
});
|
|
209
|
-
it('Int + Float 应该提升为 Float', () => {
|
|
210
|
-
const constraints = [
|
|
211
|
-
{ kind: 'Range', min: 0, max: 100, span: freshSpan() }, // Int
|
|
212
|
-
{ kind: 'Range', min: 0.5, span: freshSpan() }, // Float
|
|
213
|
-
];
|
|
214
|
-
assert.strictEqual(inferTypeFromConstraints(constraints), 'Float');
|
|
215
|
-
});
|
|
216
|
-
});
|
|
217
|
-
describe('refineInferredType 类型修正', () => {
|
|
218
|
-
it('默认 Text 类型应该被 Range 约束修正为 Int', () => {
|
|
219
|
-
const textType = inferFieldType('value'); // 默认 Text
|
|
220
|
-
const constraints = [
|
|
221
|
-
{ kind: 'Range', min: 0, max: 100, span: freshSpan() },
|
|
222
|
-
];
|
|
223
|
-
const refined = refineInferredType(textType, constraints);
|
|
224
|
-
assert.strictEqual(getTypeName(refined), 'Int');
|
|
158
|
+
const pattern = { kind: 'Pattern', regexp: '^[A-Z]+$', span: freshSpan() };
|
|
159
|
+
const required = { kind: 'Required', span: freshSpan() };
|
|
160
|
+
describe('约束类型(第 5 步)', () => {
|
|
161
|
+
it('Range 按端点规范十进制串是否含小数点区分 Int / Float', () => {
|
|
162
|
+
assert.strictEqual(constraintType([{ kind: 'Range', min: 0, minRaw: '0', max: 100, maxRaw: '100', span: freshSpan() }]), 'Int');
|
|
163
|
+
assert.strictEqual(constraintType([{ kind: 'Range', min: 0.5, minRaw: '0.5', max: 1.5, maxRaw: '1.5', span: freshSpan() }]), 'Float');
|
|
164
|
+
assert.strictEqual(constraintType([{ kind: 'Range', min: 18, minRaw: '18', span: freshSpan() }]), 'Int');
|
|
165
|
+
assert.strictEqual(constraintType([{ kind: 'Range', max: 99.99, maxRaw: '99.99', span: freshSpan() }]), 'Float');
|
|
225
166
|
});
|
|
226
|
-
it('
|
|
227
|
-
const
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
167
|
+
it('端点按规范十进制值判断(与 core TypeInferenceTest.rangeBoundsUseCanonicalDecimal 同组用例)', () => {
|
|
168
|
+
const r = (minRaw, maxRaw) => ({
|
|
169
|
+
kind: 'Range',
|
|
170
|
+
...(minRaw === undefined ? {} : { min: Number(minRaw), minRaw }),
|
|
171
|
+
...(maxRaw === undefined ? {} : { max: Number(maxRaw), maxRaw }),
|
|
172
|
+
span: freshSpan(),
|
|
173
|
+
});
|
|
174
|
+
assert.strictEqual(constraintType([r('1.0', '2.00')]), 'Int');
|
|
175
|
+
assert.strictEqual(constraintType([r('1E3')]), 'Int');
|
|
176
|
+
assert.strictEqual(constraintType([r(undefined, '1.50')]), 'Float');
|
|
177
|
+
assert.strictEqual(constraintType([r('-0.5')]), 'Float');
|
|
178
|
+
assert.strictEqual(constraintType([r('0', '1e-1')]), 'Float');
|
|
233
179
|
});
|
|
234
|
-
it('
|
|
235
|
-
|
|
236
|
-
const constraints = [
|
|
237
|
-
{ kind: 'Range', min: 0.5, max: 10.5, span: freshSpan() },
|
|
238
|
-
];
|
|
239
|
-
const refined = refineInferredType(intType, constraints);
|
|
240
|
-
assert.strictEqual(getTypeName(refined), 'Float');
|
|
180
|
+
it('端点原文 1.0 的规范串是 1,不算小数', () => {
|
|
181
|
+
assert.strictEqual(constraintType([{ kind: 'Range', min: 1, minRaw: '1.0', max: 2, maxRaw: '2.00', span: freshSpan() }]), 'Int');
|
|
241
182
|
});
|
|
242
|
-
it('
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
];
|
|
247
|
-
const refined = refineInferredType(intType, constraints);
|
|
248
|
-
assert.strictEqual(getTypeName(refined), 'Int');
|
|
183
|
+
it('Pattern 得 Text,Required 不影响', () => {
|
|
184
|
+
assert.strictEqual(constraintType([pattern]), 'Text');
|
|
185
|
+
assert.strictEqual(constraintType([required]), null);
|
|
186
|
+
assert.strictEqual(constraintType([required, { kind: 'Range', min: 0, minRaw: '0', max: 100, maxRaw: '100', span: freshSpan() }]), 'Int');
|
|
249
187
|
});
|
|
250
|
-
it('
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
assert.strictEqual(getTypeName(refined), 'Text');
|
|
188
|
+
it('Range 优先于 Pattern,与书写顺序无关', () => {
|
|
189
|
+
assert.strictEqual(constraintType([pattern, { kind: 'Range', min: 1, minRaw: '1', max: 10, maxRaw: '10', span: freshSpan() }]), 'Int');
|
|
190
|
+
assert.strictEqual(constraintType([{ kind: 'Range', min: 1, minRaw: '1', max: 10, maxRaw: '10', span: freshSpan() }, pattern]), 'Int');
|
|
254
191
|
});
|
|
255
|
-
it('
|
|
256
|
-
|
|
257
|
-
const constraints = [
|
|
258
|
-
{ kind: 'Required', span: freshSpan() },
|
|
259
|
-
];
|
|
260
|
-
const refined = refineInferredType(textType, constraints);
|
|
261
|
-
assert.strictEqual(getTypeName(refined), 'Text');
|
|
192
|
+
it('多个 Range 中任一端点为小数即 Float', () => {
|
|
193
|
+
assert.strictEqual(constraintType([{ kind: 'Range', min: 0, minRaw: '0', max: 100, maxRaw: '100', span: freshSpan() }, { kind: 'Range', min: 0.5, minRaw: '0.5', span: freshSpan() }]), 'Float');
|
|
262
194
|
});
|
|
263
195
|
});
|
|
264
|
-
describe('
|
|
265
|
-
it('
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
assert.strictEqual(
|
|
196
|
+
describe('名字结果与约束合并', () => {
|
|
197
|
+
it('合并规则', () => {
|
|
198
|
+
assert.strictEqual(refine('Text', 'Int'), 'Int');
|
|
199
|
+
assert.strictEqual(refine('Text', 'Float'), 'Float');
|
|
200
|
+
assert.strictEqual(refine('Int', 'Float'), 'Float');
|
|
201
|
+
assert.strictEqual(refine('Float', 'Int'), 'Float');
|
|
202
|
+
assert.strictEqual(refine('Bool', 'Int'), 'Bool');
|
|
203
|
+
assert.strictEqual(refine('Int', 'Text'), 'Int');
|
|
204
|
+
assert.strictEqual(refine('Text', null), 'Text');
|
|
273
205
|
});
|
|
274
|
-
it('
|
|
275
|
-
|
|
276
|
-
assert.strictEqual(getTypeName(
|
|
206
|
+
it('inferFieldType 先按名字、再按约束修正', () => {
|
|
207
|
+
assert.strictEqual(getTypeName(inferFieldType('data', [{ kind: 'Range', min: 1, minRaw: '1', max: 100, maxRaw: '100', span: freshSpan() }])), 'Int');
|
|
208
|
+
assert.strictEqual(getTypeName(inferFieldType('score', [pattern])), 'Int');
|
|
209
|
+
assert.strictEqual(getTypeName(inferFieldType('approved', [{ kind: 'Range', min: 0, minRaw: '0', max: 1, maxRaw: '1', span: freshSpan() }])), 'Bool');
|
|
210
|
+
assert.strictEqual(getTypeName(inferFieldType('loanAmount', [])), 'Float');
|
|
277
211
|
});
|
|
278
212
|
});
|
|
279
213
|
/**
|
|
280
214
|
* 双引擎 parity 回归(aster-lang-core issue #80 / #82 / #83)。
|
|
281
215
|
*
|
|
282
|
-
* 下表与 aster-lang-core `TypeInferenceTest.shouldMatchTsEngineInference`
|
|
283
|
-
*
|
|
216
|
+
* 下表与 aster-lang-core `TypeInferenceTest.shouldMatchTsEngineInference` 逐字对应;
|
|
217
|
+
* 规则统一后(ADR 0056)两侧还共同运行 locales 的共用测试向量。
|
|
284
218
|
*/
|
|
285
219
|
describe('双引擎 parity 回归', () => {
|
|
286
220
|
const CASES = [
|
|
@@ -333,7 +267,7 @@ describe('类型推断引擎', () => {
|
|
|
333
267
|
];
|
|
334
268
|
for (const [fieldName, expected] of CASES) {
|
|
335
269
|
it(`${fieldName} → ${expected}`, () => {
|
|
336
|
-
assert.strictEqual(getTypeName(inferFieldType(fieldName
|
|
270
|
+
assert.strictEqual(getTypeName(inferFieldType(fieldName)), expected);
|
|
337
271
|
});
|
|
338
272
|
}
|
|
339
273
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-inference.test.js","sourceRoot":"","sources":["../../../../test/unit/parser/type-inference.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"type-inference.test.js","sourceRoot":"","sources":["../../../../test/unit/parser/type-inference.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
import test from 'node:test';
|
|
12
12
|
import assert from 'node:assert';
|
|
13
13
|
import { compileGuardedRegex, MAX_PATTERN_LENGTH, } from '../../src/config/lexicons/regex-guard.js';
|
|
14
|
-
import {
|
|
14
|
+
import { loadInputGenerationRules } from '../../src/config/lexicons/overlay-loader.js';
|
|
15
15
|
test('regex-guard 测试套件', async (t) => {
|
|
16
16
|
await t.test('拒绝 nested-quantifier ReDoS 模式 (a+)+', () => {
|
|
17
17
|
const result = compileGuardedRegex('(a+)+', 'g');
|
|
@@ -113,17 +113,17 @@ test('regex-guard 测试套件', async (t) => {
|
|
|
113
113
|
assert.strictEqual(result.ok, true, `合法模式 ${ok} 被误伤:${result.ok ? '' : result.error}`);
|
|
114
114
|
}
|
|
115
115
|
});
|
|
116
|
-
await t.test('overlay-loader 跳过恶意
|
|
117
|
-
const rules =
|
|
116
|
+
await t.test('overlay-loader 跳过恶意 input-generation 规则', () => {
|
|
117
|
+
const rules = loadInputGenerationRules({
|
|
118
118
|
version: 1,
|
|
119
119
|
rules: [
|
|
120
|
-
{ pattern: '(a+)+',
|
|
121
|
-
{ pattern: '\\bage\\b',
|
|
120
|
+
{ pattern: '(a+)+', value: 1, priority: 1 },
|
|
121
|
+
{ pattern: '\\bage\\b', value: 30, priority: 2 },
|
|
122
122
|
],
|
|
123
123
|
});
|
|
124
124
|
// 恶意的 (a+)+ 被跳过,只保留合法规则
|
|
125
125
|
assert.strictEqual(rules.length, 1);
|
|
126
|
-
assert.strictEqual(rules[0].
|
|
126
|
+
assert.strictEqual(rules[0].generate(), 30);
|
|
127
127
|
assert.strictEqual(rules[0].pattern.test('age'), true);
|
|
128
128
|
});
|
|
129
129
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"regex-guard.test.js","sourceRoot":"","sources":["../../../test/unit/regex-guard.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EACL,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"regex-guard.test.js","sourceRoot":"","sources":["../../../test/unit/regex-guard.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -176,7 +176,8 @@ describe('#266 审查跟进:能正常运行的调用不新增 E001', () => {
|
|
|
176
176
|
});
|
|
177
177
|
it('收窄仍报:Float 实参传给 Int 形参', () => {
|
|
178
178
|
const { errors } = check(INC + 'Rule main given x as Float, produce Int:\n Return inc(x).\n');
|
|
179
|
-
|
|
179
|
+
// `as Float` 的类型名就是 Float(与 Java 一致,X1 裁决),不再改写为 Double
|
|
180
|
+
assert.deepEqual(mismatches(errors), [{ expected: 'Int', actual: 'Float' }]);
|
|
180
181
|
});
|
|
181
182
|
});
|
|
182
183
|
describe('core#231 审查跟进:TS 不比 Java 严', () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rule-call-checks.test.js","sourceRoot":"","sources":["../../../test/unit/rule-call-checks.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rule-call-checks.test.js","sourceRoot":"","sources":["../../../test/unit/rule-call-checks.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ import { lex } from '../../../src/frontend/lexer.js';
|
|
|
5
5
|
import { parse } from '../../../src/parser.js';
|
|
6
6
|
import { lowerModule } from '../../../src/lower_to_core.js';
|
|
7
7
|
import { typecheckModule } from '../../../src/typecheck.js';
|
|
8
|
+
import { toV2 } from '../../helpers/core-ir-v2.js';
|
|
8
9
|
function runTypecheck(source) {
|
|
9
10
|
const canonical = canonicalize(source);
|
|
10
11
|
const tokens = lex(canonical);
|
|
@@ -14,20 +15,20 @@ function runTypecheck(source) {
|
|
|
14
15
|
}
|
|
15
16
|
describe('异步纪律补充测试', () => {
|
|
16
17
|
it('collectAsync 缺失 origin 时仍应触发 Start 未 Wait 诊断', () => {
|
|
17
|
-
const start = {
|
|
18
|
+
const start = toV2({
|
|
18
19
|
kind: 'Start',
|
|
19
20
|
name: 'job',
|
|
20
21
|
expr: { kind: 'Name', name: 'task' }
|
|
21
|
-
};
|
|
22
|
-
const ret = {
|
|
22
|
+
});
|
|
23
|
+
const ret = toV2({
|
|
23
24
|
kind: 'Return',
|
|
24
25
|
expr: { kind: 'Int', value: 0 }
|
|
25
|
-
};
|
|
26
|
-
const block = {
|
|
26
|
+
});
|
|
27
|
+
const block = toV2({
|
|
27
28
|
kind: 'Block',
|
|
28
29
|
statements: [start, ret]
|
|
29
|
-
};
|
|
30
|
-
const func = {
|
|
30
|
+
});
|
|
31
|
+
const func = toV2({
|
|
31
32
|
kind: 'Func',
|
|
32
33
|
name: 'demo',
|
|
33
34
|
typeParams: [],
|
|
@@ -37,12 +38,12 @@ describe('异步纪律补充测试', () => {
|
|
|
37
38
|
effectCapsExplicit: false,
|
|
38
39
|
ret: { kind: 'TypeName', name: 'Int' },
|
|
39
40
|
body: block
|
|
40
|
-
};
|
|
41
|
-
const mod = {
|
|
41
|
+
});
|
|
42
|
+
const mod = toV2({
|
|
42
43
|
kind: 'Module',
|
|
43
44
|
name: 'test.async.manual',
|
|
44
45
|
decls: [func]
|
|
45
|
-
};
|
|
46
|
+
});
|
|
46
47
|
const diagnostics = typecheckModule(mod);
|
|
47
48
|
const diag = diagnostics.find(d => d.code === "E500" /* ErrorCode.ASYNC_START_NOT_WAITED */);
|
|
48
49
|
assert.ok(diag, '缺失 origin 情况下仍应检测 Start 未 Wait');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"async-discipline-extended.test.js","sourceRoot":"","sources":["../../../../test/unit/typecheck/async-discipline-extended.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AACtE,OAAO,EAAE,GAAG,EAAE,MAAM,gCAAgC,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"async-discipline-extended.test.js","sourceRoot":"","sources":["../../../../test/unit/typecheck/async-discipline-extended.test.ts"],"names":[],"mappings":"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"}
|