skir-internal 0.2.4 → 0.2.6

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/types.d.ts CHANGED
@@ -51,6 +51,12 @@ export interface Token {
51
51
  readonly colNumber: number;
52
52
  }
53
53
  export type Casing = "lowerCamel" | "lower_underscore" | "UpperCamel" | "UPPER_UNDERSCORE";
54
+ export interface Range {
55
+ /** Measured in number of characters from the start of the module. */
56
+ readonly start: number;
57
+ /** Measured in number of characters from the start of the module. */
58
+ readonly end: number;
59
+ }
54
60
  /** A user error in a module. */
55
61
  export type SkirError = {
56
62
  readonly token: Token;
@@ -149,8 +155,8 @@ export interface MutableFieldPath<Mutable extends boolean = true> {
149
155
  /** The type used to key every item: either a primitive or an enum. */
150
156
  keyType: PrimitiveType | ResolvedRecordRef;
151
157
  }
152
- export type FieldPath<Mutable extends boolean = boolean> = Mutable extends true ? MutableFieldPath : Readonly<MutableFieldPath<false>>;
153
- export interface ArrayType<Type = ResolvedType, Mutable extends boolean = boolean> {
158
+ export type FieldPath<Mutable extends boolean = false> = Mutable extends true ? MutableFieldPath : Readonly<MutableFieldPath<false>>;
159
+ export interface ArrayType<Type = ResolvedType, Mutable extends boolean = false> {
154
160
  readonly kind: "array";
155
161
  readonly item: Type;
156
162
  /**
@@ -177,7 +183,7 @@ export type UnresolvedType = PrimitiveType | UnresolvedRecordRef | UnresolvedArr
177
183
  * When Mutable is true, the optional field path of an array type can be
178
184
  * modified.
179
185
  */
180
- export type ResolvedType<Mutable extends boolean = boolean> = PrimitiveType | ResolvedRecordRef | ArrayType<ResolvedType, Mutable> | OptionalType<ResolvedType<Mutable>>;
186
+ export type ResolvedType<Mutable extends boolean = false> = PrimitiveType | ResolvedRecordRef | ArrayType<ResolvedType, Mutable> | OptionalType<ResolvedType<Mutable>>;
181
187
  export type MutableResolvedType = ResolvedType<true>;
182
188
  /**
183
189
  * A field in a struct or a variant in an enum.
@@ -192,6 +198,11 @@ export interface MutableField<Mutable extends boolean = true> {
192
198
  readonly doc: Doc<Mutable>;
193
199
  /** May only be undefined if the field is a constant in an enum. */
194
200
  readonly unresolvedType: UnresolvedType | undefined;
201
+ /**
202
+ * Set if the type of the field/variant is a record declared inline:
203
+ * bar: struct Bar { ... };
204
+ */
205
+ readonly inlineRecord: Record<Mutable> | undefined;
195
206
  /** May only be undefined if the field is a constant in an enum. */
196
207
  type: ResolvedType<Mutable> | undefined;
197
208
  /**
@@ -211,11 +222,6 @@ export interface MutableField<Mutable extends boolean = true> {
211
222
  * enum I { h: H; } // "soft"
212
223
  */
213
224
  isRecursive: false | "soft" | "hard";
214
- /**
215
- * Set if the type of the field/variant is a record declared inline:
216
- * bar: struct Bar { ... };
217
- */
218
- inlineRecord: Record<Mutable> | undefined;
219
225
  }
220
226
  /**
221
227
  * A field in a struct or a variant in an enum.
@@ -223,7 +229,7 @@ export interface MutableField<Mutable extends boolean = true> {
223
229
  * structure, so they are represented using the same interface and we use the
224
230
  * name 'field' for simplicity.
225
231
  */
226
- export type Field<Mutable extends boolean = boolean> = Mutable extends true ? MutableField : Readonly<MutableField<false>>;
232
+ export type Field<Mutable extends boolean = false> = Mutable extends true ? MutableField : Readonly<MutableField<false>>;
227
233
  /** A 'removed' declaration in a struct or enum. */
228
234
  export interface Removed {
229
235
  readonly kind: "removed";
@@ -232,10 +238,10 @@ export interface Removed {
232
238
  readonly numbers: readonly number[];
233
239
  }
234
240
  /** A declaration within a record. */
235
- export type RecordLevelDeclaration<Mutable extends boolean = boolean> = Field | Removed | Record<Mutable>;
241
+ export type RecordLevelDeclaration<Mutable extends boolean = false> = Field<Mutable> | Removed | Record<Mutable>;
236
242
  export type MutableRecordLevelDeclaration = RecordLevelDeclaration<true>;
237
243
  /** Definition of a struct or enum type. */
238
- export interface Record<Mutable extends boolean = boolean> {
244
+ export interface Record<Mutable extends boolean = false> {
239
245
  readonly kind: "record";
240
246
  /** Uniquely identifies the record within the module set. */
241
247
  readonly key: RecordKey;
@@ -277,31 +283,40 @@ export interface MutableImport {
277
283
  readonly importedNames: Token[];
278
284
  /** The token corresponding to the quoted string. */
279
285
  readonly modulePath: Token;
286
+ readonly range: Range;
280
287
  resolvedModulePath?: string;
281
288
  }
282
- export type Import<Mutable extends boolean = boolean> = Mutable extends true ? MutableImport : Readonly<MutableImport>;
289
+ export type Import<Mutable extends boolean = false> = Mutable extends true ? MutableImport : Readonly<MutableImport>;
283
290
  export interface MutableImportAlias {
284
291
  readonly kind: "import-alias";
285
292
  /** The alias. */
286
293
  readonly name: Token;
287
294
  /** The token corresponding to the quoted string. */
288
295
  readonly modulePath: Token;
296
+ readonly range: Range;
289
297
  resolvedModulePath?: string;
290
298
  }
291
- export type ImportAlias<Mutable extends boolean = boolean> = Mutable extends true ? MutableImportAlias : Readonly<MutableImportAlias>;
299
+ export type ImportAlias<Mutable extends boolean = false> = Mutable extends true ? MutableImportAlias : Readonly<MutableImportAlias>;
292
300
  export interface MutableMethod<Mutable extends boolean = true> {
293
301
  readonly kind: "method";
294
302
  readonly name: Token;
295
303
  readonly doc: Doc<Mutable>;
296
304
  readonly unresolvedRequestType: UnresolvedType;
297
- readonly unresolvedResponseType: UnresolvedType;
305
+ readonly inlineRequestRecord: Record<Mutable> | undefined;
298
306
  requestType: ResolvedType<Mutable> | undefined;
307
+ readonly unresolvedResponseType: UnresolvedType;
308
+ readonly inlineResponseRecord: Record<Mutable> | undefined;
299
309
  responseType: ResolvedType<Mutable> | undefined;
300
310
  readonly number: number;
301
- inlineRequestRecord: Record<Mutable> | undefined;
302
- inlineResponseRecord: Record<Mutable> | undefined;
303
311
  }
304
- export type Method<Mutable extends boolean = boolean> = Mutable extends true ? MutableMethod : Readonly<MutableMethod<false>>;
312
+ export type Method<Mutable extends boolean = false> = Mutable extends true ? MutableMethod : Readonly<MutableMethod<false>>;
313
+ export interface BrokenMethod {
314
+ readonly kind: "broken-method";
315
+ readonly unresolvedRequestType: UnresolvedType;
316
+ readonly inlineRequestRecord: MutableRecord | undefined;
317
+ readonly unresolvedResponseType: UnresolvedType | undefined;
318
+ readonly inlineResponseRecord: MutableRecord | undefined;
319
+ }
305
320
  /** A `const` declaration. */
306
321
  export interface MutableConstant<Mutable extends boolean = true> {
307
322
  readonly kind: "constant";
@@ -312,7 +327,11 @@ export interface MutableConstant<Mutable extends boolean = true> {
312
327
  readonly value: Value;
313
328
  valueAsDenseJson: DenseJson | undefined;
314
329
  }
315
- export type Constant<Mutable extends boolean = boolean> = Mutable extends true ? MutableConstant : Readonly<MutableConstant<false>>;
330
+ export type Constant<Mutable extends boolean = false> = Mutable extends true ? MutableConstant : Readonly<MutableConstant<false>>;
331
+ export interface BrokenConstant {
332
+ readonly kind: "broken-constant";
333
+ readonly unresolvedType: UnresolvedType;
334
+ }
316
335
  /** A name:value entry of an object. */
317
336
  export interface MutableObjectEntry<Mutable extends boolean = true> {
318
337
  readonly name: Token;
@@ -323,7 +342,7 @@ export interface MutableObjectEntry<Mutable extends boolean = true> {
323
342
  */
324
343
  fieldDeclaration?: Field;
325
344
  }
326
- export type ObjectEntry<Mutable extends boolean = boolean> = Mutable extends true ? MutableObjectEntry : Readonly<MutableObjectEntry<false>>;
345
+ export type ObjectEntry<Mutable extends boolean = false> = Mutable extends true ? MutableObjectEntry : Readonly<MutableObjectEntry<false>>;
327
346
  /** An object value, for example `{r: 255, g: 0, b: 0}`. */
328
347
  export interface MutableObjectValue<Mutable extends boolean = true> {
329
348
  readonly kind: "object";
@@ -331,10 +350,12 @@ export interface MutableObjectValue<Mutable extends boolean = true> {
331
350
  readonly entries: Readonly<{
332
351
  [f: string]: ObjectEntry<Mutable>;
333
352
  }>;
353
+ /** Broken entries containing a name only. */
354
+ readonly orphanNames: ReadonlyArray<Token>;
334
355
  readonly partial: boolean;
335
356
  record?: Record;
336
357
  }
337
- export type ObjectValue<Mutable extends boolean = boolean> = Mutable extends true ? MutableObjectValue : Readonly<MutableObjectValue<false>>;
358
+ export type ObjectValue<Mutable extends boolean = false> = Mutable extends true ? MutableObjectValue : Readonly<MutableObjectValue<false>>;
338
359
  /** An array value, for example `[0, 1, 2]`. */
339
360
  export interface MutableArrayValue<Mutable extends boolean = true> {
340
361
  readonly kind: "array";
@@ -342,7 +363,7 @@ export interface MutableArrayValue<Mutable extends boolean = true> {
342
363
  readonly items: ReadonlyArray<Value<Mutable>>;
343
364
  key?: FieldPath | undefined;
344
365
  }
345
- export type ArrayValue<Mutable extends boolean = boolean> = Mutable extends true ? MutableArrayValue : Readonly<MutableArrayValue<false>>;
366
+ export type ArrayValue<Mutable extends boolean = false> = Mutable extends true ? MutableArrayValue : Readonly<MutableArrayValue<false>>;
346
367
  /** One of: a quoted string, a number, `true`, `false`. */
347
368
  export interface MutableLiteralValue {
348
369
  readonly kind: "literal";
@@ -354,9 +375,9 @@ export interface MutableLiteralValue {
354
375
  kind: "null";
355
376
  };
356
377
  }
357
- export type LiteralValue<Mutable extends boolean = boolean> = Mutable extends true ? MutableLiteralValue : Readonly<MutableLiteralValue>;
378
+ export type LiteralValue<Mutable extends boolean = false> = Mutable extends true ? MutableLiteralValue : Readonly<MutableLiteralValue>;
358
379
  /** The value on the right side of the `=` symbol of a `const` declaration. */
359
- export type Value<Mutable extends boolean = boolean> = ObjectValue<Mutable> | ArrayValue<Mutable> | LiteralValue<Mutable>;
380
+ export type Value<Mutable extends boolean = false> = ObjectValue<Mutable> | ArrayValue<Mutable> | LiteralValue<Mutable>;
360
381
  export type MutableValue = Value<true>;
361
382
  /** Result of serializing a skir value to dense JSON format. */
362
383
  export type DenseJson = null | boolean | number | string | readonly DenseJson[];
@@ -364,20 +385,20 @@ export type DenseJson = null | boolean | number | string | readonly DenseJson[];
364
385
  * User-written documentation associated with a declaration.
365
386
  * Result of parsing the doc comments.
366
387
  */
367
- export interface Doc<Mutable extends boolean = boolean> {
388
+ export interface Doc<Mutable extends boolean = false> {
368
389
  /** The whole text including references. */
369
390
  text: string;
370
391
  /** The whole text split into pieces. */
371
392
  pieces: readonly DocPiece<Mutable>[];
372
393
  }
373
394
  export type MutableDoc = Doc<true>;
374
- export type DocPiece<Mutable extends boolean = boolean> = {
395
+ export type DocPiece<Mutable extends boolean = false> = {
375
396
  kind: "text";
376
397
  text: string;
377
398
  } | DocReference<Mutable>;
378
399
  export type MutableDocPiece = DocPiece<true>;
379
400
  /** Reference to a field or variant within a record. */
380
- export interface RecordField<Mutable extends boolean = boolean> {
401
+ export interface RecordField<Mutable extends boolean = false> {
381
402
  readonly kind: "field";
382
403
  readonly record: Record;
383
404
  readonly field: Field<Mutable>;
@@ -397,24 +418,24 @@ export interface MutableDocReference<Mutable extends boolean = true> {
397
418
  referee: Record | Method | Constant | RecordField | undefined;
398
419
  }
399
420
  /** Reference to a symbol from a doc comment ( [...] ). */
400
- export type DocReference<Mutable extends boolean = boolean> = Mutable extends true ? MutableDocReference : Readonly<MutableDocReference<boolean>>;
421
+ export type DocReference<Mutable extends boolean = false> = Mutable extends true ? MutableDocReference : Readonly<MutableDocReference<boolean>>;
401
422
  export interface MutableDocReferenceName {
402
423
  readonly token: Token;
403
424
  /** What declaration the name refers to. */
404
425
  declaration: Constant | Field | ImportAlias | Method | Record | undefined;
405
426
  }
406
427
  /** One single name found in a reference in a doc comment ( [...] ). */
407
- export type DocReferenceName<Mutable extends boolean = boolean> = Mutable extends true ? MutableDocReferenceName : Readonly<MutableDocReferenceName>;
428
+ export type DocReferenceName<Mutable extends boolean = false> = Mutable extends true ? MutableDocReferenceName : Readonly<MutableDocReferenceName>;
408
429
  /** A declaration which can appear at the top-level of a module. */
409
- export type ModuleLevelDeclaration<Mutable extends boolean = boolean> = Record<Mutable> | Import<Mutable> | ImportAlias<Mutable> | Method<Mutable> | Constant<Mutable>;
430
+ export type ModuleLevelDeclaration<Mutable extends boolean = false> = Record<Mutable> | Import<Mutable> | ImportAlias<Mutable> | Method<Mutable> | Constant<Mutable>;
410
431
  export type MutableModuleLevelDeclaration = ModuleLevelDeclaration<true>;
411
- export type Declaration<Mutable extends boolean = boolean> = RecordLevelDeclaration<Mutable> | ModuleLevelDeclaration<Mutable>;
432
+ export type Declaration<Mutable extends boolean = false> = RecordLevelDeclaration<Mutable> | ModuleLevelDeclaration<Mutable>;
412
433
  export type MutableDeclaration = Declaration<true>;
413
434
  /**
414
435
  * Contains the definition of a record and information about where the record
415
436
  * was defined.
416
437
  */
417
- export interface RecordLocation<Mutable extends boolean = boolean> {
438
+ export interface RecordLocation<Mutable extends boolean = false> {
418
439
  readonly kind: "record-location";
419
440
  readonly record: Record<Mutable>;
420
441
  /**
@@ -433,7 +454,7 @@ export type ImportedNames = {
433
454
  kind: "some";
434
455
  names: ReadonlySet<string>;
435
456
  };
436
- export interface Module<Mutable extends boolean = boolean> {
457
+ export interface Module<Mutable extends boolean = false> {
437
458
  readonly kind: "module";
438
459
  readonly path: string;
439
460
  readonly sourceCode: string;
@@ -448,13 +469,20 @@ export interface Module<Mutable extends boolean = boolean> {
448
469
  readonly pathToImportedNames: {
449
470
  [path: string]: ImportedNames;
450
471
  };
472
+ /**
473
+ * Smallest range including all import declarations.
474
+ * Null if there is no import declaration.
475
+ */
476
+ readonly importBlockRange: Range | null;
451
477
  /**
452
478
  * All the record declared in the module, at the top-level or not.
453
479
  * Depth-first: "Foo.Bar" will appear before "Foo".
454
480
  */
455
481
  readonly records: Mutable extends true ? MutableRecordLocation[] : readonly RecordLocation[];
456
482
  readonly methods: ReadonlyArray<Method<Mutable>>;
483
+ readonly brokenMethods: Mutable extends true ? ReadonlyArray<BrokenMethod> : unknown;
457
484
  readonly constants: ReadonlyArray<Constant<Mutable>>;
485
+ readonly brokenConstants: Mutable extends true ? ReadonlyArray<BrokenConstant> : unknown;
458
486
  }
459
487
  /** Can be assigned to a `Module`. */
460
488
  export type MutableModule = Module<true>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skir-internal",
3
- "version": "0.2.4",
3
+ "version": "0.2.6",
4
4
  "description": "",
5
5
  "homepage": "https://github.com/gepheum/skir-internal#readme",
6
6
  "bugs": {
package/src/types.ts CHANGED
@@ -71,6 +71,13 @@ export type Casing =
71
71
  | "UpperCamel"
72
72
  | "UPPER_UNDERSCORE";
73
73
 
74
+ export interface Range {
75
+ /** Measured in number of characters from the start of the module. */
76
+ readonly start: number;
77
+ /** Measured in number of characters from the start of the module. */
78
+ readonly end: number;
79
+ }
80
+
74
81
  // -----------------------------------------------------------------------------
75
82
  // ERROR HANDLING
76
83
  // -----------------------------------------------------------------------------
@@ -205,14 +212,14 @@ export interface MutableFieldPath<Mutable extends boolean = true> {
205
212
  keyType: PrimitiveType | ResolvedRecordRef;
206
213
  }
207
214
 
208
- export type FieldPath<Mutable extends boolean = boolean> = //
215
+ export type FieldPath<Mutable extends boolean = false> = //
209
216
  Mutable extends true //
210
217
  ? MutableFieldPath
211
218
  : Readonly<MutableFieldPath<false>>;
212
219
 
213
220
  export interface ArrayType<
214
221
  Type = ResolvedType,
215
- Mutable extends boolean = boolean,
222
+ Mutable extends boolean = false,
216
223
  > {
217
224
  readonly kind: "array";
218
225
  readonly item: Type;
@@ -248,7 +255,7 @@ export type UnresolvedType =
248
255
  * When Mutable is true, the optional field path of an array type can be
249
256
  * modified.
250
257
  */
251
- export type ResolvedType<Mutable extends boolean = boolean> =
258
+ export type ResolvedType<Mutable extends boolean = false> =
252
259
  | PrimitiveType
253
260
  | ResolvedRecordRef
254
261
  | ArrayType<ResolvedType, Mutable>
@@ -269,6 +276,11 @@ export interface MutableField<Mutable extends boolean = true> {
269
276
  readonly doc: Doc<Mutable>;
270
277
  /** May only be undefined if the field is a constant in an enum. */
271
278
  readonly unresolvedType: UnresolvedType | undefined;
279
+ /**
280
+ * Set if the type of the field/variant is a record declared inline:
281
+ * bar: struct Bar { ... };
282
+ */
283
+ readonly inlineRecord: Record<Mutable> | undefined;
272
284
  /** May only be undefined if the field is a constant in an enum. */
273
285
  type: ResolvedType<Mutable> | undefined;
274
286
  /**
@@ -288,11 +300,6 @@ export interface MutableField<Mutable extends boolean = true> {
288
300
  * enum I { h: H; } // "soft"
289
301
  */
290
302
  isRecursive: false | "soft" | "hard";
291
- /**
292
- * Set if the type of the field/variant is a record declared inline:
293
- * bar: struct Bar { ... };
294
- */
295
- inlineRecord: Record<Mutable> | undefined;
296
303
  }
297
304
 
298
305
  /**
@@ -301,7 +308,7 @@ export interface MutableField<Mutable extends boolean = true> {
301
308
  * structure, so they are represented using the same interface and we use the
302
309
  * name 'field' for simplicity.
303
310
  */
304
- export type Field<Mutable extends boolean = boolean> = //
311
+ export type Field<Mutable extends boolean = false> = //
305
312
  Mutable extends true ? MutableField : Readonly<MutableField<false>>;
306
313
 
307
314
  /** A 'removed' declaration in a struct or enum. */
@@ -313,15 +320,15 @@ export interface Removed {
313
320
  }
314
321
 
315
322
  /** A declaration within a record. */
316
- export type RecordLevelDeclaration<Mutable extends boolean = boolean> =
317
- | Field
323
+ export type RecordLevelDeclaration<Mutable extends boolean = false> =
324
+ | Field<Mutable>
318
325
  | Removed
319
326
  | Record<Mutable>;
320
327
 
321
328
  export type MutableRecordLevelDeclaration = RecordLevelDeclaration<true>;
322
329
 
323
330
  /** Definition of a struct or enum type. */
324
- export interface Record<Mutable extends boolean = boolean> {
331
+ export interface Record<Mutable extends boolean = false> {
325
332
  readonly kind: "record";
326
333
  /** Uniquely identifies the record within the module set. */
327
334
  readonly key: RecordKey;
@@ -363,10 +370,11 @@ export interface MutableImport {
363
370
  readonly importedNames: Token[];
364
371
  /** The token corresponding to the quoted string. */
365
372
  readonly modulePath: Token;
373
+ readonly range: Range;
366
374
  resolvedModulePath?: string;
367
375
  }
368
376
 
369
- export type Import<Mutable extends boolean = boolean> = Mutable extends true
377
+ export type Import<Mutable extends boolean = false> = Mutable extends true
370
378
  ? MutableImport
371
379
  : Readonly<MutableImport>;
372
380
 
@@ -376,30 +384,40 @@ export interface MutableImportAlias {
376
384
  readonly name: Token;
377
385
  /** The token corresponding to the quoted string. */
378
386
  readonly modulePath: Token;
387
+ readonly range: Range;
379
388
  resolvedModulePath?: string;
380
389
  }
381
390
 
382
- export type ImportAlias<Mutable extends boolean = boolean> =
383
- Mutable extends true ? MutableImportAlias : Readonly<MutableImportAlias>;
391
+ export type ImportAlias<Mutable extends boolean = false> = Mutable extends true
392
+ ? MutableImportAlias
393
+ : Readonly<MutableImportAlias>;
384
394
 
385
395
  export interface MutableMethod<Mutable extends boolean = true> {
386
396
  readonly kind: "method";
387
397
  readonly name: Token;
388
398
  readonly doc: Doc<Mutable>;
389
399
  readonly unresolvedRequestType: UnresolvedType;
390
- readonly unresolvedResponseType: UnresolvedType;
400
+ readonly inlineRequestRecord: Record<Mutable> | undefined;
391
401
  requestType: ResolvedType<Mutable> | undefined;
402
+ readonly unresolvedResponseType: UnresolvedType;
403
+ readonly inlineResponseRecord: Record<Mutable> | undefined;
392
404
  responseType: ResolvedType<Mutable> | undefined;
393
405
  // A hash of the name, or the explicit number specified after "=" if any.
394
406
  // In the uint32 range.
395
407
  readonly number: number;
396
- inlineRequestRecord: Record<Mutable> | undefined;
397
- inlineResponseRecord: Record<Mutable> | undefined;
398
408
  }
399
409
 
400
- export type Method<Mutable extends boolean = boolean> = //
410
+ export type Method<Mutable extends boolean = false> = //
401
411
  Mutable extends true ? MutableMethod : Readonly<MutableMethod<false>>;
402
412
 
413
+ export interface BrokenMethod {
414
+ readonly kind: "broken-method";
415
+ readonly unresolvedRequestType: UnresolvedType;
416
+ readonly inlineRequestRecord: MutableRecord | undefined;
417
+ readonly unresolvedResponseType: UnresolvedType | undefined;
418
+ readonly inlineResponseRecord: MutableRecord | undefined;
419
+ }
420
+
403
421
  /** A `const` declaration. */
404
422
  export interface MutableConstant<Mutable extends boolean = true> {
405
423
  readonly kind: "constant";
@@ -411,11 +429,16 @@ export interface MutableConstant<Mutable extends boolean = true> {
411
429
  valueAsDenseJson: DenseJson | undefined;
412
430
  }
413
431
 
414
- export type Constant<Mutable extends boolean = boolean> = //
432
+ export type Constant<Mutable extends boolean = false> = //
415
433
  Mutable extends true //
416
434
  ? MutableConstant //
417
435
  : Readonly<MutableConstant<false>>;
418
436
 
437
+ export interface BrokenConstant {
438
+ readonly kind: "broken-constant";
439
+ readonly unresolvedType: UnresolvedType;
440
+ }
441
+
419
442
  /** A name:value entry of an object. */
420
443
  export interface MutableObjectEntry<Mutable extends boolean = true> {
421
444
  readonly name: Token;
@@ -427,7 +450,7 @@ export interface MutableObjectEntry<Mutable extends boolean = true> {
427
450
  fieldDeclaration?: Field;
428
451
  }
429
452
 
430
- export type ObjectEntry<Mutable extends boolean = boolean> = //
453
+ export type ObjectEntry<Mutable extends boolean = false> = //
431
454
  Mutable extends true //
432
455
  ? MutableObjectEntry //
433
456
  : Readonly<MutableObjectEntry<false>>;
@@ -437,11 +460,13 @@ export interface MutableObjectValue<Mutable extends boolean = true> {
437
460
  readonly kind: "object";
438
461
  readonly token: Token;
439
462
  readonly entries: Readonly<{ [f: string]: ObjectEntry<Mutable> }>;
463
+ /** Broken entries containing a name only. */
464
+ readonly orphanNames: ReadonlyArray<Token>;
440
465
  readonly partial: boolean;
441
466
  record?: Record;
442
467
  }
443
468
 
444
- export type ObjectValue<Mutable extends boolean = boolean> = //
469
+ export type ObjectValue<Mutable extends boolean = false> = //
445
470
  Mutable extends true //
446
471
  ? MutableObjectValue
447
472
  : Readonly<MutableObjectValue<false>>;
@@ -454,7 +479,7 @@ export interface MutableArrayValue<Mutable extends boolean = true> {
454
479
  key?: FieldPath | undefined;
455
480
  }
456
481
 
457
- export type ArrayValue<Mutable extends boolean = boolean> = //
482
+ export type ArrayValue<Mutable extends boolean = false> = //
458
483
  Mutable extends true //
459
484
  ? MutableArrayValue //
460
485
  : Readonly<MutableArrayValue<false>>;
@@ -466,13 +491,13 @@ export interface MutableLiteralValue {
466
491
  type?: PrimitiveType | { kind: "enum"; key: RecordKey } | { kind: "null" };
467
492
  }
468
493
 
469
- export type LiteralValue<Mutable extends boolean = boolean> = //
494
+ export type LiteralValue<Mutable extends boolean = false> = //
470
495
  Mutable extends true //
471
496
  ? MutableLiteralValue //
472
497
  : Readonly<MutableLiteralValue>;
473
498
 
474
499
  /** The value on the right side of the `=` symbol of a `const` declaration. */
475
- export type Value<Mutable extends boolean = boolean> =
500
+ export type Value<Mutable extends boolean = false> =
476
501
  | ObjectValue<Mutable>
477
502
  | ArrayValue<Mutable>
478
503
  | LiteralValue<Mutable>;
@@ -486,7 +511,7 @@ export type DenseJson = null | boolean | number | string | readonly DenseJson[];
486
511
  * User-written documentation associated with a declaration.
487
512
  * Result of parsing the doc comments.
488
513
  */
489
- export interface Doc<Mutable extends boolean = boolean> {
514
+ export interface Doc<Mutable extends boolean = false> {
490
515
  /** The whole text including references. */
491
516
  text: string;
492
517
  /** The whole text split into pieces. */
@@ -495,7 +520,7 @@ export interface Doc<Mutable extends boolean = boolean> {
495
520
 
496
521
  export type MutableDoc = Doc<true>;
497
522
 
498
- export type DocPiece<Mutable extends boolean = boolean> =
523
+ export type DocPiece<Mutable extends boolean = false> =
499
524
  | {
500
525
  kind: "text";
501
526
  text: string;
@@ -505,7 +530,7 @@ export type DocPiece<Mutable extends boolean = boolean> =
505
530
  export type MutableDocPiece = DocPiece<true>;
506
531
 
507
532
  /** Reference to a field or variant within a record. */
508
- export interface RecordField<Mutable extends boolean = boolean> {
533
+ export interface RecordField<Mutable extends boolean = false> {
509
534
  readonly kind: "field";
510
535
  readonly record: Record;
511
536
  readonly field: Field<Mutable>;
@@ -528,7 +553,7 @@ export interface MutableDocReference<Mutable extends boolean = true> {
528
553
  }
529
554
 
530
555
  /** Reference to a symbol from a doc comment ( [...] ). */
531
- export type DocReference<Mutable extends boolean = boolean> = //
556
+ export type DocReference<Mutable extends boolean = false> = //
532
557
  Mutable extends true //
533
558
  ? MutableDocReference
534
559
  : Readonly<MutableDocReference<boolean>>;
@@ -540,13 +565,13 @@ export interface MutableDocReferenceName {
540
565
  }
541
566
 
542
567
  /** One single name found in a reference in a doc comment ( [...] ). */
543
- export type DocReferenceName<Mutable extends boolean = boolean> =
568
+ export type DocReferenceName<Mutable extends boolean = false> =
544
569
  Mutable extends true
545
570
  ? MutableDocReferenceName
546
571
  : Readonly<MutableDocReferenceName>;
547
572
 
548
573
  /** A declaration which can appear at the top-level of a module. */
549
- export type ModuleLevelDeclaration<Mutable extends boolean = boolean> =
574
+ export type ModuleLevelDeclaration<Mutable extends boolean = false> =
550
575
  | Record<Mutable>
551
576
  | Import<Mutable>
552
577
  | ImportAlias<Mutable>
@@ -555,7 +580,7 @@ export type ModuleLevelDeclaration<Mutable extends boolean = boolean> =
555
580
 
556
581
  export type MutableModuleLevelDeclaration = ModuleLevelDeclaration<true>;
557
582
 
558
- export type Declaration<Mutable extends boolean = boolean> =
583
+ export type Declaration<Mutable extends boolean = false> =
559
584
  | RecordLevelDeclaration<Mutable>
560
585
  | ModuleLevelDeclaration<Mutable>;
561
586
 
@@ -565,7 +590,7 @@ export type MutableDeclaration = Declaration<true>;
565
590
  * Contains the definition of a record and information about where the record
566
591
  * was defined.
567
592
  */
568
- export interface RecordLocation<Mutable extends boolean = boolean> {
593
+ export interface RecordLocation<Mutable extends boolean = false> {
569
594
  readonly kind: "record-location";
570
595
  readonly record: Record<Mutable>;
571
596
  /**
@@ -583,7 +608,7 @@ export type ImportedNames =
583
608
  | { kind: "all"; alias: string }
584
609
  | { kind: "some"; names: ReadonlySet<string> };
585
610
 
586
- export interface Module<Mutable extends boolean = boolean> {
611
+ export interface Module<Mutable extends boolean = false> {
587
612
  readonly kind: "module";
588
613
  readonly path: string;
589
614
  readonly sourceCode: string;
@@ -597,6 +622,12 @@ export interface Module<Mutable extends boolean = boolean> {
597
622
  */
598
623
  readonly pathToImportedNames: { [path: string]: ImportedNames };
599
624
 
625
+ /**
626
+ * Smallest range including all import declarations.
627
+ * Null if there is no import declaration.
628
+ */
629
+ readonly importBlockRange: Range | null;
630
+
600
631
  /**
601
632
  * All the record declared in the module, at the top-level or not.
602
633
  * Depth-first: "Foo.Bar" will appear before "Foo".
@@ -606,8 +637,14 @@ export interface Module<Mutable extends boolean = boolean> {
606
637
  : readonly RecordLocation[];
607
638
 
608
639
  readonly methods: ReadonlyArray<Method<Mutable>>;
640
+ readonly brokenMethods: Mutable extends true
641
+ ? ReadonlyArray<BrokenMethod>
642
+ : unknown;
609
643
 
610
644
  readonly constants: ReadonlyArray<Constant<Mutable>>;
645
+ readonly brokenConstants: Mutable extends true
646
+ ? ReadonlyArray<BrokenConstant>
647
+ : unknown;
611
648
  }
612
649
 
613
650
  /** Can be assigned to a `Module`. */