@ttsc/wasm 0.18.4 → 0.19.1
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/README.md +10 -4
- package/dist/go.mod +1 -0
- package/dist/ttsc.wasm +0 -0
- package/go.mod +1 -0
- package/host/api.go +1 -1
- package/host/host.go +15 -108
- package/host/plugin.go +115 -47
- package/lib/src/MemFSError.js +4 -0
- package/lib/src/MemFSError.js.map +1 -1
- package/lib/src/bootTtsc.js +93 -37
- package/lib/src/bootTtsc.js.map +1 -1
- package/lib/src/createMemFS.js +173 -10
- package/lib/src/createMemFS.js.map +1 -1
- package/package.json +1 -1
- package/shim-vendor/shim/ast/lint.go +10 -0
- package/shim-vendor/shim/ast/shim.go +44 -0
- package/shim-vendor/shim/checker/enums_gen.go +19 -0
- package/shim-vendor/shim/checker/shim.go +130 -0
- package/shim-vendor/shim/diagnosticwriter/lint.go +30 -3
- package/shim-vendor/shim/scanner/regexp.go +27 -0
- package/src/MemFSError.ts +4 -0
- package/src/bootTtsc.ts +115 -47
- package/src/createMemFS.ts +170 -10
- package/shim-vendor/shim/checker/signature_api_completeness.go +0 -58
package/lib/src/createMemFS.js
CHANGED
|
@@ -115,6 +115,60 @@ function createMemFS() {
|
|
|
115
115
|
}
|
|
116
116
|
}
|
|
117
117
|
}
|
|
118
|
+
/** Absolute parent directory of a normalized path (`/` for a top-level path). */
|
|
119
|
+
function parentDir(norm) {
|
|
120
|
+
const idx = norm.lastIndexOf("/");
|
|
121
|
+
return idx <= 0 ? "/" : norm.slice(0, idx);
|
|
122
|
+
}
|
|
123
|
+
/** True when `dir` has at least one descendant node in the tree. */
|
|
124
|
+
function hasChildren(dir) {
|
|
125
|
+
const prefix = dir === "/" ? "/" : dir + "/";
|
|
126
|
+
for (const key of nodes.keys()) {
|
|
127
|
+
if (key !== dir && key.startsWith(prefix))
|
|
128
|
+
return true;
|
|
129
|
+
}
|
|
130
|
+
return false;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Grow or shrink a file's byte buffer to exactly `length`, zero-filling any
|
|
134
|
+
* extension. Callers validate `length >= 0` first.
|
|
135
|
+
*/
|
|
136
|
+
function resizeFileData(data, length) {
|
|
137
|
+
const next = new Uint8Array(length);
|
|
138
|
+
next.set(data.subarray(0, Math.min(length, data.byteLength)));
|
|
139
|
+
return next;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Move the entire subtree rooted at `src` to `dest`, overwriting any existing
|
|
143
|
+
* `dest` node. Every descendant key is re-parented so no old-prefix node is
|
|
144
|
+
* left orphaned, and open descriptors that referenced a moved path follow to
|
|
145
|
+
* the new location (a rename must not strand an fd's inode).
|
|
146
|
+
*/
|
|
147
|
+
function moveSubtree(src, dest) {
|
|
148
|
+
const srcPrefix = src + "/";
|
|
149
|
+
const moves = [];
|
|
150
|
+
for (const [key, node] of nodes) {
|
|
151
|
+
if (key === src)
|
|
152
|
+
moves.push([dest, node]);
|
|
153
|
+
else if (key.startsWith(srcPrefix))
|
|
154
|
+
moves.push([dest + "/" + key.slice(srcPrefix.length), node]);
|
|
155
|
+
}
|
|
156
|
+
// Delete the whole source subtree first so a nested overwrite cannot leave
|
|
157
|
+
// a stale descendant behind, then reinsert at the destination prefix. Any
|
|
158
|
+
// pre-existing `dest` node is replaced by the reinsert.
|
|
159
|
+
for (const key of [...nodes.keys()]) {
|
|
160
|
+
if (key === src || key.startsWith(srcPrefix))
|
|
161
|
+
nodes.delete(key);
|
|
162
|
+
}
|
|
163
|
+
for (const [key, node] of moves)
|
|
164
|
+
nodes.set(key, node);
|
|
165
|
+
for (const entry of fdTable.values()) {
|
|
166
|
+
if (entry.path === src)
|
|
167
|
+
entry.path = dest;
|
|
168
|
+
else if (entry.path.startsWith(srcPrefix))
|
|
169
|
+
entry.path = dest + "/" + entry.path.slice(srcPrefix.length);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
118
172
|
function mkdirp(p) {
|
|
119
173
|
const segments = normalize(p).split("/").filter(Boolean);
|
|
120
174
|
let cursor = "";
|
|
@@ -232,10 +286,8 @@ function createMemFS() {
|
|
|
232
286
|
console.error("[wasm]", line);
|
|
233
287
|
return buf.length;
|
|
234
288
|
}
|
|
235
|
-
// Open-file fds (>= 100): append to the underlying file.
|
|
236
|
-
// path
|
|
237
|
-
// stdout/stderr via /tmp/* temp files (os.Pipe is not implemented on
|
|
238
|
-
// js/wasm so we mirror its semantics via files).
|
|
289
|
+
// Open-file fds (>= 100): append to the underlying file. Browser-hosted
|
|
290
|
+
// tools use this path for ordinary virtual files and explicit outputs.
|
|
239
291
|
const entry = fdTable.get(fd);
|
|
240
292
|
if (entry) {
|
|
241
293
|
const node = nodes.get(entry.path);
|
|
@@ -439,10 +491,19 @@ function createMemFS() {
|
|
|
439
491
|
},
|
|
440
492
|
unlink(p, callback) {
|
|
441
493
|
const norm = normalize(p);
|
|
442
|
-
|
|
494
|
+
const node = nodes.get(norm);
|
|
495
|
+
if (!node) {
|
|
443
496
|
callback(new MemFSError_1.MemFSError("ENOENT", "unlink", norm));
|
|
444
497
|
return;
|
|
445
498
|
}
|
|
499
|
+
// POSIX unlink refuses directories (EISDIR/EPERM). Go's os.Remove tries
|
|
500
|
+
// unlink first and only falls back to rmdir when it fails, so a false
|
|
501
|
+
// success here would delete just the directory node and orphan every
|
|
502
|
+
// descendant. Reject so the rmdir path (which validates emptiness) runs.
|
|
503
|
+
if (node.kind === "dir") {
|
|
504
|
+
callback(new MemFSError_1.MemFSError("EISDIR", "unlink", norm));
|
|
505
|
+
return;
|
|
506
|
+
}
|
|
446
507
|
nodes.delete(norm);
|
|
447
508
|
callback(null);
|
|
448
509
|
},
|
|
@@ -453,13 +514,74 @@ function createMemFS() {
|
|
|
453
514
|
callback(new MemFSError_1.MemFSError("ENOENT", "rename", src));
|
|
454
515
|
return;
|
|
455
516
|
}
|
|
517
|
+
if (src === "/") {
|
|
518
|
+
callback(new MemFSError_1.MemFSError("EBUSY", "rename", src));
|
|
519
|
+
return;
|
|
520
|
+
}
|
|
456
521
|
const dest = normalize(to);
|
|
457
|
-
|
|
458
|
-
|
|
522
|
+
// Renaming a path onto itself is a defined no-op success.
|
|
523
|
+
if (src === dest) {
|
|
524
|
+
callback(null);
|
|
525
|
+
return;
|
|
526
|
+
}
|
|
527
|
+
// A directory cannot be moved inside itself or its own descendants.
|
|
528
|
+
if (node.kind === "dir" && dest.startsWith(src + "/")) {
|
|
529
|
+
callback(new MemFSError_1.MemFSError("EINVAL", "rename", src));
|
|
530
|
+
return;
|
|
531
|
+
}
|
|
532
|
+
// The destination's parent must already exist as a directory.
|
|
533
|
+
const parent = nodes.get(parentDir(dest));
|
|
534
|
+
if (!parent) {
|
|
535
|
+
callback(new MemFSError_1.MemFSError("ENOENT", "rename", dest));
|
|
536
|
+
return;
|
|
537
|
+
}
|
|
538
|
+
if (parent.kind !== "dir") {
|
|
539
|
+
callback(new MemFSError_1.MemFSError("ENOTDIR", "rename", dest));
|
|
540
|
+
return;
|
|
541
|
+
}
|
|
542
|
+
// Reconcile against an existing destination before mutating anything so a
|
|
543
|
+
// rejected rename leaves the tree untouched (no partial state).
|
|
544
|
+
const destNode = nodes.get(dest);
|
|
545
|
+
if (destNode) {
|
|
546
|
+
if (node.kind === "file") {
|
|
547
|
+
if (destNode.kind === "dir") {
|
|
548
|
+
callback(new MemFSError_1.MemFSError("EISDIR", "rename", dest));
|
|
549
|
+
return;
|
|
550
|
+
}
|
|
551
|
+
}
|
|
552
|
+
else if (destNode.kind !== "dir") {
|
|
553
|
+
callback(new MemFSError_1.MemFSError("ENOTDIR", "rename", dest));
|
|
554
|
+
return;
|
|
555
|
+
}
|
|
556
|
+
else if (hasChildren(dest)) {
|
|
557
|
+
callback(new MemFSError_1.MemFSError("ENOTEMPTY", "rename", dest));
|
|
558
|
+
return;
|
|
559
|
+
}
|
|
560
|
+
}
|
|
561
|
+
moveSubtree(src, dest);
|
|
459
562
|
callback(null);
|
|
460
563
|
},
|
|
461
564
|
rmdir(p, callback) {
|
|
462
|
-
|
|
565
|
+
const norm = normalize(p);
|
|
566
|
+
const node = nodes.get(norm);
|
|
567
|
+
if (!node) {
|
|
568
|
+
callback(new MemFSError_1.MemFSError("ENOENT", "rmdir", norm));
|
|
569
|
+
return;
|
|
570
|
+
}
|
|
571
|
+
if (node.kind !== "dir") {
|
|
572
|
+
callback(new MemFSError_1.MemFSError("ENOTDIR", "rmdir", norm));
|
|
573
|
+
return;
|
|
574
|
+
}
|
|
575
|
+
if (norm === "/") {
|
|
576
|
+
callback(new MemFSError_1.MemFSError("EBUSY", "rmdir", norm));
|
|
577
|
+
return;
|
|
578
|
+
}
|
|
579
|
+
if (hasChildren(norm)) {
|
|
580
|
+
callback(new MemFSError_1.MemFSError("ENOTEMPTY", "rmdir", norm));
|
|
581
|
+
return;
|
|
582
|
+
}
|
|
583
|
+
nodes.delete(norm);
|
|
584
|
+
callback(null);
|
|
463
585
|
},
|
|
464
586
|
chmod(_p, _mode, callback) {
|
|
465
587
|
callback(null);
|
|
@@ -488,10 +610,51 @@ function createMemFS() {
|
|
|
488
610
|
readlink(_p, callback) {
|
|
489
611
|
callback(new MemFSError_1.MemFSError("EINVAL", "readlink"), "");
|
|
490
612
|
},
|
|
491
|
-
truncate(
|
|
613
|
+
truncate(p, length, callback) {
|
|
614
|
+
const norm = normalize(p);
|
|
615
|
+
const node = nodes.get(norm);
|
|
616
|
+
if (!node) {
|
|
617
|
+
callback(new MemFSError_1.MemFSError("ENOENT", "truncate", norm));
|
|
618
|
+
return;
|
|
619
|
+
}
|
|
620
|
+
if (node.kind !== "file") {
|
|
621
|
+
callback(new MemFSError_1.MemFSError("EISDIR", "truncate", norm));
|
|
622
|
+
return;
|
|
623
|
+
}
|
|
624
|
+
if (!Number.isInteger(length) || length < 0) {
|
|
625
|
+
callback(new MemFSError_1.MemFSError("EINVAL", "truncate", norm));
|
|
626
|
+
return;
|
|
627
|
+
}
|
|
628
|
+
node.data = resizeFileData(node.data, length);
|
|
629
|
+
node.mtimeMs = Date.now();
|
|
492
630
|
callback(null);
|
|
493
631
|
},
|
|
494
|
-
ftruncate(
|
|
632
|
+
ftruncate(fd, length, callback) {
|
|
633
|
+
// Pipe ends and the reserved stdout/stderr fds have no truncatable file.
|
|
634
|
+
if (pipes.has(fd)) {
|
|
635
|
+
callback(new MemFSError_1.MemFSError("EINVAL", "ftruncate"));
|
|
636
|
+
return;
|
|
637
|
+
}
|
|
638
|
+
const entry = fdTable.get(fd);
|
|
639
|
+
if (!entry) {
|
|
640
|
+
callback(new MemFSError_1.MemFSError("EBADF", "ftruncate"));
|
|
641
|
+
return;
|
|
642
|
+
}
|
|
643
|
+
if (entry.isStdout || entry.isStderr) {
|
|
644
|
+
callback(new MemFSError_1.MemFSError("EINVAL", "ftruncate"));
|
|
645
|
+
return;
|
|
646
|
+
}
|
|
647
|
+
const node = nodes.get(entry.path);
|
|
648
|
+
if (!node || node.kind !== "file") {
|
|
649
|
+
callback(new MemFSError_1.MemFSError("EINVAL", "ftruncate", entry.path));
|
|
650
|
+
return;
|
|
651
|
+
}
|
|
652
|
+
if (!Number.isInteger(length) || length < 0) {
|
|
653
|
+
callback(new MemFSError_1.MemFSError("EINVAL", "ftruncate", entry.path));
|
|
654
|
+
return;
|
|
655
|
+
}
|
|
656
|
+
node.data = resizeFileData(node.data, length);
|
|
657
|
+
node.mtimeMs = Date.now();
|
|
495
658
|
callback(null);
|
|
496
659
|
},
|
|
497
660
|
pipe2(_flags, callback) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createMemFS.js","sourceRoot":"","sources":["../../src/createMemFS.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"createMemFS.js","sourceRoot":"","sources":["../../src/createMemFS.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -322,6 +322,16 @@ func GetCombinedNodeFlags(node *Node) NodeFlags {
|
|
|
322
322
|
return innerast.GetCombinedNodeFlags(node)
|
|
323
323
|
}
|
|
324
324
|
|
|
325
|
+
// IsConstAssertion reports whether node is an `as const` or `<const>`
|
|
326
|
+
// assertion. Unlike ordinary type assertions, a const assertion propagates
|
|
327
|
+
// its own contextual type to the asserted expression.
|
|
328
|
+
func IsConstAssertion(node *Node) bool { return innerast.IsConstAssertion(node) }
|
|
329
|
+
|
|
330
|
+
// IsPartOfTypeNode reports whether node belongs to syntax that is evaluated
|
|
331
|
+
// only by the type system. Lint rules use the upstream classifier so runtime
|
|
332
|
+
// reference analysis stays aligned with TypeScript's AST semantics.
|
|
333
|
+
func IsPartOfTypeNode(node *Node) bool { return innerast.IsPartOfTypeNode(node) }
|
|
334
|
+
|
|
325
335
|
// IsLet reports whether the declaration was introduced by `let` / `using`.
|
|
326
336
|
func IsLet(node *Node) bool { return GetCombinedNodeFlags(node)&NodeFlagsLet != 0 }
|
|
327
337
|
|
|
@@ -177,6 +177,42 @@ const (
|
|
|
177
177
|
ModifierFlagsReadonly = innerast.ModifierFlagsReadonly
|
|
178
178
|
)
|
|
179
179
|
|
|
180
|
+
// OperatorPrecedence members. The complete family is re-exported by hand so
|
|
181
|
+
// precedence comparisons (e.g. a lint fixer deciding whether a spliced
|
|
182
|
+
// replacement must be parenthesized) can name every level of the
|
|
183
|
+
// OperatorPrecedence type aliased in surface.go; a partial re-export would
|
|
184
|
+
// trip the shim_audit zero-tolerance enum gate.
|
|
185
|
+
const (
|
|
186
|
+
OperatorPrecedenceComma = innerast.OperatorPrecedenceComma
|
|
187
|
+
OperatorPrecedenceSpread = innerast.OperatorPrecedenceSpread
|
|
188
|
+
OperatorPrecedenceYield = innerast.OperatorPrecedenceYield
|
|
189
|
+
OperatorPrecedenceAssignment = innerast.OperatorPrecedenceAssignment
|
|
190
|
+
OperatorPrecedenceConditional = innerast.OperatorPrecedenceConditional
|
|
191
|
+
OperatorPrecedenceLogicalOR = innerast.OperatorPrecedenceLogicalOR
|
|
192
|
+
OperatorPrecedenceLogicalAND = innerast.OperatorPrecedenceLogicalAND
|
|
193
|
+
OperatorPrecedenceBitwiseOR = innerast.OperatorPrecedenceBitwiseOR
|
|
194
|
+
OperatorPrecedenceBitwiseXOR = innerast.OperatorPrecedenceBitwiseXOR
|
|
195
|
+
OperatorPrecedenceBitwiseAND = innerast.OperatorPrecedenceBitwiseAND
|
|
196
|
+
OperatorPrecedenceEquality = innerast.OperatorPrecedenceEquality
|
|
197
|
+
OperatorPrecedenceRelational = innerast.OperatorPrecedenceRelational
|
|
198
|
+
OperatorPrecedenceShift = innerast.OperatorPrecedenceShift
|
|
199
|
+
OperatorPrecedenceAdditive = innerast.OperatorPrecedenceAdditive
|
|
200
|
+
OperatorPrecedenceMultiplicative = innerast.OperatorPrecedenceMultiplicative
|
|
201
|
+
OperatorPrecedenceExponentiation = innerast.OperatorPrecedenceExponentiation
|
|
202
|
+
OperatorPrecedenceUnary = innerast.OperatorPrecedenceUnary
|
|
203
|
+
OperatorPrecedenceUpdate = innerast.OperatorPrecedenceUpdate
|
|
204
|
+
OperatorPrecedenceLeftHandSide = innerast.OperatorPrecedenceLeftHandSide
|
|
205
|
+
OperatorPrecedenceOptionalChain = innerast.OperatorPrecedenceOptionalChain
|
|
206
|
+
OperatorPrecedenceMember = innerast.OperatorPrecedenceMember
|
|
207
|
+
OperatorPrecedencePrimary = innerast.OperatorPrecedencePrimary
|
|
208
|
+
OperatorPrecedenceParentheses = innerast.OperatorPrecedenceParentheses
|
|
209
|
+
OperatorPrecedenceLowest = innerast.OperatorPrecedenceLowest
|
|
210
|
+
OperatorPrecedenceHighest = innerast.OperatorPrecedenceHighest
|
|
211
|
+
OperatorPrecedenceDisallowComma = innerast.OperatorPrecedenceDisallowComma
|
|
212
|
+
OperatorPrecedenceCoalesce = innerast.OperatorPrecedenceCoalesce
|
|
213
|
+
OperatorPrecedenceInvalid = innerast.OperatorPrecedenceInvalid
|
|
214
|
+
)
|
|
215
|
+
|
|
180
216
|
// NewNodeFactory creates an AST node factory with the supplied creation hooks.
|
|
181
217
|
// Pass a zero-value NodeFactoryHooks to get the default factory behaviour.
|
|
182
218
|
func NewNodeFactory(options NodeFactoryHooks) *NodeFactory {
|
|
@@ -195,6 +231,14 @@ func GetCombinedModifierFlags(node *Node) ModifierFlags {
|
|
|
195
231
|
return innerast.GetCombinedModifierFlags(node)
|
|
196
232
|
}
|
|
197
233
|
|
|
234
|
+
// GetExpressionPrecedence returns the operator precedence of an expression
|
|
235
|
+
// node — the level at which it binds relative to a surrounding expression.
|
|
236
|
+
// Callers compare it against an OperatorPrecedence floor to decide whether a
|
|
237
|
+
// textual splice of the expression into a new position needs parentheses.
|
|
238
|
+
func GetExpressionPrecedence(expression *Expression) OperatorPrecedence {
|
|
239
|
+
return innerast.GetExpressionPrecedence(expression)
|
|
240
|
+
}
|
|
241
|
+
|
|
198
242
|
// IsFunctionLike reports whether node is any function-like construct
|
|
199
243
|
// (function declaration, arrow function, method, constructor, accessor, etc.).
|
|
200
244
|
func IsFunctionLike(node *Node) bool {
|
|
@@ -15,6 +15,25 @@ const (
|
|
|
15
15
|
ElementFlagsNonRequired = innerchecker.ElementFlagsNonRequired
|
|
16
16
|
ElementFlagsNonRest = innerchecker.ElementFlagsNonRest
|
|
17
17
|
ElementFlagsVariable = innerchecker.ElementFlagsVariable
|
|
18
|
+
IterationTypeKindNext = innerchecker.IterationTypeKindNext
|
|
19
|
+
IterationTypeKindReturn = innerchecker.IterationTypeKindReturn
|
|
20
|
+
IterationUseAllowsAsyncIterablesFlag = innerchecker.IterationUseAllowsAsyncIterablesFlag
|
|
21
|
+
IterationUseAllowsStringInputFlag = innerchecker.IterationUseAllowsStringInputFlag
|
|
22
|
+
IterationUseAllowsSyncIterablesFlag = innerchecker.IterationUseAllowsSyncIterablesFlag
|
|
23
|
+
IterationUseAsyncGeneratorReturnType = innerchecker.IterationUseAsyncGeneratorReturnType
|
|
24
|
+
IterationUseAsyncYieldStar = innerchecker.IterationUseAsyncYieldStar
|
|
25
|
+
IterationUseCacheFlags = innerchecker.IterationUseCacheFlags
|
|
26
|
+
IterationUseDestructuring = innerchecker.IterationUseDestructuring
|
|
27
|
+
IterationUseDestructuringFlag = innerchecker.IterationUseDestructuringFlag
|
|
28
|
+
IterationUseForAwaitOf = innerchecker.IterationUseForAwaitOf
|
|
29
|
+
IterationUseForOf = innerchecker.IterationUseForOf
|
|
30
|
+
IterationUseForOfFlag = innerchecker.IterationUseForOfFlag
|
|
31
|
+
IterationUseGeneratorReturnType = innerchecker.IterationUseGeneratorReturnType
|
|
32
|
+
IterationUsePossiblyOutOfBounds = innerchecker.IterationUsePossiblyOutOfBounds
|
|
33
|
+
IterationUseSpread = innerchecker.IterationUseSpread
|
|
34
|
+
IterationUseSpreadFlag = innerchecker.IterationUseSpreadFlag
|
|
35
|
+
IterationUseYieldStar = innerchecker.IterationUseYieldStar
|
|
36
|
+
IterationUseYieldStarFlag = innerchecker.IterationUseYieldStarFlag
|
|
18
37
|
ObjectFlagsAnonymous = innerchecker.ObjectFlagsAnonymous
|
|
19
38
|
ObjectFlagsArrayLiteral = innerchecker.ObjectFlagsArrayLiteral
|
|
20
39
|
ObjectFlagsContainsIntersections = innerchecker.ObjectFlagsContainsIntersections
|
|
@@ -9,8 +9,11 @@
|
|
|
9
9
|
package checker
|
|
10
10
|
|
|
11
11
|
import (
|
|
12
|
+
"sync"
|
|
13
|
+
|
|
12
14
|
innerast "github.com/microsoft/typescript-go/internal/ast"
|
|
13
15
|
innerchecker "github.com/microsoft/typescript-go/internal/checker"
|
|
16
|
+
innerprinter "github.com/microsoft/typescript-go/internal/printer"
|
|
14
17
|
_ "unsafe"
|
|
15
18
|
)
|
|
16
19
|
|
|
@@ -22,6 +25,80 @@ type Type = innerchecker.Type
|
|
|
22
25
|
type TypeFlags = innerchecker.TypeFlags
|
|
23
26
|
type ObjectFlags = innerchecker.ObjectFlags
|
|
24
27
|
type ElementFlags = innerchecker.ElementFlags
|
|
28
|
+
type Program = innerchecker.Program
|
|
29
|
+
type Tracer = innerchecker.Tracer
|
|
30
|
+
|
|
31
|
+
// NewChecker creates a checker that owns its complete type graph for program.
|
|
32
|
+
// The returned mutex is the upstream checker-pool synchronization primitive;
|
|
33
|
+
// callers that share the checker must serialize access through it.
|
|
34
|
+
func NewChecker(program Program, tracer *Tracer) (*Checker, *sync.Mutex) {
|
|
35
|
+
return innerchecker.NewChecker(program, tracer)
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
//go:linkname checkerGetRegularTypeOfLiteralType github.com/microsoft/typescript-go/internal/checker.(*Checker).getRegularTypeOfLiteralType
|
|
39
|
+
func checkerGetRegularTypeOfLiteralType(recv *innerchecker.Checker, t *innerchecker.Type) *innerchecker.Type
|
|
40
|
+
|
|
41
|
+
// Checker_getRegularTypeOfLiteralType returns the canonical regular form of a
|
|
42
|
+
// literal type. TypeScript's checker uses this before comparing switch case
|
|
43
|
+
// types because a source literal's fresh type and a union member's regular type
|
|
44
|
+
// denote the same runtime value but have different pointers.
|
|
45
|
+
func Checker_getRegularTypeOfLiteralType(recv *innerchecker.Checker, t *innerchecker.Type) *innerchecker.Type {
|
|
46
|
+
if recv == nil || t == nil {
|
|
47
|
+
return t
|
|
48
|
+
}
|
|
49
|
+
return checkerGetRegularTypeOfLiteralType(recv, t)
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// Checker_typeToStringFullyQualified formats a type with the same stable,
|
|
53
|
+
// alias-aware flags TypeScript uses in diagnostics that name union members.
|
|
54
|
+
// Keeping the flag bundle inside the shim avoids leaking checker-internal enum
|
|
55
|
+
// types through consumer code.
|
|
56
|
+
func Checker_typeToStringFullyQualified(recv *innerchecker.Checker, t *innerchecker.Type, enclosingDeclaration *innerast.Node) string {
|
|
57
|
+
if recv == nil || t == nil {
|
|
58
|
+
return ""
|
|
59
|
+
}
|
|
60
|
+
return recv.TypeToStringEx(
|
|
61
|
+
t,
|
|
62
|
+
enclosingDeclaration,
|
|
63
|
+
innerchecker.TypeFormatFlagsAllowUniqueESSymbolType|
|
|
64
|
+
innerchecker.TypeFormatFlagsUseAliasDefinedOutsideCurrentScope|
|
|
65
|
+
innerchecker.TypeFormatFlagsUseFullyQualifiedType,
|
|
66
|
+
nil,
|
|
67
|
+
)
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// Checker_symbolToValueString formats a symbol as a value-position expression
|
|
71
|
+
// at enclosingDeclaration. AllowAnyNodeKind lets the checker emit indexed
|
|
72
|
+
// access for enum members whose names cannot use dot notation.
|
|
73
|
+
func Checker_symbolToValueString(recv *innerchecker.Checker, symbol *innerast.Symbol, enclosingDeclaration *innerast.Node) string {
|
|
74
|
+
if recv == nil || symbol == nil {
|
|
75
|
+
return ""
|
|
76
|
+
}
|
|
77
|
+
return recv.SymbolToStringEx(
|
|
78
|
+
symbol,
|
|
79
|
+
enclosingDeclaration,
|
|
80
|
+
innerast.SymbolFlagsValue,
|
|
81
|
+
innerchecker.SymbolFormatFlagsAllowAnyNodeKind,
|
|
82
|
+
)
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// Checker_isSymbolAccessibleAsValue verifies that SymbolToStringEx can name a
|
|
86
|
+
// symbol from enclosingDeclaration. Unlike GetAccessibleSymbolChain, the
|
|
87
|
+
// checker also follows containing enum, class, and namespace symbols, so a
|
|
88
|
+
// qualified member such as Domain.Mode.Done is accepted when its container is
|
|
89
|
+
// visible.
|
|
90
|
+
func Checker_isSymbolAccessibleAsValue(recv *innerchecker.Checker, symbol *innerast.Symbol, enclosingDeclaration *innerast.Node) bool {
|
|
91
|
+
if recv == nil || symbol == nil || enclosingDeclaration == nil {
|
|
92
|
+
return false
|
|
93
|
+
}
|
|
94
|
+
result := recv.IsSymbolAccessible(
|
|
95
|
+
symbol,
|
|
96
|
+
enclosingDeclaration,
|
|
97
|
+
innerast.SymbolFlagsValue,
|
|
98
|
+
false,
|
|
99
|
+
)
|
|
100
|
+
return result.Accessibility == innerprinter.SymbolAccessibilityAccessible
|
|
101
|
+
}
|
|
25
102
|
|
|
26
103
|
const (
|
|
27
104
|
SignatureKindCall = innerchecker.SignatureKindCall
|
|
@@ -110,6 +187,59 @@ func Checker_getTypeOfPropertyOfType(recv *innerchecker.Checker, t *innerchecker
|
|
|
110
187
|
return recv.GetTypeOfPropertyOfType(t, name)
|
|
111
188
|
}
|
|
112
189
|
|
|
190
|
+
//go:linkname checkerGetPropertyNameForKnownSymbolName github.com/microsoft/typescript-go/internal/checker.(*Checker).getPropertyNameForKnownSymbolName
|
|
191
|
+
func checkerGetPropertyNameForKnownSymbolName(recv *innerchecker.Checker, symbolName string) string
|
|
192
|
+
|
|
193
|
+
// Checker_getPropertyNameForKnownSymbolName returns the late-bound property
|
|
194
|
+
// name the checker uses for a member keyed by the global well-known symbol
|
|
195
|
+
// `Symbol.<symbolName>` (e.g. "asyncIterator", "asyncDispose", "iterator").
|
|
196
|
+
// It resolves the unique-symbol type of that property on the global
|
|
197
|
+
// `SymbolConstructor` — including lib-provided and `declare global` augmented
|
|
198
|
+
// members — so `(*Checker).GetPropertyOfType(t, name)` with the returned name
|
|
199
|
+
// finds exactly the members declared as `[Symbol.<symbolName>]`. This is the
|
|
200
|
+
// same resolution the checker itself performs when it validates `for await`
|
|
201
|
+
// iterability, which is why a lint rule that mirrors typescript-eslint's
|
|
202
|
+
// well-known-symbol protocol checks must go through it instead of matching
|
|
203
|
+
// property-name text. When the global `Symbol` constructor lacks the member,
|
|
204
|
+
// the checker's internal fallback name (a `\xFE@`-prefixed string no
|
|
205
|
+
// source-declared property can late-bind to) is returned, so lookups simply
|
|
206
|
+
// find nothing. Returns "" if recv is nil.
|
|
207
|
+
func Checker_getPropertyNameForKnownSymbolName(recv *innerchecker.Checker, symbolName string) string {
|
|
208
|
+
if recv == nil {
|
|
209
|
+
return ""
|
|
210
|
+
}
|
|
211
|
+
return checkerGetPropertyNameForKnownSymbolName(recv, symbolName)
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
//go:linkname checkerGetIterationTypeOfIterable github.com/microsoft/typescript-go/internal/checker.(*Checker).getIterationTypeOfIterable
|
|
215
|
+
func checkerGetIterationTypeOfIterable(
|
|
216
|
+
recv *innerchecker.Checker,
|
|
217
|
+
use innerchecker.IterationUse,
|
|
218
|
+
typeKind innerchecker.IterationTypeKind,
|
|
219
|
+
inputType *innerchecker.Type,
|
|
220
|
+
errorNode *innerast.Node,
|
|
221
|
+
) *innerchecker.Type
|
|
222
|
+
|
|
223
|
+
// Checker_getSynchronousIterationYieldType returns the value type produced by
|
|
224
|
+
// inputType's checked `[Symbol.iterator]` protocol. It delegates to the same
|
|
225
|
+
// TypeScript-Go traversal used for synchronous iteration, including inherited
|
|
226
|
+
// and structural iterables, instantiated iterator returns, intersections, and
|
|
227
|
+
// primitive strings. A nil result means the checker could not derive a valid
|
|
228
|
+
// synchronous iteration type. Diagnostics are intentionally disabled because
|
|
229
|
+
// callers use this as a type query after normal TypeScript checking.
|
|
230
|
+
func Checker_getSynchronousIterationYieldType(recv *innerchecker.Checker, inputType *innerchecker.Type) *innerchecker.Type {
|
|
231
|
+
if recv == nil || inputType == nil {
|
|
232
|
+
return nil
|
|
233
|
+
}
|
|
234
|
+
return checkerGetIterationTypeOfIterable(
|
|
235
|
+
recv,
|
|
236
|
+
innerchecker.IterationUseElement,
|
|
237
|
+
innerchecker.IterationTypeKindYield,
|
|
238
|
+
inputType,
|
|
239
|
+
nil,
|
|
240
|
+
)
|
|
241
|
+
}
|
|
242
|
+
|
|
113
243
|
//go:linkname checkerGetAliasSymbolForTypeNode github.com/microsoft/typescript-go/internal/checker.(*Checker).getAliasSymbolForTypeNode
|
|
114
244
|
func checkerGetAliasSymbolForTypeNode(recv *innerchecker.Checker, node *innerast.Node) *innerast.Symbol
|
|
115
245
|
|
|
@@ -30,6 +30,35 @@ const (
|
|
|
30
30
|
LintCategoryError
|
|
31
31
|
)
|
|
32
32
|
|
|
33
|
+
// NormalizeLintRange returns a renderer-safe half-open source span. Diagnostic
|
|
34
|
+
// producers are a plugin trust boundary, so offsets are clamped even when the
|
|
35
|
+
// caller's contract says they point inside the current file. Reversed and
|
|
36
|
+
// zero-width ranges select one byte when one exists at pos; EOF and empty-file
|
|
37
|
+
// ranges remain zero-width instead of manufacturing a byte past the source.
|
|
38
|
+
func NormalizeLintRange(file *ast.SourceFile, pos, end int) (int, int) {
|
|
39
|
+
if file == nil {
|
|
40
|
+
return 0, 0
|
|
41
|
+
}
|
|
42
|
+
sourceLen := len(file.Text())
|
|
43
|
+
if pos < 0 {
|
|
44
|
+
pos = 0
|
|
45
|
+
} else if pos > sourceLen {
|
|
46
|
+
pos = sourceLen
|
|
47
|
+
}
|
|
48
|
+
if end < 0 {
|
|
49
|
+
end = 0
|
|
50
|
+
} else if end > sourceLen {
|
|
51
|
+
end = sourceLen
|
|
52
|
+
}
|
|
53
|
+
if end <= pos {
|
|
54
|
+
end = pos
|
|
55
|
+
if pos < sourceLen {
|
|
56
|
+
end++
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return pos, end
|
|
60
|
+
}
|
|
61
|
+
|
|
33
62
|
// LintDiagnostic is a public, plugin-emittable diagnostic shaped like the
|
|
34
63
|
// `internal/diagnosticwriter.Diagnostic` interface. The internal type is
|
|
35
64
|
// unexported, so this is the only way to mix lint output with tsgo's own
|
|
@@ -47,9 +76,7 @@ type LintDiagnostic struct {
|
|
|
47
76
|
// supplied source file. `code` shows up in the rendered banner — the
|
|
48
77
|
// convention is to give each rule its own stable integer.
|
|
49
78
|
func NewLintDiagnostic(file *ast.SourceFile, pos, end int, code int32, category LintCategory, message string) *LintDiagnostic {
|
|
50
|
-
|
|
51
|
-
end = pos + 1
|
|
52
|
-
}
|
|
79
|
+
pos, end = NormalizeLintRange(file, pos, end)
|
|
53
80
|
return &LintDiagnostic{
|
|
54
81
|
file: file,
|
|
55
82
|
pos: pos,
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
package scanner
|
|
2
|
+
|
|
3
|
+
import (
|
|
4
|
+
"github.com/microsoft/typescript-go/internal/ast"
|
|
5
|
+
"github.com/microsoft/typescript-go/internal/diagnostics"
|
|
6
|
+
)
|
|
7
|
+
|
|
8
|
+
// IsValidRegularExpressionLiteral reports whether text is one complete,
|
|
9
|
+
// grammar-valid ECMAScript regular-expression literal. It deliberately uses
|
|
10
|
+
// typescript-go's own scanner and regexp parser so callers share the compiler's
|
|
11
|
+
// handling of escapes, flags, Unicode mode, and Unicode Sets syntax.
|
|
12
|
+
func IsValidRegularExpressionLiteral(text string) bool {
|
|
13
|
+
scanner := NewScanner()
|
|
14
|
+
valid := true
|
|
15
|
+
scanner.SetOnError(func(_ *diagnostics.Message, _, _ int, _ ...any) {
|
|
16
|
+
valid = false
|
|
17
|
+
})
|
|
18
|
+
scanner.SetText(text)
|
|
19
|
+
token := scanner.Scan()
|
|
20
|
+
if token != ast.KindSlashToken && token != ast.KindSlashEqualsToken {
|
|
21
|
+
return false
|
|
22
|
+
}
|
|
23
|
+
if scanner.ReScanSlashToken(true) != ast.KindRegularExpressionLiteral {
|
|
24
|
+
return false
|
|
25
|
+
}
|
|
26
|
+
return valid && scanner.TokenEnd() == len(text)
|
|
27
|
+
}
|