openalgo-script 0.5.0 → 0.7.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 +226 -0
- package/README.md +53 -22
- package/dist/adapters/charts/run.d.ts.map +1 -1
- package/dist/adapters/charts/run.js +6 -0
- package/dist/adapters/charts/run.js.map +1 -1
- package/dist/adapters/charts/tables.d.ts +6 -19
- package/dist/adapters/charts/tables.d.ts.map +1 -1
- package/dist/adapters/charts/tables.js.map +1 -1
- package/dist/adapters/charts/undrawable.d.ts +4 -0
- package/dist/adapters/charts/undrawable.d.ts.map +1 -0
- package/dist/adapters/charts/undrawable.js +47 -0
- package/dist/adapters/charts/undrawable.js.map +1 -0
- package/dist/core/backtest/drive.d.ts +36 -1
- package/dist/core/backtest/drive.d.ts.map +1 -1
- package/dist/core/backtest/drive.js +13 -107
- package/dist/core/backtest/drive.js.map +1 -1
- package/dist/core/backtest/index.d.ts +2 -0
- package/dist/core/backtest/index.d.ts.map +1 -1
- package/dist/core/backtest/index.js.map +1 -1
- package/dist/core/backtest/walk.d.ts +39 -0
- package/dist/core/backtest/walk.d.ts.map +1 -0
- package/dist/core/backtest/walk.js +125 -0
- package/dist/core/backtest/walk.js.map +1 -0
- package/dist/core/catalogue/catalogue.generated.d.ts +178 -1
- package/dist/core/catalogue/catalogue.generated.d.ts.map +1 -1
- package/dist/core/catalogue/catalogue.generated.js +18 -1
- package/dist/core/catalogue/catalogue.generated.js.map +1 -1
- package/dist/core/catalogue/types.d.ts +8 -2
- package/dist/core/catalogue/types.d.ts.map +1 -1
- package/dist/core/catalogue/values.generated.d.ts +51 -0
- package/dist/core/catalogue/values.generated.d.ts.map +1 -1
- package/dist/core/check/assigned.d.ts +19 -0
- package/dist/core/check/assigned.d.ts.map +1 -0
- package/dist/core/check/assigned.js +14 -0
- package/dist/core/check/assigned.js.map +1 -0
- package/dist/core/check/call-sites.d.ts.map +1 -1
- package/dist/core/check/call-sites.js +9 -4
- package/dist/core/check/call-sites.js.map +1 -1
- package/dist/core/check/calls.d.ts.map +1 -1
- package/dist/core/check/calls.js +12 -4
- package/dist/core/check/calls.js.map +1 -1
- package/dist/core/check/check.d.ts.map +1 -1
- package/dist/core/check/check.js +15 -2
- package/dist/core/check/check.js.map +1 -1
- package/dist/core/check/checker.d.ts +26 -0
- package/dist/core/check/checker.d.ts.map +1 -1
- package/dist/core/check/checker.js +38 -2
- package/dist/core/check/checker.js.map +1 -1
- package/dist/core/check/constant.d.ts +16 -0
- package/dist/core/check/constant.d.ts.map +1 -1
- package/dist/core/check/constant.js +52 -0
- package/dist/core/check/constant.js.map +1 -1
- package/dist/core/check/deleted.d.ts +3 -0
- package/dist/core/check/deleted.d.ts.map +1 -0
- package/dist/core/check/deleted.js +109 -0
- package/dist/core/check/deleted.js.map +1 -0
- package/dist/core/check/expressions.js +1 -1
- package/dist/core/check/expressions.js.map +1 -1
- package/dist/core/check/library-output.d.ts.map +1 -1
- package/dist/core/check/library-output.js +1 -0
- package/dist/core/check/library-output.js.map +1 -1
- package/dist/core/check/library-prose.generated.js +10 -10
- package/dist/core/check/library-prose.generated.js.map +1 -1
- package/dist/core/check/library.d.ts +7 -0
- package/dist/core/check/library.d.ts.map +1 -1
- package/dist/core/check/library.js +1 -0
- package/dist/core/check/library.js.map +1 -1
- package/dist/core/check/surface.d.ts +9 -0
- package/dist/core/check/surface.d.ts.map +1 -1
- package/dist/core/check/surface.js +13 -0
- package/dist/core/check/surface.js.map +1 -1
- package/dist/core/engine/bar-source.d.ts +65 -0
- package/dist/core/engine/bar-source.d.ts.map +1 -0
- package/dist/core/engine/bar-source.js +58 -0
- package/dist/core/engine/bar-source.js.map +1 -0
- package/dist/core/engine/channels.js +2 -2
- package/dist/core/engine/channels.js.map +1 -1
- package/dist/core/engine/engine.d.ts +9 -11
- package/dist/core/engine/engine.d.ts.map +1 -1
- package/dist/core/engine/engine.js +26 -27
- package/dist/core/engine/engine.js.map +1 -1
- package/dist/core/engine/guard.d.ts.map +1 -1
- package/dist/core/engine/guard.js +10 -0
- package/dist/core/engine/guard.js.map +1 -1
- package/dist/core/engine/host.d.ts +4 -2
- package/dist/core/engine/host.d.ts.map +1 -1
- package/dist/core/engine/host.js.map +1 -1
- package/dist/core/engine/index.d.ts +1 -0
- package/dist/core/engine/index.d.ts.map +1 -1
- package/dist/core/engine/index.js.map +1 -1
- package/dist/core/engine/library/binding.d.ts +2 -0
- package/dist/core/engine/library/binding.d.ts.map +1 -1
- package/dist/core/engine/library/binding.js.map +1 -1
- package/dist/core/engine/library/index.d.ts +8 -0
- package/dist/core/engine/library/index.d.ts.map +1 -1
- package/dist/core/engine/library/index.js +10 -0
- package/dist/core/engine/library/index.js.map +1 -1
- package/dist/core/engine/library/maths.js +2 -2
- package/dist/core/engine/library/maths.js.map +1 -1
- package/dist/core/engine/library/objects.d.ts.map +1 -1
- package/dist/core/engine/library/objects.js +1 -1
- package/dist/core/engine/library/objects.js.map +1 -1
- package/dist/core/engine/machine.js +5 -5
- package/dist/core/engine/machine.js.map +1 -1
- package/dist/core/engine/memory.js +2 -2
- package/dist/core/engine/memory.js.map +1 -1
- package/dist/core/engine/registers.js +2 -2
- package/dist/core/engine/registers.js.map +1 -1
- package/dist/core/engine/request-body.d.ts +3 -1
- package/dist/core/engine/request-body.d.ts.map +1 -1
- package/dist/core/engine/request-body.js +3 -1
- package/dist/core/engine/request-body.js.map +1 -1
- package/dist/core/engine/request-plan.d.ts +3 -3
- package/dist/core/engine/request-plan.js +3 -3
- package/dist/core/engine/requests.d.ts +2 -2
- package/dist/core/engine/requests.d.ts.map +1 -1
- package/dist/core/engine/requests.js +5 -4
- package/dist/core/engine/requests.js.map +1 -1
- package/dist/core/engine/series.d.ts +18 -6
- package/dist/core/engine/series.d.ts.map +1 -1
- package/dist/core/engine/series.js +24 -5
- package/dist/core/engine/series.js.map +1 -1
- package/dist/core/engine/session/record.d.ts +4 -4
- package/dist/core/engine/session/record.js +4 -4
- package/dist/core/engine/values/index.d.ts +1 -1
- package/dist/core/engine/values/index.d.ts.map +1 -1
- package/dist/core/engine/values/index.js +1 -1
- package/dist/core/engine/values/index.js.map +1 -1
- package/dist/core/engine/values/value.d.ts +2 -0
- package/dist/core/engine/values/value.d.ts.map +1 -1
- package/dist/core/engine/values/value.js +4 -0
- package/dist/core/engine/values/value.js.map +1 -1
- package/dist/core/importer/calls.d.ts +29 -0
- package/dist/core/importer/calls.d.ts.map +1 -0
- package/dist/core/importer/calls.js +267 -0
- package/dist/core/importer/calls.js.map +1 -0
- package/dist/core/importer/context.d.ts +118 -0
- package/dist/core/importer/context.d.ts.map +1 -0
- package/dist/core/importer/context.js +120 -0
- package/dist/core/importer/context.js.map +1 -0
- package/dist/core/importer/expressions.d.ts +44 -0
- package/dist/core/importer/expressions.d.ts.map +1 -0
- package/dist/core/importer/expressions.js +223 -0
- package/dist/core/importer/expressions.js.map +1 -0
- package/dist/core/importer/importer.d.ts +13 -0
- package/dist/core/importer/importer.d.ts.map +1 -0
- package/dist/core/importer/importer.js +220 -0
- package/dist/core/importer/importer.js.map +1 -0
- package/dist/core/importer/index.d.ts +20 -0
- package/dist/core/importer/index.d.ts.map +1 -0
- package/dist/core/importer/index.js +18 -0
- package/dist/core/importer/index.js.map +1 -0
- package/dist/core/importer/lexer.d.ts +68 -0
- package/dist/core/importer/lexer.d.ts.map +1 -0
- package/dist/core/importer/lexer.js +207 -0
- package/dist/core/importer/lexer.js.map +1 -0
- package/dist/core/importer/names.d.ts +41 -0
- package/dist/core/importer/names.d.ts.map +1 -0
- package/dist/core/importer/names.js +78 -0
- package/dist/core/importer/names.js.map +1 -0
- package/dist/core/importer/orders.d.ts +8 -0
- package/dist/core/importer/orders.d.ts.map +1 -0
- package/dist/core/importer/orders.js +332 -0
- package/dist/core/importer/orders.js.map +1 -0
- package/dist/core/importer/outputs.d.ts +19 -0
- package/dist/core/importer/outputs.d.ts.map +1 -0
- package/dist/core/importer/outputs.js +266 -0
- package/dist/core/importer/outputs.js.map +1 -0
- package/dist/core/importer/parser.d.ts +5 -0
- package/dist/core/importer/parser.d.ts.map +1 -0
- package/dist/core/importer/parser.js +439 -0
- package/dist/core/importer/parser.js.map +1 -0
- package/dist/core/importer/presence.d.ts +32 -0
- package/dist/core/importer/presence.d.ts.map +1 -0
- package/dist/core/importer/presence.js +146 -0
- package/dist/core/importer/presence.js.map +1 -0
- package/dist/core/importer/settle.d.ts +23 -0
- package/dist/core/importer/settle.d.ts.map +1 -0
- package/dist/core/importer/settle.js +135 -0
- package/dist/core/importer/settle.js.map +1 -0
- package/dist/core/importer/statements.d.ts +4 -0
- package/dist/core/importer/statements.d.ts.map +1 -0
- package/dist/core/importer/statements.js +339 -0
- package/dist/core/importer/statements.js.map +1 -0
- package/dist/core/importer/syntax.d.ts +182 -0
- package/dist/core/importer/syntax.d.ts.map +1 -0
- package/dist/core/importer/syntax.js +14 -0
- package/dist/core/importer/syntax.js.map +1 -0
- package/dist/core/importer/table.d.ts +52 -0
- package/dist/core/importer/table.d.ts.map +1 -0
- package/dist/core/importer/table.js +156 -0
- package/dist/core/importer/table.js.map +1 -0
- package/dist/core/importer/values.d.ts +27 -0
- package/dist/core/importer/values.d.ts.map +1 -0
- package/dist/core/importer/values.js +236 -0
- package/dist/core/importer/values.js.map +1 -0
- package/dist/core/index.d.ts +12 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +11 -0
- package/dist/core/index.js.map +1 -1
- package/dist/core/stdlib/averages/exponential.d.ts.map +1 -1
- package/dist/core/stdlib/averages/exponential.js +3 -6
- package/dist/core/stdlib/averages/exponential.js.map +1 -1
- package/dist/core/stdlib/averages/gaussian.d.ts +15 -0
- package/dist/core/stdlib/averages/gaussian.d.ts.map +1 -0
- package/dist/core/stdlib/averages/gaussian.js +55 -0
- package/dist/core/stdlib/averages/gaussian.js.map +1 -0
- package/dist/core/stdlib/averages/shaped.d.ts +2 -6
- package/dist/core/stdlib/averages/shaped.d.ts.map +1 -1
- package/dist/core/stdlib/averages/shaped.js +8 -22
- package/dist/core/stdlib/averages/shaped.js.map +1 -1
- package/dist/core/stdlib/calendar/civil.d.ts.map +1 -1
- package/dist/core/stdlib/calendar/civil.js +5 -2
- package/dist/core/stdlib/calendar/civil.js.map +1 -1
- package/dist/core/stdlib/maths/arithmetic.d.ts.map +1 -1
- package/dist/core/stdlib/maths/arithmetic.js +2 -1
- package/dist/core/stdlib/maths/arithmetic.js.map +1 -1
- package/dist/core/stdlib/maths/elementary.d.ts +3 -20
- package/dist/core/stdlib/maths/elementary.d.ts.map +1 -1
- package/dist/core/stdlib/maths/elementary.js +17 -13
- package/dist/core/stdlib/maths/elementary.js.map +1 -1
- package/dist/core/stdlib/maths/hypot.d.ts +8 -0
- package/dist/core/stdlib/maths/hypot.d.ts.map +1 -0
- package/dist/core/stdlib/maths/hypot.js +68 -0
- package/dist/core/stdlib/maths/hypot.js.map +1 -0
- package/dist/core/stdlib/maths/power.d.ts +3 -0
- package/dist/core/stdlib/maths/power.d.ts.map +1 -0
- package/dist/core/stdlib/maths/power.js +83 -0
- package/dist/core/stdlib/maths/power.js.map +1 -0
- package/dist/core/stdlib/maths/transcendental.d.ts +15 -0
- package/dist/core/stdlib/maths/transcendental.d.ts.map +1 -0
- package/dist/core/stdlib/maths/transcendental.js +185 -0
- package/dist/core/stdlib/maths/transcendental.js.map +1 -0
- package/dist/core/stdlib/maths/trigonometric.d.ts +4 -0
- package/dist/core/stdlib/maths/trigonometric.d.ts.map +1 -0
- package/dist/core/stdlib/maths/trigonometric.js +196 -0
- package/dist/core/stdlib/maths/trigonometric.js.map +1 -0
- package/dist/core/stdlib/series/conditions.d.ts +2 -4
- package/dist/core/stdlib/series/conditions.d.ts.map +1 -1
- package/dist/core/stdlib/series/conditions.js +9 -13
- package/dist/core/stdlib/series/conditions.js.map +1 -1
- package/dist/core/stdlib/series/statistics.d.ts.map +1 -1
- package/dist/core/stdlib/series/statistics.js +2 -0
- package/dist/core/stdlib/series/statistics.js.map +1 -1
- package/dist/core/stdlib/values/history.d.ts +26 -0
- package/dist/core/stdlib/values/history.d.ts.map +1 -0
- package/dist/core/stdlib/values/history.js +52 -0
- package/dist/core/stdlib/values/history.js.map +1 -0
- package/dist/core/stdlib/values/index.d.ts +1 -0
- package/dist/core/stdlib/values/index.d.ts.map +1 -1
- package/dist/core/stdlib/values/index.js +1 -0
- package/dist/core/stdlib/values/index.js.map +1 -1
- package/dist/core/stdlib/values/lookback.d.ts +4 -1
- package/dist/core/stdlib/values/lookback.d.ts.map +1 -1
- package/dist/core/stdlib/values/lookback.js +48 -45
- package/dist/core/stdlib/values/lookback.js.map +1 -1
- package/dist/core/stdlib/values/region.d.ts +6 -5
- package/dist/core/stdlib/values/region.d.ts.map +1 -1
- package/dist/core/stdlib/values/region.js +3 -3
- package/dist/core/stdlib/values/region.js.map +1 -1
- package/dist/core/stdlib/volatility/measures.d.ts.map +1 -1
- package/dist/core/stdlib/volatility/measures.js +6 -4
- package/dist/core/stdlib/volatility/measures.js.map +1 -1
- package/dist/core/version/version.generated.d.ts +1 -1
- package/dist/core/version/version.generated.js +1 -1
- package/package.json +13 -2
- package/spec/errors.json +380 -20
- package/src/adapters/charts/run.ts +6 -0
- package/src/adapters/charts/tables.ts +6 -19
- package/src/adapters/charts/undrawable.ts +51 -0
- package/src/core/backtest/drive.ts +66 -154
- package/src/core/backtest/index.ts +2 -0
- package/src/core/backtest/walk.ts +182 -0
- package/src/core/catalogue/catalogue.generated.ts +18 -1
- package/src/core/catalogue/types.ts +8 -2
- package/src/core/catalogue/values.generated.ts +16 -0
- package/src/core/check/assigned.ts +31 -0
- package/src/core/check/call-sites.ts +11 -4
- package/src/core/check/calls.ts +13 -4
- package/src/core/check/check.ts +14 -2
- package/src/core/check/checker.ts +39 -2
- package/src/core/check/constant.ts +57 -0
- package/src/core/check/deleted.ts +135 -0
- package/src/core/check/expressions.ts +1 -1
- package/src/core/check/library-output.ts +1 -0
- package/src/core/check/library-prose.generated.ts +10 -10
- package/src/core/check/library.ts +8 -0
- package/src/core/check/surface.ts +16 -0
- package/src/core/engine/bar-source.ts +113 -0
- package/src/core/engine/channels.ts +2 -2
- package/src/core/engine/engine.ts +29 -28
- package/src/core/engine/guard.ts +12 -1
- package/src/core/engine/host.ts +4 -2
- package/src/core/engine/index.ts +1 -0
- package/src/core/engine/library/binding.ts +2 -0
- package/src/core/engine/library/index.ts +11 -0
- package/src/core/engine/library/maths.ts +2 -2
- package/src/core/engine/library/objects.ts +1 -6
- package/src/core/engine/machine.ts +5 -5
- package/src/core/engine/memory.ts +2 -2
- package/src/core/engine/registers.ts +2 -2
- package/src/core/engine/request-body.ts +5 -7
- package/src/core/engine/request-plan.ts +3 -3
- package/src/core/engine/requests.ts +11 -8
- package/src/core/engine/series.ts +30 -6
- package/src/core/engine/session/record.ts +4 -4
- package/src/core/engine/values/index.ts +1 -0
- package/src/core/engine/values/value.ts +5 -0
- package/src/core/importer/calls.ts +274 -0
- package/src/core/importer/context.ts +197 -0
- package/src/core/importer/expressions.ts +247 -0
- package/src/core/importer/importer.ts +226 -0
- package/src/core/importer/index.ts +19 -0
- package/src/core/importer/lexer.ts +285 -0
- package/src/core/importer/names.ts +104 -0
- package/src/core/importer/orders.ts +307 -0
- package/src/core/importer/outputs.ts +245 -0
- package/src/core/importer/parser.ts +436 -0
- package/src/core/importer/presence.ts +164 -0
- package/src/core/importer/settle.ts +141 -0
- package/src/core/importer/statements.ts +331 -0
- package/src/core/importer/syntax.ts +144 -0
- package/src/core/importer/table.ts +191 -0
- package/src/core/importer/values.ts +241 -0
- package/src/core/index.ts +13 -0
- package/src/core/stdlib/averages/exponential.ts +3 -4
- package/src/core/stdlib/averages/gaussian.ts +52 -0
- package/src/core/stdlib/averages/shaped.ts +8 -21
- package/src/core/stdlib/calendar/civil.ts +5 -2
- package/src/core/stdlib/maths/arithmetic.ts +2 -1
- package/src/core/stdlib/maths/elementary.ts +20 -33
- package/src/core/stdlib/maths/hypot.ts +63 -0
- package/src/core/stdlib/maths/power.ts +57 -0
- package/src/core/stdlib/maths/transcendental.ts +160 -0
- package/src/core/stdlib/maths/trigonometric.ts +160 -0
- package/src/core/stdlib/series/conditions.ts +9 -12
- package/src/core/stdlib/series/statistics.ts +1 -0
- package/src/core/stdlib/values/history.ts +70 -0
- package/src/core/stdlib/values/index.ts +1 -0
- package/src/core/stdlib/values/lookback.ts +51 -47
- package/src/core/stdlib/values/region.ts +7 -5
- package/src/core/stdlib/volatility/measures.ts +6 -4
- package/src/core/version/version.generated.ts +1 -1
package/dist/core/check/calls.js
CHANGED
|
@@ -2,7 +2,7 @@ import { withoutGrouping } from '../ast/index.js';
|
|
|
2
2
|
import { bindArguments, arityText, signatureText } from './arguments.js';
|
|
3
3
|
import { warmupOfCall } from './call-warmup.js';
|
|
4
4
|
import { reportStrategyOnly } from './checker.js';
|
|
5
|
-
import { isCompileTimeConstant } from './constant.js';
|
|
5
|
+
import { isCompileTimeConstant, readsInputInPart } from './constant.js';
|
|
6
6
|
import { refuseHandle } from './handles.js';
|
|
7
7
|
import { literalNumber, literalString } from './literals.js';
|
|
8
8
|
import { recordOutput, reportCallWarnings } from './outputs.js';
|
|
@@ -204,8 +204,16 @@ export function validateArguments(checker, entry, filled, bound) {
|
|
|
204
204
|
found: value,
|
|
205
205
|
});
|
|
206
206
|
}
|
|
207
|
-
if (entry.constant.includes(parameter.name)
|
|
208
|
-
checker
|
|
207
|
+
if (entry.constant.includes(parameter.name)) {
|
|
208
|
+
if (!isCompileTimeConstant(checker, argument.value)) {
|
|
209
|
+
checker.report('OS3003', span, { option: parameter.name });
|
|
210
|
+
}
|
|
211
|
+
else if (readsInputInPart(checker, argument.value, entry.name !== 'input')) {
|
|
212
|
+
checker.report('OS3025', span, { option: parameter.name });
|
|
213
|
+
}
|
|
214
|
+
else if (entry.written.includes(parameter.name) && readsInputInPart(checker, argument.value, false)) {
|
|
215
|
+
checker.report('OS3026', span, { option: parameter.name });
|
|
216
|
+
}
|
|
209
217
|
}
|
|
210
218
|
}
|
|
211
219
|
reportConflicts(checker, entry, filled);
|
|
@@ -278,7 +286,7 @@ export function resolveLibraryCall(checker, call, name, placement) {
|
|
|
278
286
|
checker.report('OS2010', call.span, {
|
|
279
287
|
name,
|
|
280
288
|
type: held === undefined ? typeText(UNKNOWN) : typeText(held.returns),
|
|
281
|
-
suggestion: checker.
|
|
289
|
+
suggestion: checker.callSuggestionFor(name, call.args.map((one) => checker.textOf(one.span))),
|
|
282
290
|
});
|
|
283
291
|
return unresolved(call, name);
|
|
284
292
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calls.js","sourceRoot":"","sources":["../../../src/core/check/calls.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"calls.js","sourceRoot":"","sources":["../../../src/core/check/calls.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/core/check/check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/core/check/check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AASlD,wBAAgB,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,aAAa,CAkC3F"}
|
package/dist/core/check/check.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { Checker, TOP_LEVEL, finaliseStorage } from './checker.js';
|
|
2
2
|
import { checkDeclaration, checkLimits, readHeader } from './declaration.js';
|
|
3
|
+
import { reportDeletedStillHeld } from './deleted.js';
|
|
3
4
|
import { checkFunctionDeclarations, checkRemainingFunctions } from './functions.js';
|
|
4
5
|
import { reportRepeatedAlertIds } from './outputs.js';
|
|
5
6
|
import { checkStatement } from './statements.js';
|
|
6
7
|
import { reportUnplaceableTags } from './tags.js';
|
|
7
|
-
import { elementOf } from './types.js';
|
|
8
|
+
import { elementOf, isHandle } from './types.js';
|
|
8
9
|
export function check(file, script, sink) {
|
|
9
10
|
const checker = new Checker(file, script, sink);
|
|
10
11
|
readHeader(checker, script);
|
|
@@ -29,6 +30,7 @@ export function check(file, script, sink) {
|
|
|
29
30
|
finaliseStorage(checker);
|
|
30
31
|
reportUnknownElementTypes(checker);
|
|
31
32
|
reportNamesNeverRead(checker);
|
|
33
|
+
reportDeletedStillHeld(checker);
|
|
32
34
|
reportRepeatedTitles(checker);
|
|
33
35
|
reportInputKeys(checker);
|
|
34
36
|
reportRepeatedAlertIds(checker);
|
|
@@ -51,7 +53,16 @@ function reportUnknownElementTypes(checker) {
|
|
|
51
53
|
checker.report('OS2015', binding.declaredAt, {});
|
|
52
54
|
}
|
|
53
55
|
}
|
|
54
|
-
/**
|
|
56
|
+
/**
|
|
57
|
+
* OS8010 and OS8018: a name, or an input, that nothing in the file reads.
|
|
58
|
+
*
|
|
59
|
+
* A name bound to a declaration handle is exempt, as the entry's cause says: a
|
|
60
|
+
* handle is a compile-time binding, the declaration draws whether or not it is
|
|
61
|
+
* named, and so nothing is left in the bar loop for the warning to be about.
|
|
62
|
+
* `language.md` 5.4 gives `plot`, `plotCandles`, `fill` and `level` the one kind
|
|
63
|
+
* of value, so the exemption is the type rather than a list of the two calls
|
|
64
|
+
* `stdlib.md` 14.2 happens to name.
|
|
65
|
+
*/
|
|
55
66
|
function reportNamesNeverRead(checker) {
|
|
56
67
|
for (const binding of checker.bindings) {
|
|
57
68
|
if (binding.isRead)
|
|
@@ -60,6 +71,8 @@ function reportNamesNeverRead(checker) {
|
|
|
60
71
|
continue;
|
|
61
72
|
if (binding.kind === 'parameter' || binding.kind === 'loop')
|
|
62
73
|
continue;
|
|
74
|
+
if (isHandle(binding.type))
|
|
75
|
+
continue;
|
|
63
76
|
if (binding.input !== undefined) {
|
|
64
77
|
const input = checker.inputs[binding.input];
|
|
65
78
|
checker.report('OS8018', binding.declaredAt, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../../src/core/check/check.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEnE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACpF,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../../src/core/check/check.ts"],"names":[],"mappings":"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"}
|
|
@@ -108,6 +108,13 @@ export declare class Checker {
|
|
|
108
108
|
}[];
|
|
109
109
|
/** Every call site a bar can pass without evaluating, `language.md` 11.4. */
|
|
110
110
|
private readonly conditional;
|
|
111
|
+
/**
|
|
112
|
+
* The names some line gives a value, read before a `var` is called never.
|
|
113
|
+
*
|
|
114
|
+
* Built the first time it is asked for, because it is one walk of the whole
|
|
115
|
+
* tree and almost every file never reads a `var` that is still never.
|
|
116
|
+
*/
|
|
117
|
+
private givenAValue;
|
|
111
118
|
constructor(file: SourceFile, script: Script, sink: DiagnosticSink);
|
|
112
119
|
/**
|
|
113
120
|
* Whether this call site can be skipped on a bar, which is what OS8001 asks.
|
|
@@ -155,10 +162,29 @@ export declare class Checker {
|
|
|
155
162
|
multiOutputOf(name: string): CheckedCall | undefined;
|
|
156
163
|
record(expression: Expression, type: Type, warmup: Warmup): Type;
|
|
157
164
|
typeOf(expression: Expression): Type;
|
|
165
|
+
/**
|
|
166
|
+
* The warmup a read of this name sees, here.
|
|
167
|
+
*
|
|
168
|
+
* A `var` that is still never at this line but that a later line gives a
|
|
169
|
+
* value is not never: the later line wrote it on the bar before, or on an
|
|
170
|
+
* earlier pass of the same loop. The honest answer is a floor of bar 0,
|
|
171
|
+
* which claims nothing and withdraws the claim OS8009 is built on, where an
|
|
172
|
+
* exact bar would need the later line's warmup before it has been read.
|
|
173
|
+
*/
|
|
174
|
+
warmupOfRead(binding: Binding): Warmup;
|
|
158
175
|
warmupOf(expression: Expression): Warmup;
|
|
159
176
|
/** Every name a reader could have meant here: the scopes, then the library. */
|
|
160
177
|
namesInScope(): readonly string[];
|
|
161
178
|
suggestionFor(written: string): string;
|
|
179
|
+
/**
|
|
180
|
+
* OS2010's suggestion: the closest function, called with what was written.
|
|
181
|
+
*
|
|
182
|
+
* The catalogue documents the slot as the library function whose name is
|
|
183
|
+
* closest, with its first argument filled in, so `volume(20)` is offered a
|
|
184
|
+
* function over `volume` and the arguments the reader already wrote,
|
|
185
|
+
* rather than a name that cannot be called either.
|
|
186
|
+
*/
|
|
187
|
+
callSuggestionFor(written: string, args: readonly string[]): string;
|
|
162
188
|
/** A state region for one call site, `compiled-program.md` 2.11. */
|
|
163
189
|
takeStateId(): number;
|
|
164
190
|
finish(): CheckedScript;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../../../src/core/check/checker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EACV,IAAI,EACJ,UAAU,EACV,mBAAmB,EACnB,IAAI,EACJ,aAAa,EACb,MAAM,EACP,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EACV,OAAO,EACP,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,aAAa,EACb,cAAc,EACd,aAAa,EACb,OAAO,EAER,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../../../src/core/check/checker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import { namesGivenAValue } from './assigned.js';
|
|
1
2
|
import { conditionalCalls } from './conditional.js';
|
|
2
|
-
import { libraryNames } from './surface.js';
|
|
3
|
+
import { libraryFunctionNames, libraryNames } from './surface.js';
|
|
3
4
|
import { closestName } from './suggest.js';
|
|
4
5
|
import { UNKNOWN } from './types.js';
|
|
5
|
-
import { BAR_ZERO } from './warmup.js';
|
|
6
|
+
import { BAR_ZERO, weaken } from './warmup.js';
|
|
6
7
|
export const TOP_LEVEL = {
|
|
7
8
|
topLevel: true,
|
|
8
9
|
construct: undefined,
|
|
@@ -62,6 +63,13 @@ export class Checker {
|
|
|
62
63
|
pendingReturns = [];
|
|
63
64
|
/** Every call site a bar can pass without evaluating, `language.md` 11.4. */
|
|
64
65
|
conditional;
|
|
66
|
+
/**
|
|
67
|
+
* The names some line gives a value, read before a `var` is called never.
|
|
68
|
+
*
|
|
69
|
+
* Built the first time it is asked for, because it is one walk of the whole
|
|
70
|
+
* tree and almost every file never reads a `var` that is still never.
|
|
71
|
+
*/
|
|
72
|
+
givenAValue = undefined;
|
|
65
73
|
constructor(file, script, sink) {
|
|
66
74
|
this.file = file;
|
|
67
75
|
this.script = script;
|
|
@@ -194,6 +202,21 @@ export class Checker {
|
|
|
194
202
|
typeOf(expression) {
|
|
195
203
|
return this.types.get(expression) ?? UNKNOWN;
|
|
196
204
|
}
|
|
205
|
+
/**
|
|
206
|
+
* The warmup a read of this name sees, here.
|
|
207
|
+
*
|
|
208
|
+
* A `var` that is still never at this line but that a later line gives a
|
|
209
|
+
* value is not never: the later line wrote it on the bar before, or on an
|
|
210
|
+
* earlier pass of the same loop. The honest answer is a floor of bar 0,
|
|
211
|
+
* which claims nothing and withdraws the claim OS8009 is built on, where an
|
|
212
|
+
* exact bar would need the later line's warmup before it has been read.
|
|
213
|
+
*/
|
|
214
|
+
warmupOfRead(binding) {
|
|
215
|
+
if (binding.warmup.kind !== 'never' || binding.persistence === 'none')
|
|
216
|
+
return binding.warmup;
|
|
217
|
+
this.givenAValue ??= namesGivenAValue(this.script);
|
|
218
|
+
return this.givenAValue.has(binding.name) ? weaken(BAR_ZERO) : binding.warmup;
|
|
219
|
+
}
|
|
197
220
|
warmupOf(expression) {
|
|
198
221
|
return this.warmups.get(expression) ?? BAR_ZERO;
|
|
199
222
|
}
|
|
@@ -211,6 +234,19 @@ export class Checker {
|
|
|
211
234
|
suggestionFor(written) {
|
|
212
235
|
return closestName(written, this.namesInScope());
|
|
213
236
|
}
|
|
237
|
+
/**
|
|
238
|
+
* OS2010's suggestion: the closest function, called with what was written.
|
|
239
|
+
*
|
|
240
|
+
* The catalogue documents the slot as the library function whose name is
|
|
241
|
+
* closest, with its first argument filled in, so `volume(20)` is offered a
|
|
242
|
+
* function over `volume` and the arguments the reader already wrote,
|
|
243
|
+
* rather than a name that cannot be called either.
|
|
244
|
+
*/
|
|
245
|
+
callSuggestionFor(written, args) {
|
|
246
|
+
const inStrategy = this.declaration?.form === 'strategy';
|
|
247
|
+
const name = closestName(written, libraryFunctionNames(inStrategy));
|
|
248
|
+
return `${name}(${[written, ...args].join(', ')})`;
|
|
249
|
+
}
|
|
214
250
|
/** A state region for one call site, `compiled-program.md` 2.11. */
|
|
215
251
|
takeStateId() {
|
|
216
252
|
const id = this.stateCount;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checker.js","sourceRoot":"","sources":["../../../src/core/check/checker.ts"],"names":[],"mappings":"AAqCA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"checker.js","sourceRoot":"","sources":["../../../src/core/check/checker.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,6 +32,22 @@ import type { Checker } from './checker.js';
|
|
|
32
32
|
*/
|
|
33
33
|
export declare const FOLDABLE_CALLS: ReadonlySet<string>;
|
|
34
34
|
export declare function isCompileTimeConstant(checker: Checker, expression: Expression): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Whether a constant reads a setting as part of something larger, OS3025.
|
|
37
|
+
*
|
|
38
|
+
* `compiled-program.md` 2.3 gives a field fixed before bar 0 two forms: the
|
|
39
|
+
* effective value, which the compiler folds, and `{ "input": "<key>" }`, one
|
|
40
|
+
* setting resolved at load. `precision = input(2, "Decimals") + 1` and
|
|
41
|
+
* `opacity = shade ? 1 : 0` are neither: the compiler cannot fold them, because
|
|
42
|
+
* the setting's value is not known until the host resolves it, and the program
|
|
43
|
+
* has no form for an expression evaluated at load. Nothing refused them, so the
|
|
44
|
+
* emitter met them with no way to write them and reported a defect in itself.
|
|
45
|
+
*
|
|
46
|
+
* `wholeOnly` is false for an input's own options: a default, a bound or a
|
|
47
|
+
* step is what the settings dialog shows before anybody has chosen, and a
|
|
48
|
+
* setting that took its default from another setting would have none to show.
|
|
49
|
+
*/
|
|
50
|
+
export declare function readsInputInPart(checker: Checker, expression: Expression, wholeOnly: boolean): boolean;
|
|
35
51
|
/**
|
|
36
52
|
* Whether the expression names one of the price series an `input` may default
|
|
37
53
|
* to, `stdlib.md` 13.1.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constant.d.ts","sourceRoot":"","sources":["../../../src/core/check/constant.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAGlD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAM5C;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc,EAAE,WAAW,CAAC,MAAM,CAO7C,CAAC;AAEH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CA4CvF;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAG5D;AAiBD,gFAAgF;AAChF,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,CAEnE"}
|
|
1
|
+
{"version":3,"file":"constant.d.ts","sourceRoot":"","sources":["../../../src/core/check/constant.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAGlD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAM5C;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc,EAAE,WAAW,CAAC,MAAM,CAO7C,CAAC;AAEH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CA4CvF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,OAAO,GACjB,OAAO,CAGT;AAmCD;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAG5D;AAiBD,gFAAgF;AAChF,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,CAEnE"}
|
|
@@ -66,6 +66,58 @@ export function isCompileTimeConstant(checker, expression) {
|
|
|
66
66
|
return false;
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
|
+
/**
|
|
70
|
+
* Whether a constant reads a setting as part of something larger, OS3025.
|
|
71
|
+
*
|
|
72
|
+
* `compiled-program.md` 2.3 gives a field fixed before bar 0 two forms: the
|
|
73
|
+
* effective value, which the compiler folds, and `{ "input": "<key>" }`, one
|
|
74
|
+
* setting resolved at load. `precision = input(2, "Decimals") + 1` and
|
|
75
|
+
* `opacity = shade ? 1 : 0` are neither: the compiler cannot fold them, because
|
|
76
|
+
* the setting's value is not known until the host resolves it, and the program
|
|
77
|
+
* has no form for an expression evaluated at load. Nothing refused them, so the
|
|
78
|
+
* emitter met them with no way to write them and reported a defect in itself.
|
|
79
|
+
*
|
|
80
|
+
* `wholeOnly` is false for an input's own options: a default, a bound or a
|
|
81
|
+
* step is what the settings dialog shows before anybody has chosen, and a
|
|
82
|
+
* setting that took its default from another setting would have none to show.
|
|
83
|
+
*/
|
|
84
|
+
export function readsInputInPart(checker, expression, wholeOnly) {
|
|
85
|
+
if (!readsInput(checker, expression))
|
|
86
|
+
return false;
|
|
87
|
+
return !wholeOnly || !isWholeInput(checker, expression);
|
|
88
|
+
}
|
|
89
|
+
/** Whether a setting is read anywhere inside the expression. */
|
|
90
|
+
function readsInput(checker, expression) {
|
|
91
|
+
if (isWholeInput(checker, expression))
|
|
92
|
+
return true;
|
|
93
|
+
const inner = withoutGrouping(expression);
|
|
94
|
+
switch (inner.kind) {
|
|
95
|
+
case 'arrayLiteral':
|
|
96
|
+
return inner.elements.some((element) => readsInput(checker, element));
|
|
97
|
+
case 'unary':
|
|
98
|
+
return readsInput(checker, inner.operand);
|
|
99
|
+
case 'binary':
|
|
100
|
+
return readsInput(checker, inner.left) || readsInput(checker, inner.right);
|
|
101
|
+
case 'ternary':
|
|
102
|
+
return (readsInput(checker, inner.condition) ||
|
|
103
|
+
readsInput(checker, inner.whenTrue) ||
|
|
104
|
+
readsInput(checker, inner.whenFalse));
|
|
105
|
+
case 'call':
|
|
106
|
+
return inner.args.some((argument) => readsInput(checker, argument.value));
|
|
107
|
+
default:
|
|
108
|
+
return false;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
/** One setting and nothing else: an `input()` call, or a name that holds one. */
|
|
112
|
+
function isWholeInput(checker, expression) {
|
|
113
|
+
const inner = withoutGrouping(expression);
|
|
114
|
+
if (inner.kind === 'call')
|
|
115
|
+
return calleeName(inner.callee) === 'input';
|
|
116
|
+
if (inner.kind !== 'nameReference')
|
|
117
|
+
return false;
|
|
118
|
+
const binding = checker.lookup(inner.name);
|
|
119
|
+
return binding !== undefined && inputHeldBy(binding) !== undefined;
|
|
120
|
+
}
|
|
69
121
|
/**
|
|
70
122
|
* Whether the expression names one of the price series an `input` may default
|
|
71
123
|
* to, `stdlib.md` 13.1.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constant.js","sourceRoot":"","sources":["../../../src/core/check/constant.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"constant.js","sourceRoot":"","sources":["../../../src/core/check/constant.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deleted.d.ts","sourceRoot":"","sources":["../../../src/core/check/deleted.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAY5C,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAI7D"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { childrenOf, withoutGrouping } from '../ast/index.js';
|
|
2
|
+
import { elementOf } from './types.js';
|
|
3
|
+
/** The calls that take an element out of an array or empty it, `language.md` 14.1. */
|
|
4
|
+
const REMOVING = new Set(['shift', 'pop', 'remove', 'clear']);
|
|
5
|
+
export function reportDeletedStillHeld(checker) {
|
|
6
|
+
// One walk of the whole tree, paid only by a file that deletes something.
|
|
7
|
+
if (!checker.calls.some((one) => one.name === 'draw.delete'))
|
|
8
|
+
return;
|
|
9
|
+
visit(checker, checker.script);
|
|
10
|
+
}
|
|
11
|
+
function visit(checker, node) {
|
|
12
|
+
if (node.kind === 'script' || node.kind === 'block') {
|
|
13
|
+
reportList(checker, statementsOf(node));
|
|
14
|
+
}
|
|
15
|
+
for (const child of childrenOf(node))
|
|
16
|
+
visit(checker, child);
|
|
17
|
+
}
|
|
18
|
+
function statementsOf(node) {
|
|
19
|
+
return node.kind === 'script' ? node.items : node.statements;
|
|
20
|
+
}
|
|
21
|
+
function reportList(checker, statements) {
|
|
22
|
+
statements.forEach((statement, index) => {
|
|
23
|
+
const call = deleteCall(checker, statement);
|
|
24
|
+
if (call === undefined)
|
|
25
|
+
return;
|
|
26
|
+
const argument = call.args[0]?.value;
|
|
27
|
+
if (argument === undefined)
|
|
28
|
+
return;
|
|
29
|
+
const held = heldBy(checker, argument);
|
|
30
|
+
if (held === undefined)
|
|
31
|
+
return;
|
|
32
|
+
const kind = objectKindOf(checker, argument);
|
|
33
|
+
if (kind === undefined)
|
|
34
|
+
return;
|
|
35
|
+
const later = statements.slice(index + 1);
|
|
36
|
+
const cleared = held.inArray
|
|
37
|
+
? later.some((one) => removesFrom(checker, one, held.binding))
|
|
38
|
+
: later.some((one) => assigns(one, held.binding.name));
|
|
39
|
+
if (cleared)
|
|
40
|
+
return;
|
|
41
|
+
checker.report('OS8019', argument.span, {
|
|
42
|
+
name: held.binding.name,
|
|
43
|
+
kind,
|
|
44
|
+
line: call.span.line,
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
/** The `draw.delete(...)` a statement is, when it is one. */
|
|
49
|
+
function deleteCall(checker, statement) {
|
|
50
|
+
if (statement.kind !== 'expressionStatement')
|
|
51
|
+
return undefined;
|
|
52
|
+
const expression = withoutGrouping(statement.expression);
|
|
53
|
+
if (expression.kind !== 'call')
|
|
54
|
+
return undefined;
|
|
55
|
+
return checker.callSites.get(expression)?.name === 'draw.delete' ? expression : undefined;
|
|
56
|
+
}
|
|
57
|
+
/** The persistent name the deleted object is still reachable through. */
|
|
58
|
+
function heldBy(checker, argument) {
|
|
59
|
+
const written = withoutGrouping(argument);
|
|
60
|
+
if (written.kind === 'nameReference') {
|
|
61
|
+
const binding = persistent(checker, written);
|
|
62
|
+
return binding === undefined ? undefined : { binding, inArray: false };
|
|
63
|
+
}
|
|
64
|
+
const array = arrayOf(checker, written);
|
|
65
|
+
if (array === undefined)
|
|
66
|
+
return undefined;
|
|
67
|
+
const binding = persistent(checker, array);
|
|
68
|
+
return binding === undefined ? undefined : { binding, inArray: true };
|
|
69
|
+
}
|
|
70
|
+
/** `element(arr, i)` or `arr[i]`, as the array expression it reads. */
|
|
71
|
+
function arrayOf(checker, written) {
|
|
72
|
+
if (written.kind === 'index')
|
|
73
|
+
return withoutGrouping(written.target);
|
|
74
|
+
if (written.kind === 'call' && checker.callSites.get(written)?.name === 'element') {
|
|
75
|
+
const first = written.args[0]?.value;
|
|
76
|
+
return first === undefined ? undefined : withoutGrouping(first);
|
|
77
|
+
}
|
|
78
|
+
return undefined;
|
|
79
|
+
}
|
|
80
|
+
function persistent(checker, expression) {
|
|
81
|
+
if (expression.kind !== 'nameReference')
|
|
82
|
+
return undefined;
|
|
83
|
+
const binding = checker.references.get(expression);
|
|
84
|
+
return binding !== undefined && binding.persistence !== 'none' ? binding : undefined;
|
|
85
|
+
}
|
|
86
|
+
function objectKindOf(checker, argument) {
|
|
87
|
+
const type = checker.types.get(argument);
|
|
88
|
+
if (type === undefined)
|
|
89
|
+
return undefined;
|
|
90
|
+
const element = elementOf(type);
|
|
91
|
+
return element.kind === 'object' ? element.object : undefined;
|
|
92
|
+
}
|
|
93
|
+
function assigns(statement, name) {
|
|
94
|
+
return statement.kind === 'assignment' && statement.target.text === name;
|
|
95
|
+
}
|
|
96
|
+
/** Whether any call in the statement takes an element out of this array. */
|
|
97
|
+
function removesFrom(checker, node, binding) {
|
|
98
|
+
if (node.kind === 'call') {
|
|
99
|
+
const name = checker.callSites.get(node)?.name;
|
|
100
|
+
const first = node.args[0]?.value;
|
|
101
|
+
if (name !== undefined && REMOVING.has(name) && first !== undefined) {
|
|
102
|
+
const target = withoutGrouping(first);
|
|
103
|
+
if (target.kind === 'nameReference' && checker.references.get(target) === binding)
|
|
104
|
+
return true;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
return childrenOf(node).some((child) => removesFrom(checker, child, binding));
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=deleted.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deleted.js","sourceRoot":"","sources":["../../../src/core/check/deleted.ts"],"names":[],"mappings":"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"}
|
|
@@ -150,7 +150,7 @@ function checkNameReference(checker, expression) {
|
|
|
150
150
|
}
|
|
151
151
|
binding.isRead = true;
|
|
152
152
|
checker.references.set(expression, binding);
|
|
153
|
-
return checker.record(expression, binding.type, binding
|
|
153
|
+
return checker.record(expression, binding.type, checker.warmupOfRead(binding));
|
|
154
154
|
}
|
|
155
155
|
const entries = libraryEntries(expression.name);
|
|
156
156
|
const value = entries.find((one) => !one.callable);
|