@tslite/checker 1.4.0 → 1.6.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/dist/chunk-RDCPWO2E.js +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +147 -10
- package/dist/index.d.ts +147 -10
- package/dist/index.js +1 -1
- package/dist/types/index.cjs +1 -1
- package/dist/types/index.d.cts +114 -7
- package/dist/types/index.d.ts +114 -7
- package/dist/types/index.js +1 -1
- package/package.json +6 -6
- package/dist/chunk-DFZOAHNG.js +0 -1
package/dist/index.d.cts
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import { Schema, Schemes, TypeScheme, ObjectSchema, Completion } from './types/index.cjs';
|
|
2
|
-
export { AnySchema, ApplySchema, ArraySchema, Bindings, DEFAULT_TYPE_LIMITS, Discovery, ElementFlag, FnSchema, GuardSig, INSTANTIATION_COUNT_LIMIT, INSTANTIATION_DEPTH_LIMIT, Incompatibility, IncompatibilityKind, IndexSchema, Instantiation, InstantiationLimitError, KeyofSchema, LiteralSchema, MappedSchema, OverloadSchema, Param, Prop, ScalarSchema, TYPE_EVAL_DEPTH_LIMIT, TupleSchema, TypeEvalLimitError, TypeEvalLimits, TypeForm, TypePosition, UnionSchema, UnionTooComplexError, UnknownSchema, VarCandidates,
|
|
1
|
+
import { VarSchema, Schema, Schemes, TypeScheme, ObjectSchema, Completion } from './types/index.cjs';
|
|
2
|
+
export { AnySchema, ApplySchema, ArraySchema, Bindings, DEFAULT_TYPE_LIMITS, Discovery, ElementFlag, FnSchema, GuardSig, INSTANTIATION_COUNT_LIMIT, INSTANTIATION_DEPTH_LIMIT, Incompatibility, IncompatibilityKind, IndexSchema, Instantiation, InstantiationLimitError, KeyofSchema, LiteralSchema, MappedSchema, OverloadSchema, Param, PathSegment, Prop, ScalarSchema, TYPE_EVAL_DEPTH_LIMIT, TupleSchema, TypeEvalLimitError, TypeEvalLimits, TypeForm, TypePosition, UnionSchema, UnionTooComplexError, UnknownSchema, VarCandidates, WriteKey, apparentType, asLiteralOrigin, baseLiteralType, bindTypeParams, comparable, configureTypeLimits, contravariantInference, covariantInference, discover, equals, erasedSignature, expand1, flagAt, format, formatTypeArgs, formatTypeDiff, freeVars, groundVars, inferFromCandidates, inferredTypes, instantiate, instantiateInContextOf, instantiateLoose, isMissingType, isNumericLiteralName, isObjectOrArrayLiteral, isScheme, isSerializable, isVariadicTuple, join, joinAll, missingType, normalizeUnion, ownProp, readonlyMember, renameTypeParams, resetInstantiationCount, resetTypeLimits, resolveConditional, resolveOp, resolveTypeOp, restIndex, restTypeAtPosition, s, sampleValue, silentNever, substitute, subtype, typeAtPosition, typeDiff, typeFeatures, typeLimits, typeNeedsParens, typeParamArity, unify, version, widen, widenInferred, widenLiteral, widenOrigin, widenType, withUndefined, withoutUndefined } from './types/index.cjs';
|
|
3
3
|
import { Scope as Scope$1, BaseNode, Node, types, SourceLocation, Expression } from '@tslite/ast';
|
|
4
4
|
import { CapabilityProfile, CompiledProfile } from '@tslite/capability';
|
|
5
5
|
import { Span } from '@tslite/language-service';
|
|
6
6
|
|
|
7
|
+
/** As declarações de tipo nominal: o nome e os type params, em ordem. */
|
|
8
|
+
type Nominals = Readonly<Record<string, readonly VarSchema[]>>;
|
|
9
|
+
|
|
7
10
|
/**
|
|
8
11
|
* Um nível de escopo léxico (nome → `Schema`), sobre o `Scope<T>` genérico do
|
|
9
12
|
* `ast` — a mesma cadeia que o `behavior` usa, com o payload do eixo de tipos.
|
|
@@ -73,6 +76,21 @@ interface Env {
|
|
|
73
76
|
* especificador) é da app (Proposal 005). Default: nenhum.
|
|
74
77
|
*/
|
|
75
78
|
readonly modules?: Readonly<Record<string, Schema>>;
|
|
79
|
+
/**
|
|
80
|
+
* Os aliases da **lib padrão** (`Partial`, `Pick`, `Record`, `Omit`, `ReturnType`…),
|
|
81
|
+
* o texto do `lib.es5.d.ts` do tsc 3.9.10 com o corte do TSLite (D79). Ficam ABAIXO
|
|
82
|
+
* de tudo: um tipo do host ou um alias do programa com o mesmo nome os sombreia.
|
|
83
|
+
* Vazio com `noLib`.
|
|
84
|
+
*/
|
|
85
|
+
readonly lib?: Schemes;
|
|
86
|
+
/**
|
|
87
|
+
* Os tipos **nominais** que um texto de tipo pode citar pelo nome: o nome e os type
|
|
88
|
+
* params de cada um. São os `interface` da lib (`Array`, `ReadonlyArray`, `Promise`)
|
|
89
|
+
* e os que o host declara (`Map`, `Element`…). Um nominal é o `apply` opaco (types
|
|
90
|
+
* TC2): o texto `Promise<User>` e o construtor `s.apply("Promise", [User])` são o
|
|
91
|
+
* mesmo tipo, e a aridade é cobrada como a de um alias.
|
|
92
|
+
*/
|
|
93
|
+
readonly nominals?: Nominals;
|
|
76
94
|
}
|
|
77
95
|
/**
|
|
78
96
|
* O que um `Env` tem além das variáveis. Cada campo espelha o de {@link Env}, e
|
|
@@ -85,6 +103,13 @@ interface EnvOptions {
|
|
|
85
103
|
readonly asserters?: ReadonlySet<string>;
|
|
86
104
|
readonly matchers?: ReadonlySet<string>;
|
|
87
105
|
readonly modules?: Readonly<Record<string, Schema>>;
|
|
106
|
+
/** Os nominais do host, somados aos da lib (ver {@link Env.nominals}). */
|
|
107
|
+
readonly nominals?: Nominals;
|
|
108
|
+
/**
|
|
109
|
+
* Sem a lib padrão — nem os aliases, nem os nominais dela. É o `--noLib` do tsc: os
|
|
110
|
+
* nomes da lib passam a ser `unknown-name`, como lá.
|
|
111
|
+
*/
|
|
112
|
+
readonly noLib?: boolean;
|
|
88
113
|
}
|
|
89
114
|
/**
|
|
90
115
|
* Um catálogo (`Record<string, Schema>`) passado no lugar das opções é o erro que a
|
|
@@ -114,7 +139,7 @@ declare const resolveNamed: (env: Env, name: string) => Schema | undefined;
|
|
|
114
139
|
declare const resolveScheme: (env: Env, name: string) => TypeScheme | undefined;
|
|
115
140
|
|
|
116
141
|
type Severity = "error" | "warning";
|
|
117
|
-
type DiagnosticCode = "not-assignable" | "unknown-name" | "not-callable" | "no-such-member" | "not-object" | "possibly-nullish" | "unknown-value" | "const-needs-init" | "cannot-redeclare" | "circular-type-alias" | "circular-type-annotation" | "unknown-module" | "not-a-schema" | "type-as-value" | "asserter-needs-name" | "shadows-schema" | "missing-argument" | "excess-argument" | "excess-property" | "spread-argument" | "required-after-optional" | "not-iterable" | "props-mismatch" | "no-matching-overload" | "constraint-violation" | "wrong-type-argument-count" | "unsupported" | "unused-name" | "assign-to-const" | "readonly-write" | "cast-unsound" | "unprovable-value" | "not-arithmetic-operand" | "operator-not-applicable" | "implicit-coercion" | "node-not-allowed" | "name-not-allowed" | "type-feature-not-allowed" | "any-not-allowed" | "narrowing-cast-not-allowed" | "too-deep" | "too-complex-union" | "too-large" | "wrong-result-type";
|
|
142
|
+
type DiagnosticCode = "not-assignable" | "unknown-name" | "not-callable" | "no-such-member" | "not-object" | "possibly-nullish" | "unknown-value" | "const-needs-init" | "cannot-redeclare" | "circular-type-alias" | "circular-type-annotation" | "unknown-module" | "not-a-schema" | "type-as-value" | "asserter-needs-name" | "shadows-schema" | "missing-argument" | "excess-argument" | "excess-property" | "spread-argument" | "required-after-optional" | "not-iterable" | "not-spreadable" | "overwritten-property" | "implicit-any" | "props-mismatch" | "no-matching-overload" | "constraint-violation" | "wrong-type-argument-count" | "unsupported" | "unused-name" | "assign-to-const" | "for-in-destructuring" | "readonly-write" | "cast-unsound" | "unprovable-value" | "not-arithmetic-operand" | "operator-not-applicable" | "implicit-coercion" | "node-not-allowed" | "name-not-allowed" | "type-feature-not-allowed" | "any-not-allowed" | "narrowing-cast-not-allowed" | "too-deep" | "too-complex-union" | "too-large" | "wrong-result-type";
|
|
118
143
|
/**
|
|
119
144
|
* A **classe** do diagnóstico — espelha a divisão de passes do `tsc` (que nós
|
|
120
145
|
* fundimos num walk só): `semantic` é o que o **binder** do tsc pega (validade do
|
|
@@ -162,6 +187,16 @@ type DiagnosticData = {
|
|
|
162
187
|
readonly kind: "implicit-coercion";
|
|
163
188
|
readonly textConvertible: boolean;
|
|
164
189
|
};
|
|
190
|
+
/**
|
|
191
|
+
* Outro lugar do programa que explica o diagnóstico — o `DiagnosticRelatedInformation` do
|
|
192
|
+
* tsc (`types.ts`), que o `addRelatedInfo` anexa, e o `relatedInformation` do LSP. O nó é
|
|
193
|
+
* por referência, como o do diagnóstico; a mensagem diz o papel dele ("This spread always
|
|
194
|
+
* overwrites this property.").
|
|
195
|
+
*/
|
|
196
|
+
interface DiagnosticRelatedInformation {
|
|
197
|
+
readonly node: BaseNode;
|
|
198
|
+
readonly message: string;
|
|
199
|
+
}
|
|
165
200
|
interface Diagnostic {
|
|
166
201
|
readonly code: DiagnosticCode;
|
|
167
202
|
/** A classe do diagnóstico (deriva do `code`) — ver {@link DiagnosticKind}. */
|
|
@@ -172,6 +207,8 @@ interface Diagnostic {
|
|
|
172
207
|
readonly message: string;
|
|
173
208
|
/** Ver {@link DiagnosticData}. Presente só onde há o que agir. */
|
|
174
209
|
readonly data?: DiagnosticData;
|
|
210
|
+
/** Ver {@link DiagnosticRelatedInformation}. Presente só onde o tsc a anexa. */
|
|
211
|
+
readonly relatedInformation?: readonly DiagnosticRelatedInformation[];
|
|
175
212
|
}
|
|
176
213
|
/**
|
|
177
214
|
* Builder genérico de diagnóstico (severidade configurável). Usado pelos
|
|
@@ -239,9 +276,75 @@ declare const diag: {
|
|
|
239
276
|
spreadArgument: (node: BaseNode) => Diagnostic;
|
|
240
277
|
requiredAfterOptional: (node: BaseNode) => Diagnostic;
|
|
241
278
|
notIterable: (node: BaseNode, type: Schema) => Diagnostic;
|
|
279
|
+
/**
|
|
280
|
+
* A fonte não se espalha: o `isValidSpreadType` do tsc (`checker.ts:23342`) a recusa. O
|
|
281
|
+
* código é o do conceito, par do `not-iterable` do padrão de array; a mensagem diz o caso.
|
|
282
|
+
*/
|
|
283
|
+
notSpreadable: {
|
|
284
|
+
/** TS2700: o rest de um padrão de objeto (`{ a, ...rest }`), no elemento do rest
|
|
285
|
+
* (`getTypeForBindingElement`, `checker.ts:7439`). D80. */
|
|
286
|
+
rest: (node: BaseNode) => Diagnostic;
|
|
287
|
+
/** TS2698: o spread num literal de objeto (`{ ...x }`), no membro `...x`
|
|
288
|
+
* (`checkObjectLiteral`, `checker.ts:23254`). */
|
|
289
|
+
spread: (node: BaseNode) => Diagnostic;
|
|
290
|
+
};
|
|
291
|
+
/**
|
|
292
|
+
* A chave escrita duas vezes num literal de objeto. O tsc a acusa por três mecanismos, e
|
|
293
|
+
* cada um é um diagnóstico com o texto e o nó dele; o conceito é um só, o do
|
|
294
|
+
* `cannot-redeclare` (D25).
|
|
295
|
+
*/
|
|
296
|
+
duplicateKey: {
|
|
297
|
+
/** TS1117: a chave IDENTIFICADOR repetida, no modo estrito (o `bindObjectLiteralExpression`
|
|
298
|
+
* do binder, `binder.ts:2037`), na repetição. */
|
|
299
|
+
strict: (node: BaseNode) => Diagnostic;
|
|
300
|
+
/** TS2300: o nome repetido (o `checkGrammarObjectLiteralExpression`), na repetição, com o
|
|
301
|
+
* texto do nome como escrito. */
|
|
302
|
+
identifier: (node: BaseNode, text: string) => Diagnostic;
|
|
303
|
+
/** TS2718: a chave computada ligada tarde com o nome de uma prop ligada cedo (o
|
|
304
|
+
* `lateBindMember`), na chave tardia. */
|
|
305
|
+
lateBound: (node: BaseNode, name: string) => Diagnostic;
|
|
306
|
+
/** TS2733: a primeira declaração ligada cedo desse nome, no mesmo `lateBindMember`. */
|
|
307
|
+
alsoDeclared: (node: BaseNode, name: string) => Diagnostic;
|
|
308
|
+
};
|
|
309
|
+
/**
|
|
310
|
+
* TS2783: a prop escrita num literal de objeto que um spread seguinte sempre sobrescreve,
|
|
311
|
+
* na prop escrita, com o spread na informação relacionada (TS2785) — o
|
|
312
|
+
* `checkSpreadPropOverrides` do tsc (`checker.ts:23558`).
|
|
313
|
+
*/
|
|
314
|
+
overwrittenProperty: (node: BaseNode, name: string, spread: BaseNode) => Diagnostic;
|
|
315
|
+
/**
|
|
316
|
+
* O `any` que ninguém escreveu — o `noImplicitAny` do tsc 3.9.10, que faz parte do
|
|
317
|
+
* `--strict` e está sempre ligado aqui (D81). Um código só, com o texto de cada caso (o
|
|
318
|
+
* `reportImplicitAny`, `checker.ts:18198`, e os sítios do acesso e do `let` evolving): o
|
|
319
|
+
* código é o conceito, a mensagem diz qual é o caso (D2), como o `possibly-nullish`.
|
|
320
|
+
*/
|
|
321
|
+
implicitAny: {
|
|
322
|
+
/** TS7006, no nome do parâmetro sem anotação e sem contexto. */
|
|
323
|
+
parameter: (node: BaseNode, name: string) => Diagnostic;
|
|
324
|
+
/** TS7019, no nome do rest sem anotação e sem contexto. */
|
|
325
|
+
rest: (node: BaseNode, name: string) => Diagnostic;
|
|
326
|
+
/** TS7031, em cada folha de um parâmetro-padrão sem anotação nem contexto. */
|
|
327
|
+
bindingElement: (node: BaseNode, name: string) => Diagnostic;
|
|
328
|
+
/** TS7034, no nome do `let` evolving que uma closure lê. */
|
|
329
|
+
evolving: (node: BaseNode, name: string) => Diagnostic;
|
|
330
|
+
/** TS7005, na leitura desse `let` dentro da closure. */
|
|
331
|
+
variable: (node: BaseNode, name: string) => Diagnostic;
|
|
332
|
+
/** TS7053, no acesso inteiro: a chave não indexa o objeto. */
|
|
333
|
+
index: (node: BaseNode, key: Schema, target: Schema) => Diagnostic;
|
|
334
|
+
/** TS7015, na chave: o objeto só tem índice numérico, e a chave não é número. */
|
|
335
|
+
indexNotNumber: (node: BaseNode) => Diagnostic;
|
|
336
|
+
};
|
|
337
|
+
/**
|
|
338
|
+
* A posição de um padrão de array além do comprimento de uma tupla — o TS2493 do tsc, no
|
|
339
|
+
* nome (`getPropertyTypeForIndexType`, `checker.ts:12886`). O código é o `no-such-member`,
|
|
340
|
+
* o mesmo do acesso `t[5]` (TC43): a posição é uma propriedade que a tupla não tem.
|
|
341
|
+
*/
|
|
342
|
+
tupleIndexOutOfRange: (node: BaseNode, tuple: Schema, length: number, index: number) => Diagnostic;
|
|
242
343
|
propsMismatch: (node: BaseNode, props: Schema, detail: string) => Diagnostic;
|
|
243
344
|
noMatchingOverload: (node: BaseNode, type: Schema, argTypes: readonly Schema[]) => Diagnostic;
|
|
244
|
-
|
|
345
|
+
/** O argumento de tipo fora do bound — o texto do TS2344 da tag, com a constraint no
|
|
346
|
+
* lugar do `{1}`. */
|
|
347
|
+
constraintViolation: (node: BaseNode, actual: Schema, bound: Schema) => Diagnostic;
|
|
245
348
|
unsupported: (node: BaseNode, what: string) => Diagnostic;
|
|
246
349
|
/**
|
|
247
350
|
* Argumento de tipo explícito com aridade errada. Assinatura **sem** type params
|
|
@@ -269,11 +372,25 @@ declare const diag: {
|
|
|
269
372
|
*/
|
|
270
373
|
assignToConst: (node: BaseNode, name: string, kind: "const" | "import") => Diagnostic;
|
|
271
374
|
/**
|
|
272
|
-
*
|
|
273
|
-
*
|
|
274
|
-
*
|
|
375
|
+
* As chaves de um `for…in` não cabem no alvo dele (`let n: number; for (n in o)`). É a
|
|
376
|
+
* relação que falha — o tipo das chaves contra o tipo declarado do alvo —, e por isso
|
|
377
|
+
* o código é o `not-assignable`; o texto é o do TS2405 (`checkForInStatement`).
|
|
378
|
+
*/
|
|
379
|
+
forInTarget: (node: BaseNode) => Diagnostic;
|
|
380
|
+
/** `for ([a] in o)` — o alvo de um `for…in` é uma chave, não se desestrutura. TS2491. */
|
|
381
|
+
forInDestructuring: (node: BaseNode) => Diagnostic;
|
|
382
|
+
/**
|
|
383
|
+
* Escrita por um ÍNDICE readonly — `readonly T[]` ou `{ readonly [k: string]: V }`. É
|
|
384
|
+
* a outra metade do modificador: a relação (TC29) diz quem pode ser ATRIBUÍDO a quem;
|
|
385
|
+
* isto diz quem pode ser ESCRITO. Texto do TS2542, no acesso inteiro. Os três casos de
|
|
386
|
+
* escrita recusada pelo `readonly` têm um código só (D77): o nó e o texto são os do tsc.
|
|
275
387
|
*/
|
|
276
388
|
readonlyWrite: (node: BaseNode, target: Schema) => Diagnostic;
|
|
389
|
+
/** Escrita numa PROPRIEDADE readonly — o TS2540, no nome (`o.a`) ou no argumento
|
|
390
|
+
* (`o["a"]`). O acesso vira o tipo-erro: a atribuição não é checada depois. D77. */
|
|
391
|
+
readonlyProperty: (node: BaseNode, name: string) => Diagnostic;
|
|
392
|
+
/** `delete` de uma PROPRIEDADE readonly — o TS2704, no operando. D77. */
|
|
393
|
+
readonlyDelete: (node: BaseNode) => Diagnostic;
|
|
277
394
|
/**
|
|
278
395
|
* Cast (`x as T`) entre tipos que não se sobrepõem na régua do tsc (`castOverlaps`:
|
|
279
396
|
* literal da origem alargado + comparabilidade). Erro, como o TS2352 — o texto é o
|
|
@@ -320,10 +437,23 @@ declare const diag: {
|
|
|
320
437
|
*/
|
|
321
438
|
notTextConvertible: (node: BaseNode, t: Schema) => Diagnostic;
|
|
322
439
|
};
|
|
323
|
-
/**
|
|
440
|
+
/**
|
|
441
|
+
* Coletor de diagnósticos — acumula durante o walk, sem `throw`.
|
|
442
|
+
*
|
|
443
|
+
* Guarda cada diagnóstico UMA vez: um segundo com o mesmo nó, o mesmo código, a mesma
|
|
444
|
+
* mensagem e a mesma informação relacionada não entra. É a coleção do tsc
|
|
445
|
+
* (`createDiagnosticCollection`, que insere pelo `insertSorted` e não repete o que o
|
|
446
|
+
* `compareDiagnostics` acha igual — ele compara também o `relatedInformation`), e é o que
|
|
447
|
+
* deixa um argumento ser tipado mais de uma vez — as rodadas da chamada (D53, D81) — sem
|
|
448
|
+
* que o erro de dentro dele saia duas vezes. Dois diagnósticos que só diferem na
|
|
449
|
+
* informação relacionada são dois: `{ a: 1, ...o1, ...o2 }` acusa o `a` uma vez por spread.
|
|
450
|
+
*/
|
|
324
451
|
interface DiagnosticSink {
|
|
325
|
-
/** Diagnósticos coletados, na ordem em que foram reportados. */
|
|
452
|
+
/** Diagnósticos coletados, na ordem em que foram reportados, sem repetição. */
|
|
326
453
|
readonly all: readonly Diagnostic[];
|
|
454
|
+
/** Quantas vezes o `report` foi chamado, as repetições inclusive: é o que responde "esta
|
|
455
|
+
* operação acusou algo?", mesmo quando o que ela acusou já tinha sido acusado. */
|
|
456
|
+
readonly reported: number;
|
|
327
457
|
report(d: Diagnostic): void;
|
|
328
458
|
/** `true` se há ao menos um diagnóstico de severidade `error`. */
|
|
329
459
|
hasErrors(): boolean;
|
|
@@ -380,6 +510,13 @@ interface CheckResult {
|
|
|
380
510
|
* paralelas divergem.
|
|
381
511
|
*/
|
|
382
512
|
readonly schemes: Schemes;
|
|
513
|
+
/**
|
|
514
|
+
* Os tipos NOMINAIS que um texto de tipo pode citar (`Promise`, `Array`, e os do
|
|
515
|
+
* host), com os type params de cada um — os que nenhum scheme sombreia. Publicado
|
|
516
|
+
* pela mesma razão dos `schemes`: é a outra metade do catálogo de nomes de tipo
|
|
517
|
+
* (D79).
|
|
518
|
+
*/
|
|
519
|
+
readonly nominals: Nominals;
|
|
383
520
|
}
|
|
384
521
|
/**
|
|
385
522
|
* Tipa `node` no ambiente `env` (a borda da DI: data, states, funções globais).
|
|
@@ -782,4 +919,4 @@ declare function anchorDiagnostics<A>(root: object, diagnostics: readonly Diagno
|
|
|
782
919
|
*/
|
|
783
920
|
declare function spanOf(text: string, loc: SourceLocation | null | undefined): Span | undefined;
|
|
784
921
|
|
|
785
|
-
export { type AnchorDiagnosticsOptions, type AnchoredDiagnostic, type Anchors, BINARY_OP, BINARY_OPS, type BinaryOpCategory, type BinaryOpSpec, type BindingMap, type CheckOptions, type CheckResult, type CheckerErrorCode, Completion, type Diagnostic, type DiagnosticCode, type DiagnosticData, type DiagnosticKind, type DiagnosticSink, type Env, type EnvOptions, FUNCTION_KINDS, type Guard, type GuardContext, LOGICAL_OPS, type LogicalOpSpec, type LowerValueOptions, type MissingProperty, ObjectSchema, type Occurrence, type OpResult, type Profile, type ReferenceSymbol, Schema, Schemes, type Scope, type Severity, type Shorthand, type TypeOverlay, type TypeRefSite, TypeScheme, UNARY_OPS, type UnaryOpSpec, type UnusedOptions, anchorDiagnostics, annotate, annotateReturn, asExpression, binaryOpsProducing, calleeAllowlist, capabilityNodes, check, childScope, collectBindings, collectMutations, collectReferences, collectUnused, componentProps, componentPropsOf, contextualTypeAt, createAnchors, createEnv, createSink, diag, diagnosticsAt, extractModuleType, fromCapability, guard, guardsFromCompiled, lookup, lowerValue, makeDiagnostic, maxArgs, maxCallNesting, maxDepth, maxFunctionNesting, maxNestingOf, maxNodes, memberCompletions, memberDepth, opResultSchema, resolveNamed, resolveScheme, resultType, rootScope, sameSymbol, scopeAt, scopeCompletions, spanOf, typeAt, unaryOpsProducing, visibleNames };
|
|
922
|
+
export { type AnchorDiagnosticsOptions, type AnchoredDiagnostic, type Anchors, BINARY_OP, BINARY_OPS, type BinaryOpCategory, type BinaryOpSpec, type BindingMap, type CheckOptions, type CheckResult, type CheckerErrorCode, Completion, type Diagnostic, type DiagnosticCode, type DiagnosticData, type DiagnosticKind, type DiagnosticRelatedInformation, type DiagnosticSink, type Env, type EnvOptions, FUNCTION_KINDS, type Guard, type GuardContext, LOGICAL_OPS, type LogicalOpSpec, type LowerValueOptions, type MissingProperty, type Nominals, ObjectSchema, type Occurrence, type OpResult, type Profile, type ReferenceSymbol, Schema, Schemes, type Scope, type Severity, type Shorthand, type TypeOverlay, type TypeRefSite, TypeScheme, UNARY_OPS, type UnaryOpSpec, type UnusedOptions, VarSchema, anchorDiagnostics, annotate, annotateReturn, asExpression, binaryOpsProducing, calleeAllowlist, capabilityNodes, check, childScope, collectBindings, collectMutations, collectReferences, collectUnused, componentProps, componentPropsOf, contextualTypeAt, createAnchors, createEnv, createSink, diag, diagnosticsAt, extractModuleType, fromCapability, guard, guardsFromCompiled, lookup, lowerValue, makeDiagnostic, maxArgs, maxCallNesting, maxDepth, maxFunctionNesting, maxNestingOf, maxNodes, memberCompletions, memberDepth, opResultSchema, resolveNamed, resolveScheme, resultType, rootScope, sameSymbol, scopeAt, scopeCompletions, spanOf, typeAt, unaryOpsProducing, visibleNames };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import { Schema, Schemes, TypeScheme, ObjectSchema, Completion } from './types/index.js';
|
|
2
|
-
export { AnySchema, ApplySchema, ArraySchema, Bindings, DEFAULT_TYPE_LIMITS, Discovery, ElementFlag, FnSchema, GuardSig, INSTANTIATION_COUNT_LIMIT, INSTANTIATION_DEPTH_LIMIT, Incompatibility, IncompatibilityKind, IndexSchema, Instantiation, InstantiationLimitError, KeyofSchema, LiteralSchema, MappedSchema, OverloadSchema, Param, Prop, ScalarSchema, TYPE_EVAL_DEPTH_LIMIT, TupleSchema, TypeEvalLimitError, TypeEvalLimits, TypeForm, TypePosition, UnionSchema, UnionTooComplexError, UnknownSchema, VarCandidates,
|
|
1
|
+
import { VarSchema, Schema, Schemes, TypeScheme, ObjectSchema, Completion } from './types/index.js';
|
|
2
|
+
export { AnySchema, ApplySchema, ArraySchema, Bindings, DEFAULT_TYPE_LIMITS, Discovery, ElementFlag, FnSchema, GuardSig, INSTANTIATION_COUNT_LIMIT, INSTANTIATION_DEPTH_LIMIT, Incompatibility, IncompatibilityKind, IndexSchema, Instantiation, InstantiationLimitError, KeyofSchema, LiteralSchema, MappedSchema, OverloadSchema, Param, PathSegment, Prop, ScalarSchema, TYPE_EVAL_DEPTH_LIMIT, TupleSchema, TypeEvalLimitError, TypeEvalLimits, TypeForm, TypePosition, UnionSchema, UnionTooComplexError, UnknownSchema, VarCandidates, WriteKey, apparentType, asLiteralOrigin, baseLiteralType, bindTypeParams, comparable, configureTypeLimits, contravariantInference, covariantInference, discover, equals, erasedSignature, expand1, flagAt, format, formatTypeArgs, formatTypeDiff, freeVars, groundVars, inferFromCandidates, inferredTypes, instantiate, instantiateInContextOf, instantiateLoose, isMissingType, isNumericLiteralName, isObjectOrArrayLiteral, isScheme, isSerializable, isVariadicTuple, join, joinAll, missingType, normalizeUnion, ownProp, readonlyMember, renameTypeParams, resetInstantiationCount, resetTypeLimits, resolveConditional, resolveOp, resolveTypeOp, restIndex, restTypeAtPosition, s, sampleValue, silentNever, substitute, subtype, typeAtPosition, typeDiff, typeFeatures, typeLimits, typeNeedsParens, typeParamArity, unify, version, widen, widenInferred, widenLiteral, widenOrigin, widenType, withUndefined, withoutUndefined } from './types/index.js';
|
|
3
3
|
import { Scope as Scope$1, BaseNode, Node, types, SourceLocation, Expression } from '@tslite/ast';
|
|
4
4
|
import { CapabilityProfile, CompiledProfile } from '@tslite/capability';
|
|
5
5
|
import { Span } from '@tslite/language-service';
|
|
6
6
|
|
|
7
|
+
/** As declarações de tipo nominal: o nome e os type params, em ordem. */
|
|
8
|
+
type Nominals = Readonly<Record<string, readonly VarSchema[]>>;
|
|
9
|
+
|
|
7
10
|
/**
|
|
8
11
|
* Um nível de escopo léxico (nome → `Schema`), sobre o `Scope<T>` genérico do
|
|
9
12
|
* `ast` — a mesma cadeia que o `behavior` usa, com o payload do eixo de tipos.
|
|
@@ -73,6 +76,21 @@ interface Env {
|
|
|
73
76
|
* especificador) é da app (Proposal 005). Default: nenhum.
|
|
74
77
|
*/
|
|
75
78
|
readonly modules?: Readonly<Record<string, Schema>>;
|
|
79
|
+
/**
|
|
80
|
+
* Os aliases da **lib padrão** (`Partial`, `Pick`, `Record`, `Omit`, `ReturnType`…),
|
|
81
|
+
* o texto do `lib.es5.d.ts` do tsc 3.9.10 com o corte do TSLite (D79). Ficam ABAIXO
|
|
82
|
+
* de tudo: um tipo do host ou um alias do programa com o mesmo nome os sombreia.
|
|
83
|
+
* Vazio com `noLib`.
|
|
84
|
+
*/
|
|
85
|
+
readonly lib?: Schemes;
|
|
86
|
+
/**
|
|
87
|
+
* Os tipos **nominais** que um texto de tipo pode citar pelo nome: o nome e os type
|
|
88
|
+
* params de cada um. São os `interface` da lib (`Array`, `ReadonlyArray`, `Promise`)
|
|
89
|
+
* e os que o host declara (`Map`, `Element`…). Um nominal é o `apply` opaco (types
|
|
90
|
+
* TC2): o texto `Promise<User>` e o construtor `s.apply("Promise", [User])` são o
|
|
91
|
+
* mesmo tipo, e a aridade é cobrada como a de um alias.
|
|
92
|
+
*/
|
|
93
|
+
readonly nominals?: Nominals;
|
|
76
94
|
}
|
|
77
95
|
/**
|
|
78
96
|
* O que um `Env` tem além das variáveis. Cada campo espelha o de {@link Env}, e
|
|
@@ -85,6 +103,13 @@ interface EnvOptions {
|
|
|
85
103
|
readonly asserters?: ReadonlySet<string>;
|
|
86
104
|
readonly matchers?: ReadonlySet<string>;
|
|
87
105
|
readonly modules?: Readonly<Record<string, Schema>>;
|
|
106
|
+
/** Os nominais do host, somados aos da lib (ver {@link Env.nominals}). */
|
|
107
|
+
readonly nominals?: Nominals;
|
|
108
|
+
/**
|
|
109
|
+
* Sem a lib padrão — nem os aliases, nem os nominais dela. É o `--noLib` do tsc: os
|
|
110
|
+
* nomes da lib passam a ser `unknown-name`, como lá.
|
|
111
|
+
*/
|
|
112
|
+
readonly noLib?: boolean;
|
|
88
113
|
}
|
|
89
114
|
/**
|
|
90
115
|
* Um catálogo (`Record<string, Schema>`) passado no lugar das opções é o erro que a
|
|
@@ -114,7 +139,7 @@ declare const resolveNamed: (env: Env, name: string) => Schema | undefined;
|
|
|
114
139
|
declare const resolveScheme: (env: Env, name: string) => TypeScheme | undefined;
|
|
115
140
|
|
|
116
141
|
type Severity = "error" | "warning";
|
|
117
|
-
type DiagnosticCode = "not-assignable" | "unknown-name" | "not-callable" | "no-such-member" | "not-object" | "possibly-nullish" | "unknown-value" | "const-needs-init" | "cannot-redeclare" | "circular-type-alias" | "circular-type-annotation" | "unknown-module" | "not-a-schema" | "type-as-value" | "asserter-needs-name" | "shadows-schema" | "missing-argument" | "excess-argument" | "excess-property" | "spread-argument" | "required-after-optional" | "not-iterable" | "props-mismatch" | "no-matching-overload" | "constraint-violation" | "wrong-type-argument-count" | "unsupported" | "unused-name" | "assign-to-const" | "readonly-write" | "cast-unsound" | "unprovable-value" | "not-arithmetic-operand" | "operator-not-applicable" | "implicit-coercion" | "node-not-allowed" | "name-not-allowed" | "type-feature-not-allowed" | "any-not-allowed" | "narrowing-cast-not-allowed" | "too-deep" | "too-complex-union" | "too-large" | "wrong-result-type";
|
|
142
|
+
type DiagnosticCode = "not-assignable" | "unknown-name" | "not-callable" | "no-such-member" | "not-object" | "possibly-nullish" | "unknown-value" | "const-needs-init" | "cannot-redeclare" | "circular-type-alias" | "circular-type-annotation" | "unknown-module" | "not-a-schema" | "type-as-value" | "asserter-needs-name" | "shadows-schema" | "missing-argument" | "excess-argument" | "excess-property" | "spread-argument" | "required-after-optional" | "not-iterable" | "not-spreadable" | "overwritten-property" | "implicit-any" | "props-mismatch" | "no-matching-overload" | "constraint-violation" | "wrong-type-argument-count" | "unsupported" | "unused-name" | "assign-to-const" | "for-in-destructuring" | "readonly-write" | "cast-unsound" | "unprovable-value" | "not-arithmetic-operand" | "operator-not-applicable" | "implicit-coercion" | "node-not-allowed" | "name-not-allowed" | "type-feature-not-allowed" | "any-not-allowed" | "narrowing-cast-not-allowed" | "too-deep" | "too-complex-union" | "too-large" | "wrong-result-type";
|
|
118
143
|
/**
|
|
119
144
|
* A **classe** do diagnóstico — espelha a divisão de passes do `tsc` (que nós
|
|
120
145
|
* fundimos num walk só): `semantic` é o que o **binder** do tsc pega (validade do
|
|
@@ -162,6 +187,16 @@ type DiagnosticData = {
|
|
|
162
187
|
readonly kind: "implicit-coercion";
|
|
163
188
|
readonly textConvertible: boolean;
|
|
164
189
|
};
|
|
190
|
+
/**
|
|
191
|
+
* Outro lugar do programa que explica o diagnóstico — o `DiagnosticRelatedInformation` do
|
|
192
|
+
* tsc (`types.ts`), que o `addRelatedInfo` anexa, e o `relatedInformation` do LSP. O nó é
|
|
193
|
+
* por referência, como o do diagnóstico; a mensagem diz o papel dele ("This spread always
|
|
194
|
+
* overwrites this property.").
|
|
195
|
+
*/
|
|
196
|
+
interface DiagnosticRelatedInformation {
|
|
197
|
+
readonly node: BaseNode;
|
|
198
|
+
readonly message: string;
|
|
199
|
+
}
|
|
165
200
|
interface Diagnostic {
|
|
166
201
|
readonly code: DiagnosticCode;
|
|
167
202
|
/** A classe do diagnóstico (deriva do `code`) — ver {@link DiagnosticKind}. */
|
|
@@ -172,6 +207,8 @@ interface Diagnostic {
|
|
|
172
207
|
readonly message: string;
|
|
173
208
|
/** Ver {@link DiagnosticData}. Presente só onde há o que agir. */
|
|
174
209
|
readonly data?: DiagnosticData;
|
|
210
|
+
/** Ver {@link DiagnosticRelatedInformation}. Presente só onde o tsc a anexa. */
|
|
211
|
+
readonly relatedInformation?: readonly DiagnosticRelatedInformation[];
|
|
175
212
|
}
|
|
176
213
|
/**
|
|
177
214
|
* Builder genérico de diagnóstico (severidade configurável). Usado pelos
|
|
@@ -239,9 +276,75 @@ declare const diag: {
|
|
|
239
276
|
spreadArgument: (node: BaseNode) => Diagnostic;
|
|
240
277
|
requiredAfterOptional: (node: BaseNode) => Diagnostic;
|
|
241
278
|
notIterable: (node: BaseNode, type: Schema) => Diagnostic;
|
|
279
|
+
/**
|
|
280
|
+
* A fonte não se espalha: o `isValidSpreadType` do tsc (`checker.ts:23342`) a recusa. O
|
|
281
|
+
* código é o do conceito, par do `not-iterable` do padrão de array; a mensagem diz o caso.
|
|
282
|
+
*/
|
|
283
|
+
notSpreadable: {
|
|
284
|
+
/** TS2700: o rest de um padrão de objeto (`{ a, ...rest }`), no elemento do rest
|
|
285
|
+
* (`getTypeForBindingElement`, `checker.ts:7439`). D80. */
|
|
286
|
+
rest: (node: BaseNode) => Diagnostic;
|
|
287
|
+
/** TS2698: o spread num literal de objeto (`{ ...x }`), no membro `...x`
|
|
288
|
+
* (`checkObjectLiteral`, `checker.ts:23254`). */
|
|
289
|
+
spread: (node: BaseNode) => Diagnostic;
|
|
290
|
+
};
|
|
291
|
+
/**
|
|
292
|
+
* A chave escrita duas vezes num literal de objeto. O tsc a acusa por três mecanismos, e
|
|
293
|
+
* cada um é um diagnóstico com o texto e o nó dele; o conceito é um só, o do
|
|
294
|
+
* `cannot-redeclare` (D25).
|
|
295
|
+
*/
|
|
296
|
+
duplicateKey: {
|
|
297
|
+
/** TS1117: a chave IDENTIFICADOR repetida, no modo estrito (o `bindObjectLiteralExpression`
|
|
298
|
+
* do binder, `binder.ts:2037`), na repetição. */
|
|
299
|
+
strict: (node: BaseNode) => Diagnostic;
|
|
300
|
+
/** TS2300: o nome repetido (o `checkGrammarObjectLiteralExpression`), na repetição, com o
|
|
301
|
+
* texto do nome como escrito. */
|
|
302
|
+
identifier: (node: BaseNode, text: string) => Diagnostic;
|
|
303
|
+
/** TS2718: a chave computada ligada tarde com o nome de uma prop ligada cedo (o
|
|
304
|
+
* `lateBindMember`), na chave tardia. */
|
|
305
|
+
lateBound: (node: BaseNode, name: string) => Diagnostic;
|
|
306
|
+
/** TS2733: a primeira declaração ligada cedo desse nome, no mesmo `lateBindMember`. */
|
|
307
|
+
alsoDeclared: (node: BaseNode, name: string) => Diagnostic;
|
|
308
|
+
};
|
|
309
|
+
/**
|
|
310
|
+
* TS2783: a prop escrita num literal de objeto que um spread seguinte sempre sobrescreve,
|
|
311
|
+
* na prop escrita, com o spread na informação relacionada (TS2785) — o
|
|
312
|
+
* `checkSpreadPropOverrides` do tsc (`checker.ts:23558`).
|
|
313
|
+
*/
|
|
314
|
+
overwrittenProperty: (node: BaseNode, name: string, spread: BaseNode) => Diagnostic;
|
|
315
|
+
/**
|
|
316
|
+
* O `any` que ninguém escreveu — o `noImplicitAny` do tsc 3.9.10, que faz parte do
|
|
317
|
+
* `--strict` e está sempre ligado aqui (D81). Um código só, com o texto de cada caso (o
|
|
318
|
+
* `reportImplicitAny`, `checker.ts:18198`, e os sítios do acesso e do `let` evolving): o
|
|
319
|
+
* código é o conceito, a mensagem diz qual é o caso (D2), como o `possibly-nullish`.
|
|
320
|
+
*/
|
|
321
|
+
implicitAny: {
|
|
322
|
+
/** TS7006, no nome do parâmetro sem anotação e sem contexto. */
|
|
323
|
+
parameter: (node: BaseNode, name: string) => Diagnostic;
|
|
324
|
+
/** TS7019, no nome do rest sem anotação e sem contexto. */
|
|
325
|
+
rest: (node: BaseNode, name: string) => Diagnostic;
|
|
326
|
+
/** TS7031, em cada folha de um parâmetro-padrão sem anotação nem contexto. */
|
|
327
|
+
bindingElement: (node: BaseNode, name: string) => Diagnostic;
|
|
328
|
+
/** TS7034, no nome do `let` evolving que uma closure lê. */
|
|
329
|
+
evolving: (node: BaseNode, name: string) => Diagnostic;
|
|
330
|
+
/** TS7005, na leitura desse `let` dentro da closure. */
|
|
331
|
+
variable: (node: BaseNode, name: string) => Diagnostic;
|
|
332
|
+
/** TS7053, no acesso inteiro: a chave não indexa o objeto. */
|
|
333
|
+
index: (node: BaseNode, key: Schema, target: Schema) => Diagnostic;
|
|
334
|
+
/** TS7015, na chave: o objeto só tem índice numérico, e a chave não é número. */
|
|
335
|
+
indexNotNumber: (node: BaseNode) => Diagnostic;
|
|
336
|
+
};
|
|
337
|
+
/**
|
|
338
|
+
* A posição de um padrão de array além do comprimento de uma tupla — o TS2493 do tsc, no
|
|
339
|
+
* nome (`getPropertyTypeForIndexType`, `checker.ts:12886`). O código é o `no-such-member`,
|
|
340
|
+
* o mesmo do acesso `t[5]` (TC43): a posição é uma propriedade que a tupla não tem.
|
|
341
|
+
*/
|
|
342
|
+
tupleIndexOutOfRange: (node: BaseNode, tuple: Schema, length: number, index: number) => Diagnostic;
|
|
242
343
|
propsMismatch: (node: BaseNode, props: Schema, detail: string) => Diagnostic;
|
|
243
344
|
noMatchingOverload: (node: BaseNode, type: Schema, argTypes: readonly Schema[]) => Diagnostic;
|
|
244
|
-
|
|
345
|
+
/** O argumento de tipo fora do bound — o texto do TS2344 da tag, com a constraint no
|
|
346
|
+
* lugar do `{1}`. */
|
|
347
|
+
constraintViolation: (node: BaseNode, actual: Schema, bound: Schema) => Diagnostic;
|
|
245
348
|
unsupported: (node: BaseNode, what: string) => Diagnostic;
|
|
246
349
|
/**
|
|
247
350
|
* Argumento de tipo explícito com aridade errada. Assinatura **sem** type params
|
|
@@ -269,11 +372,25 @@ declare const diag: {
|
|
|
269
372
|
*/
|
|
270
373
|
assignToConst: (node: BaseNode, name: string, kind: "const" | "import") => Diagnostic;
|
|
271
374
|
/**
|
|
272
|
-
*
|
|
273
|
-
*
|
|
274
|
-
*
|
|
375
|
+
* As chaves de um `for…in` não cabem no alvo dele (`let n: number; for (n in o)`). É a
|
|
376
|
+
* relação que falha — o tipo das chaves contra o tipo declarado do alvo —, e por isso
|
|
377
|
+
* o código é o `not-assignable`; o texto é o do TS2405 (`checkForInStatement`).
|
|
378
|
+
*/
|
|
379
|
+
forInTarget: (node: BaseNode) => Diagnostic;
|
|
380
|
+
/** `for ([a] in o)` — o alvo de um `for…in` é uma chave, não se desestrutura. TS2491. */
|
|
381
|
+
forInDestructuring: (node: BaseNode) => Diagnostic;
|
|
382
|
+
/**
|
|
383
|
+
* Escrita por um ÍNDICE readonly — `readonly T[]` ou `{ readonly [k: string]: V }`. É
|
|
384
|
+
* a outra metade do modificador: a relação (TC29) diz quem pode ser ATRIBUÍDO a quem;
|
|
385
|
+
* isto diz quem pode ser ESCRITO. Texto do TS2542, no acesso inteiro. Os três casos de
|
|
386
|
+
* escrita recusada pelo `readonly` têm um código só (D77): o nó e o texto são os do tsc.
|
|
275
387
|
*/
|
|
276
388
|
readonlyWrite: (node: BaseNode, target: Schema) => Diagnostic;
|
|
389
|
+
/** Escrita numa PROPRIEDADE readonly — o TS2540, no nome (`o.a`) ou no argumento
|
|
390
|
+
* (`o["a"]`). O acesso vira o tipo-erro: a atribuição não é checada depois. D77. */
|
|
391
|
+
readonlyProperty: (node: BaseNode, name: string) => Diagnostic;
|
|
392
|
+
/** `delete` de uma PROPRIEDADE readonly — o TS2704, no operando. D77. */
|
|
393
|
+
readonlyDelete: (node: BaseNode) => Diagnostic;
|
|
277
394
|
/**
|
|
278
395
|
* Cast (`x as T`) entre tipos que não se sobrepõem na régua do tsc (`castOverlaps`:
|
|
279
396
|
* literal da origem alargado + comparabilidade). Erro, como o TS2352 — o texto é o
|
|
@@ -320,10 +437,23 @@ declare const diag: {
|
|
|
320
437
|
*/
|
|
321
438
|
notTextConvertible: (node: BaseNode, t: Schema) => Diagnostic;
|
|
322
439
|
};
|
|
323
|
-
/**
|
|
440
|
+
/**
|
|
441
|
+
* Coletor de diagnósticos — acumula durante o walk, sem `throw`.
|
|
442
|
+
*
|
|
443
|
+
* Guarda cada diagnóstico UMA vez: um segundo com o mesmo nó, o mesmo código, a mesma
|
|
444
|
+
* mensagem e a mesma informação relacionada não entra. É a coleção do tsc
|
|
445
|
+
* (`createDiagnosticCollection`, que insere pelo `insertSorted` e não repete o que o
|
|
446
|
+
* `compareDiagnostics` acha igual — ele compara também o `relatedInformation`), e é o que
|
|
447
|
+
* deixa um argumento ser tipado mais de uma vez — as rodadas da chamada (D53, D81) — sem
|
|
448
|
+
* que o erro de dentro dele saia duas vezes. Dois diagnósticos que só diferem na
|
|
449
|
+
* informação relacionada são dois: `{ a: 1, ...o1, ...o2 }` acusa o `a` uma vez por spread.
|
|
450
|
+
*/
|
|
324
451
|
interface DiagnosticSink {
|
|
325
|
-
/** Diagnósticos coletados, na ordem em que foram reportados. */
|
|
452
|
+
/** Diagnósticos coletados, na ordem em que foram reportados, sem repetição. */
|
|
326
453
|
readonly all: readonly Diagnostic[];
|
|
454
|
+
/** Quantas vezes o `report` foi chamado, as repetições inclusive: é o que responde "esta
|
|
455
|
+
* operação acusou algo?", mesmo quando o que ela acusou já tinha sido acusado. */
|
|
456
|
+
readonly reported: number;
|
|
327
457
|
report(d: Diagnostic): void;
|
|
328
458
|
/** `true` se há ao menos um diagnóstico de severidade `error`. */
|
|
329
459
|
hasErrors(): boolean;
|
|
@@ -380,6 +510,13 @@ interface CheckResult {
|
|
|
380
510
|
* paralelas divergem.
|
|
381
511
|
*/
|
|
382
512
|
readonly schemes: Schemes;
|
|
513
|
+
/**
|
|
514
|
+
* Os tipos NOMINAIS que um texto de tipo pode citar (`Promise`, `Array`, e os do
|
|
515
|
+
* host), com os type params de cada um — os que nenhum scheme sombreia. Publicado
|
|
516
|
+
* pela mesma razão dos `schemes`: é a outra metade do catálogo de nomes de tipo
|
|
517
|
+
* (D79).
|
|
518
|
+
*/
|
|
519
|
+
readonly nominals: Nominals;
|
|
383
520
|
}
|
|
384
521
|
/**
|
|
385
522
|
* Tipa `node` no ambiente `env` (a borda da DI: data, states, funções globais).
|
|
@@ -782,4 +919,4 @@ declare function anchorDiagnostics<A>(root: object, diagnostics: readonly Diagno
|
|
|
782
919
|
*/
|
|
783
920
|
declare function spanOf(text: string, loc: SourceLocation | null | undefined): Span | undefined;
|
|
784
921
|
|
|
785
|
-
export { type AnchorDiagnosticsOptions, type AnchoredDiagnostic, type Anchors, BINARY_OP, BINARY_OPS, type BinaryOpCategory, type BinaryOpSpec, type BindingMap, type CheckOptions, type CheckResult, type CheckerErrorCode, Completion, type Diagnostic, type DiagnosticCode, type DiagnosticData, type DiagnosticKind, type DiagnosticSink, type Env, type EnvOptions, FUNCTION_KINDS, type Guard, type GuardContext, LOGICAL_OPS, type LogicalOpSpec, type LowerValueOptions, type MissingProperty, ObjectSchema, type Occurrence, type OpResult, type Profile, type ReferenceSymbol, Schema, Schemes, type Scope, type Severity, type Shorthand, type TypeOverlay, type TypeRefSite, TypeScheme, UNARY_OPS, type UnaryOpSpec, type UnusedOptions, anchorDiagnostics, annotate, annotateReturn, asExpression, binaryOpsProducing, calleeAllowlist, capabilityNodes, check, childScope, collectBindings, collectMutations, collectReferences, collectUnused, componentProps, componentPropsOf, contextualTypeAt, createAnchors, createEnv, createSink, diag, diagnosticsAt, extractModuleType, fromCapability, guard, guardsFromCompiled, lookup, lowerValue, makeDiagnostic, maxArgs, maxCallNesting, maxDepth, maxFunctionNesting, maxNestingOf, maxNodes, memberCompletions, memberDepth, opResultSchema, resolveNamed, resolveScheme, resultType, rootScope, sameSymbol, scopeAt, scopeCompletions, spanOf, typeAt, unaryOpsProducing, visibleNames };
|
|
922
|
+
export { type AnchorDiagnosticsOptions, type AnchoredDiagnostic, type Anchors, BINARY_OP, BINARY_OPS, type BinaryOpCategory, type BinaryOpSpec, type BindingMap, type CheckOptions, type CheckResult, type CheckerErrorCode, Completion, type Diagnostic, type DiagnosticCode, type DiagnosticData, type DiagnosticKind, type DiagnosticRelatedInformation, type DiagnosticSink, type Env, type EnvOptions, FUNCTION_KINDS, type Guard, type GuardContext, LOGICAL_OPS, type LogicalOpSpec, type LowerValueOptions, type MissingProperty, type Nominals, ObjectSchema, type Occurrence, type OpResult, type Profile, type ReferenceSymbol, Schema, Schemes, type Scope, type Severity, type Shorthand, type TypeOverlay, type TypeRefSite, TypeScheme, UNARY_OPS, type UnaryOpSpec, type UnusedOptions, VarSchema, anchorDiagnostics, annotate, annotateReturn, asExpression, binaryOpsProducing, calleeAllowlist, capabilityNodes, check, childScope, collectBindings, collectMutations, collectReferences, collectUnused, componentProps, componentPropsOf, contextualTypeAt, createAnchors, createEnv, createSink, diag, diagnosticsAt, extractModuleType, fromCapability, guard, guardsFromCompiled, lookup, lowerValue, makeDiagnostic, maxArgs, maxCallNesting, maxDepth, maxFunctionNesting, maxNestingOf, maxNodes, memberCompletions, memberDepth, opResultSchema, resolveNamed, resolveScheme, resultType, rootScope, sameSymbol, scopeAt, scopeCompletions, spanOf, typeAt, unaryOpsProducing, visibleNames };
|