@descryy/adapter-java 0.2.0 → 0.3.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/dist/parse.js CHANGED
@@ -1,11 +1,10 @@
1
1
  /**
2
2
  * One Java compilation unit, read into the shape the resolver wants.
3
3
  *
4
- * The walk is hand-written rather than expressed as tree-sitter queries. A query
5
- * returns matches; what this needs is *containment* — which class a method
6
- * belongs to, which method a call sits in, which type a field was declared with —
7
- * and containment is exactly what a match set discards. The TypeScript and Python
8
- * extractors are both shaped this way for the same reason.
4
+ * Hand-written rather than tree-sitter queries: a query returns matches, but
5
+ * this needs *containment* (which class a method belongs to, which method a
6
+ * call sits in) — exactly what a match set discards. Same reason the
7
+ * TypeScript and Python extractors are shaped this way.
9
8
  */
10
9
  /** Annotations that mark a method as a test case, across JUnit 4, 5 and TestNG. */
11
10
  const TEST_ANNOTATIONS = new Set([
@@ -27,17 +26,11 @@ const UNREADABLE = { kind: "unreadable" };
27
26
  /** The primitive type nodes. An array of primitives is a reference type. */
28
27
  const PRIMITIVE_NODES = new Set(["integral_type", "floating_point_type", "boolean_type", "void_type"]);
29
28
  /**
30
- * Read a type node, stripped of everything that is not identity.
31
- *
32
- * `List<String>` is a use of `List`; `Owner[]` is a use of `Owner`; `a.b.C` is a
33
- * use of `C` qualified by a package. Generic arguments are deliberately *not*
34
- * followed here — the caller walks them separately when it wants them, so that a
35
- * field of type `Map<String, Owner>` can record a dependency on `Owner` without
36
- * `Map` and `Owner` being confused for one another.
37
- *
38
- * A caller wanting a name for an edge asks for `kind === "named"` and gets the
39
- * same behaviour it always had. A caller wanting to know *why* there is no name
40
- * can now find out. See {@link TypeRead}.
29
+ * Read a type node, stripped of everything that is not identity: `List<String>`
30
+ * is a use of `List`, `a.b.C` is a use of `C`. Generic arguments are
31
+ * deliberately not followed here — the caller walks them separately, so
32
+ * `Map<String, Owner>` records a dependency on `Owner` without confusing it
33
+ * with `Map`. See {@link TypeRead}.
41
34
  */
42
35
  export function readTypeName(node) {
43
36
  if (node === null)
@@ -50,9 +43,9 @@ export function readTypeName(node) {
50
43
  case "generic_type":
51
44
  case "array_type":
52
45
  case "annotated_type": {
53
- // An array or an annotated wrapper around a primitive is still a reference
54
- // type — `int[]` is nullable — so a `primitive` inner read does not
55
- // propagate outward. Only a name does.
46
+ // An array or annotated wrapper around a primitive is still a reference
47
+ // type (`int[]` is nullable), so a `primitive` inner read doesn't
48
+ // propagate outward — only a name does.
56
49
  for (let i = 0; i < node.namedChildCount; i += 1) {
57
50
  const found = readTypeName(node.namedChild(i));
58
51
  if (found.kind === "named")
@@ -61,20 +54,12 @@ export function readTypeName(node) {
61
54
  return UNREADABLE;
62
55
  }
63
56
  case "scoped_type_identifier": {
64
- // Two different shapes wear the same node type, and the qualifier's own
65
- // node type is what separates them:
66
- //
67
- // com.example.Order qualifier is `identifier`/`scoped_identifier`
68
- // — a package. The identity is `Order`.
69
- // DiskLruCache.Snapshot qualifier is `type_identifier` — an enclosing
70
- // type. The identity is the whole path, because
71
- // `Snapshot` alone is a different question.
72
- //
73
- // Returning the last segment for both is what typed a local declared
74
- // `DiskLruCache.Snapshot` as `Snapshot`, so every `snapshot.getSource()`
75
- // was refused with "declares no such member" — true of the type it asked
76
- // about, and it asked about the wrong one. Lane E found the same defect in
77
- // `adapter-kotlin` from the opposite end (the *outermost* segment).
57
+ // Two shapes share this node type, told apart by the qualifier's own
58
+ // node type: `com.example.Order` (qualifier is a package, identity is
59
+ // `Order`) vs `DiskLruCache.Snapshot` (qualifier is an enclosing type,
60
+ // identity is the whole path). Returning just the last segment for both
61
+ // once mistyped `DiskLruCache.Snapshot` locals as `Snapshot`, refusing
62
+ // every `snapshot.getSource()` call against the wrong type.
78
63
  const segments = [];
79
64
  for (let i = 0; i < node.namedChildCount; i += 1) {
80
65
  const child = node.namedChild(i);
@@ -96,45 +81,27 @@ function namedOnly(node) {
96
81
  }
97
82
  /**
98
83
  * Every type name mentioned inside a type node, generic arguments included.
84
+ * `var` is excluded — the grammar gives it `type_identifier` like any other,
85
+ * so it arrived in the ledger 479 times on one repo as an unfindable type
86
+ * that the source never actually referenced.
99
87
  *
100
- * `var` is excluded because it is not one. The grammar gives it `type_identifier`
101
- * like any other, so it arrived in the ledger 479 times on one repository as a
102
- * type that could not be found — a reference the source never made, filed against
103
- * recall as though the adapter had missed something.
104
- *
105
- * ## A scoped name is one name, not its segments
106
- *
107
- * This used to recurse through `scoped_type_identifier` and push each segment,
108
- * so `DiskLruCache.Snapshot` arrived as `DiskLruCache` **and** `Snapshot`. Both
109
- * failure directions were reproduced on a synthetic:
110
- *
111
- * - the tail resolving to an unrelated top-level `Snapshot` in the same package
112
- * — `scopesFor` step 3 decides, so nothing else gets a turn. **A wrong edge.**
113
- * - the tail resolving to nothing, losing the reference to the real nested type
114
- * and disclosing it as *"no declaration for this simple name"* — true of
115
- * `Snapshot`, and the source never wrote `Snapshot`.
116
- *
117
- * Measured before the change: 28 references across the four Java corpora hit the
118
- * second case (`mall`'s `Criteria` ×19, `shopizer`'s `Category` ×4). The first
119
- * was unwitnessed in 2,946 files — it needs a package declaring a top-level type
120
- * whose name matches a nested one, which real code avoids. Proven on a
121
- * synthetic, unwitnessed in the corpora; `bench/nested-type-capture.mjs`.
122
- *
123
- * Lane E found the mirror of this in `adapter-kotlin`, where `typeNameOf`
124
- * returned the *outermost* segment instead. Same dropped qualifier, opposite
125
- * end.
88
+ * A scoped name is one name, not its segments. This used to recurse through
89
+ * `scoped_type_identifier` and push each segment, so `DiskLruCache.Snapshot`
90
+ * arrived as both `DiskLruCache` and `Snapshot` — either resolving the tail
91
+ * to an unrelated top-level `Snapshot` (a wrong edge) or losing the nested
92
+ * type entirely. Measured: 28 references across the four corpora hit the
93
+ * second case (`mall`'s `Criteria` x19, `shopizer`'s `Category` x4); the
94
+ * first is proven only on a synthetic (`bench/nested-type-capture.mjs`).
126
95
  */
127
96
  function allTypeNames(node, out) {
128
97
  if (node === null)
129
98
  return;
130
99
  if (node.type === "scoped_type_identifier") {
131
- // The whole path as written. Not the segments — `A.B` is a reference to one
132
- // type, and its qualifier is what tells `B` apart from every other `B`.
133
- //
134
- // Built from the *direct* `type_identifier` children rather than `node.text`
135
- // so that `A<B>.C` yields `A.C` and not the literal source with its generic
136
- // arguments in it. Anything else under the node — a generic argument list on
137
- // an outer segment — is still walked, so `B` is not lost.
100
+ // The whole path as written, not the segments — `A.B` is one type, and
101
+ // its qualifier tells `B` apart from every other `B`. Built from direct
102
+ // `type_identifier` children, not `node.text`, so `A<B>.C` yields `A.C`
103
+ // without the generic arguments; anything else under the node is still
104
+ // walked, so `B` isn't lost.
138
105
  const segments = [];
139
106
  for (let i = 0; i < node.namedChildCount; i += 1) {
140
107
  const child = node.namedChild(i);
@@ -155,12 +122,10 @@ function allTypeNames(node, out) {
155
122
  allTypeNames(node.namedChild(i), out);
156
123
  }
157
124
  /**
158
- * The first argument of a call, only when it is a bare string literal.
159
- *
160
- * A `binary_expression` first argument — `base + "/orders"` — returns
161
- * `undefined` rather than its left operand. The written prefix is not the path
162
- * at run time, and DEC-127 refuses an assembled path rather than reporting the
163
- * fragment it can see. See {@link JavaRef.firstStringArgument}.
125
+ * The first argument of a call, only when it's a bare string literal. A
126
+ * `binary_expression` first argument (`base + "/orders"`) returns
127
+ * `undefined`, not its left operand — DEC-127 refuses an assembled path
128
+ * rather than reporting a fragment. See {@link JavaRef.firstStringArgument}.
164
129
  */
165
130
  function firstStringArgumentOf(invocation) {
166
131
  const args = invocation.childForFieldName("arguments");
@@ -169,9 +134,8 @@ function firstStringArgumentOf(invocation) {
169
134
  const first = args.namedChild(0);
170
135
  if (first === null || first.type !== "string_literal")
171
136
  return undefined;
172
- // `"abc"` -> `abc`. A text block or an escaped quote is left as written; the
173
- // caller only ever compares it against a path shape, and a path with an
174
- // escape in it is not one this reader claims.
137
+ // `"abc"` -> `abc`. A text block or escaped quote is left as written — a
138
+ // path with an escape in it is not one this reader claims.
175
139
  return first.text.slice(1, -1);
176
140
  }
177
141
  /**
@@ -194,12 +158,9 @@ function childOfType(node, type) {
194
158
  return null;
195
159
  }
196
160
  /**
197
- * Every string literal an argument declares, quotes stripped.
198
- *
199
- * Handles the single form `"/x"` and the array form `{"/a", "/b"}`, because
200
- * Java's annotation syntax treats them as the same thing and Spring code uses
201
- * both freely. Anything that is not a literal contributes nothing — see
202
- * {@link JavaAnnotation.values}.
161
+ * Every string literal an argument declares, quotes stripped. Handles both
162
+ * `"/x"` and the array form `{"/a", "/b"}` — Spring code uses both freely.
163
+ * Non-literals contribute nothing — see {@link JavaAnnotation.values}.
203
164
  */
204
165
  function literals(node) {
205
166
  if (node === null)
@@ -207,10 +168,8 @@ function literals(node) {
207
168
  if (node.type === "string_literal")
208
169
  return [node.text.slice(1, -1)];
209
170
  // Annotation arrays are `element_value_array_initializer`, NOT the
210
- // `array_initializer` used for ordinary Java array literals. Reading the wrong
211
- // one silently returns nothing — which is how the array form survived a
212
- // typecheck, a lint, 158 tests and a green control run while emitting no route
213
- // for 140 of shopizer's 356 mappings.
171
+ // `array_initializer` used for ordinary array literals — the wrong node
172
+ // type here silently emits no route (once cost 140 of shopizer's 356).
214
173
  if (node.type !== "element_value_array_initializer" && node.type !== "array_initializer") {
215
174
  return [];
216
175
  }
@@ -224,18 +183,10 @@ function literals(node) {
224
183
  return out;
225
184
  }
226
185
  /**
227
- * Every annotation on a declaration, with its arguments.
228
- *
229
- * Replaces the boolean-only read that `isTest` used: the same walk now produces
230
- * the whole list, and `isTest` is derived from it. One traversal, one notion of
231
- * what an annotation is, and no second place to keep in step.
232
- */
233
- /**
234
- * Keyword modifiers on a declaration, annotations excluded.
235
- *
236
- * The `modifiers` node holds both — `private static final` sit beside
237
- * `@Column(...)` as siblings — so the annotation reader walks the named
238
- * children and this one walks all of them, taking what is left.
186
+ * Keyword modifiers on a declaration, annotations excluded. The `modifiers`
187
+ * node holds both (`private static final` sit beside `@Column(...)` as
188
+ * siblings), so the annotation reader walks named children and this one
189
+ * walks all of them, taking what's left.
239
190
  */
240
191
  function readModifiers(node) {
241
192
  const modifiers = childOfType(node, "modifiers");
@@ -282,9 +233,8 @@ function readAnnotations(node) {
282
233
  named.set(key.text, found);
283
234
  continue;
284
235
  }
285
- // The unnamed argument. Only literals are taken: a constant reference or
286
- // a concatenation is a path this adapter cannot read, and DEC-127
287
- // refuses it rather than recording the expression as a template.
236
+ // The unnamed argument. Only literals taken — DEC-127 refuses a
237
+ // constant reference or concatenation rather than recording it.
288
238
  values.push(...literals(arg));
289
239
  }
290
240
  }
@@ -305,36 +255,21 @@ function isTestAnnotated(annotations) {
305
255
  return annotations.some((each) => TEST_ANNOTATIONS.has(each.name));
306
256
  }
307
257
  /**
308
- * The name a call's receiver is written as, or `(computed)` when it is not a
309
- * name at all.
310
- *
311
- * `object.text` is the receiver's *whole source text*, so a chained call put
312
- * `config.get("airbyte")` into the ledger's target column — 18.9% of one
313
- * repository's Java entries carried a target that was an expression rather than
314
- * a name, and the column is indexed and later compared as a name. This is the
315
- * same defect the TypeScript adapter carried, found the same way, in the same
316
- * week: a raw target taken from a node's text instead of from its structure.
258
+ * The name a call's receiver is written as, or `(computed)` when it's not a
259
+ * name at all. Using the receiver node's raw text instead once put whole
260
+ * expressions like `config.get("airbyte")` into the ledger's target column
261
+ * as though they were names — 18.9% of one repo's entries (same defect the
262
+ * TypeScript adapter had). `(computed)` is a string, not `undefined`, since
263
+ * `undefined` means *unqualified* and resolves against the enclosing class —
264
+ * conflating the two would turn a chained call into a claim about `this`.
317
265
  *
318
- * `(computed)` is deliberately a string rather than `undefined`. `undefined`
319
- * means *unqualified*, which resolves against the enclosing class — conflating
320
- * the two would turn every chained call into a claim about `this`.
321
- *
322
- * A `method_invocation` object — `client.get().uri(...)` — is peeled the same
323
- * way `field_access` already is, encoded as `<base>.<name>()` (the literal
324
- * `()`, regardless of the real call's own arguments — this is a receiver
325
- * label, not a copy of the source). This exists for exactly one consumer,
326
- * `client.ts`'s WebClient/RestClient builder-chain reader (ledger row
327
- * D-FIX-3's `.get().uri(...)` case): the fluent client's verb lives on the
328
- * call *before* `uri`, not on `uri` itself, so the chain must survive past
329
- * this function or that verb is unrecoverable. It does not create any new
330
- * false resolution elsewhere — `receiverTarget` in `extract.ts` already
331
- * refuses any dotted receiver as `untypedReceiver`, so a `CALLS`/`TESTS` edge
332
- * from a chain never fires; it previously refused the same call under the
333
- * `(computed)` label, and now refuses it under a more legible one. A base
334
- * that itself resolves to `(computed)` (e.g. `new Foo.Builder().x()` — the
335
- * `object_creation_expression` case, not `method_invocation`) still returns
336
- * `(computed)` unchanged, so the OkHttp/`java.net.http` builder refusal this
337
- * file's header documents is untouched.
266
+ * A `method_invocation` object (`client.get().uri(...)`) is peeled like
267
+ * `field_access`, encoded as `<base>.<name>()` — a receiver label, not a
268
+ * copy of the source. This exists for `client.ts`'s builder-chain reader
269
+ * (ledger row D-FIX-3): the fluent client's verb lives on the call *before*
270
+ * `uri`, so the chain must survive past this function. It creates no new
271
+ * false resolution — `extract.ts`'s `receiverTarget` already refuses any
272
+ * dotted receiver, so this only makes an existing refusal more legible.
338
273
  */
339
274
  function receiverName(node) {
340
275
  if (node.type === "identifier")
@@ -370,11 +305,9 @@ function declare(table, name, type) {
370
305
  table.set(name, null);
371
306
  }
372
307
  /**
373
- * The name a `package_declaration` declares, ignoring any annotations on it.
374
- *
375
- * Returns `undefined` rather than `""` when no identifier is found, so the
376
- * caller keeps whatever it had instead of silently adopting the default
377
- * package — an unreadable declaration and an absent one are different facts.
308
+ * The name a `package_declaration` declares, ignoring annotations on it.
309
+ * Returns `undefined`, not `""`, when no identifier is found, so the caller
310
+ * keeps what it had rather than silently adopting the default package.
378
311
  */
379
312
  function packageIdentifier(declaration) {
380
313
  for (let i = 0; i < declaration.namedChildCount; i += 1) {
@@ -404,14 +337,10 @@ export function readUnit(root, file, hasError) {
404
337
  if (statement === null)
405
338
  continue;
406
339
  if (statement.type === "package_declaration") {
407
- // Read by node type, not by position. A package declaration may be
408
- // annotated — `@NonNullApi package dev.morphia.query;` — and the
409
- // annotation is `namedChild(0)`, so a positional read returns
410
- // `"@NonNullApi"` as the package name. Every annotated `package-info.java`
411
- // in a repository carries the *same* annotation, so all of them then share
412
- // one identity package and one MODULE id: on `morphia`, 29 files collapsed
413
- // to 1 node and 28 declarations were lost. The audit reported it as
414
- // `cross-file-other`, which is the column that column exists for.
340
+ // Read by node type, not position — an annotated declaration
341
+ // (`@NonNullApi package dev.morphia.query;`) puts the annotation at
342
+ // `namedChild(0)`, so a positional read once collapsed 29 `morphia`
343
+ // files sharing one annotation onto a single identity package.
415
344
  packageName = packageIdentifier(statement) ?? packageName;
416
345
  continue;
417
346
  }
@@ -427,9 +356,9 @@ export function readUnit(root, file, hasError) {
427
356
  unit.wildcardImports.push(fqn);
428
357
  continue;
429
358
  }
430
- // A static import names a member, not a type: `a.b.C.method` binds
431
- // `method`, and treating it as a type import would bind the simple name
432
- // `method` to a class that does not exist. Only the declaring type is kept.
359
+ // A static import names a member, not a type — `a.b.C.method` binds
360
+ // `method`; treating it as a type import would bind `method` to a
361
+ // class that doesn't exist. Only the declaring type is kept.
433
362
  const isStatic = statement.children.some((child) => child?.type === "static");
434
363
  const segments = fqn.split(".");
435
364
  const owner = isStatic ? segments.slice(0, -1).join(".") : fqn;
@@ -475,8 +404,8 @@ function readType(node, kind, prefix, into) {
475
404
  if (name !== undefined)
476
405
  type.extendsNames.push(name);
477
406
  }
478
- // An interface's `extends` is a list and is an interface relationship, not a
479
- // class one — the vocabulary has both edges and the corpus tests them apart.
407
+ // An interface's `extends` is a list, and an interface relationship not a
408
+ // class one — the vocabulary has both edges, tested apart in the corpus.
480
409
  const extendsInterfaces = childOfType(node, "extends_interfaces");
481
410
  const superInterfaces = childOfType(node, "super_interfaces");
482
411
  for (const clause of [extendsInterfaces, superInterfaces]) {
@@ -495,10 +424,9 @@ function readType(node, kind, prefix, into) {
495
424
  type.implementsNames.push(name);
496
425
  }
497
426
  }
498
- // A record's components are its fields *and* its accessor methods. Java
499
- // declares both implicitly, so a codebase that uses records — which is most
500
- // modern Java — has a call graph full of `config.region()` calls with nothing
501
- // to point at. Four of fourteen recall misses on `airbyte` were exactly this.
427
+ // A record's components are its fields *and* accessor methods, both
428
+ // implicit — without this, `config.region()` calls have nothing to point
429
+ // at (4 of 14 recall misses on `airbyte`).
502
430
  if (kind === "record") {
503
431
  const parameters = node.childForFieldName("parameters");
504
432
  for (let i = 0; parameters !== null && i < parameters.namedChildCount; i += 1) {
@@ -510,18 +438,15 @@ function readType(node, kind, prefix, into) {
510
438
  if (name === null)
511
439
  continue;
512
440
  declare(type.fields, name.text, declared);
513
- // The accessor is declared by the component and has the component's span:
514
- // there is no separate source for it, and inventing one would be a lie
515
- // about where the reader should look.
441
+ // The accessor shares the component's span — no separate source exists.
516
442
  type.methods.push({
517
443
  name: name.text,
518
444
  fqn: `${fqn}.${name.text}`,
519
445
  startLine: component.startPosition.row + 1,
520
446
  endLine: component.endPosition.row + 1,
521
447
  isTest: false,
522
- // A record component's accessor is synthesised, so it carries no
523
- // annotations of its own — the component's annotations belong to the
524
- // field, not to the generated getter.
448
+ // Synthesised accessor carries no annotations of its own — those
449
+ // belong to the field, not the generated getter.
525
450
  annotations: [],
526
451
  returnType: readTypeName(component.childForFieldName("type")),
527
452
  refs: [],
@@ -551,10 +476,9 @@ function readBody(body, type, fqn, into) {
551
476
  const member = body.namedChild(i);
552
477
  if (member === null)
553
478
  continue;
554
- // An enum's members do not sit directly in its body: the constants do, and
555
- // everything else is wrapped in `enum_body_declarations`. Without this an
556
- // enum contributed constants and no methods at all, so a static factory like
557
- // `IdType.findByBsonType(…)` had nothing to resolve to.
479
+ // An enum's constants sit directly in its body; everything else is
480
+ // wrapped in `enum_body_declarations` — without this, a static factory
481
+ // like `IdType.findByBsonType(…)` had nothing to resolve to.
558
482
  if (member.type === "enum_body_declarations") {
559
483
  readBody(member, type, fqn, into);
560
484
  continue;
@@ -566,13 +490,12 @@ function readBody(body, type, fqn, into) {
566
490
  }
567
491
  if (member.type === "field_declaration") {
568
492
  const typeNode = member.childForFieldName("type");
569
- // One read, and the caller asks it two different questions: what name does
570
- // an edge point at, and can this field hold null. They have different
571
- // answers for `long`, which is the whole point of {@link TypeRead}.
493
+ // One read answers two questions — edge target and nullability — with
494
+ // different answers for `long`, the point of {@link TypeRead}.
572
495
  const read = readTypeName(typeNode);
573
496
  const declared = read.kind === "named" ? read.name : undefined;
574
- // Annotations sit on the declaration, so `int a, b;` gives both the same
575
- // set — which is what Java means by it.
497
+ // Annotations sit on the declaration, so `int a, b;` gives both the
498
+ // same set, matching Java's own semantics.
576
499
  const fieldAnnotations = readAnnotations(member);
577
500
  const fieldModifiers = readModifiers(member);
578
501
  for (let d = 0; d < member.namedChildCount; d += 1) {
@@ -585,9 +508,8 @@ function readBody(body, type, fqn, into) {
585
508
  declare(type.fields, name.text, declared);
586
509
  type.fieldDeclarations.push({
587
510
  name: name.text,
588
- // A primitive has no declaration to point an edge at, so `declaredType`
589
- // is `undefined` here and `primitive` is `true` — the two facts the old
590
- // single sentinel could not tell apart.
511
+ // A primitive has no declaration, so `declaredType` is `undefined`
512
+ // and `primitive` is `true` — the two facts the old sentinel conflated.
591
513
  declaredType: declared,
592
514
  primitive: read.kind === "primitive",
593
515
  line: member.startPosition.row + 1,
@@ -617,11 +539,9 @@ function readMethod(node, type, ownerFqn) {
617
539
  const nameNode = node.childForFieldName("name");
618
540
  if (nameNode === null)
619
541
  return;
620
- // A constructor is named after its class, so `OrderService` would name both the
621
- // CLASS and a FUNCTION in one file — two nodes a corpus role binds on `(file,
622
- // name)` cannot be told apart, and the harness correctly refuses to guess.
623
- // `<init>` is what the JVM itself calls a constructor and can collide with
624
- // nothing, because it is not a legal Java identifier.
542
+ // A constructor named after its class would collide with the CLASS node
543
+ // under a `(file, name)`-bound corpus role. `<init>` is what the JVM calls
544
+ // a constructor and can't collide — it's not a legal Java identifier.
625
545
  const name = node.type === "constructor_declaration" ? "<init>" : nameNode.text;
626
546
  const annotations = readAnnotations(node);
627
547
  const method = {
@@ -681,7 +601,7 @@ function readMethod(node, type, ownerFqn) {
681
601
  function walkBody(node, method) {
682
602
  if (node.type === "local_variable_declaration") {
683
603
  const typeNode = node.childForFieldName("type");
684
- // `var` is inference, and inference without a type checker is a guess.
604
+ // `var` is inference; inference with no type checker is a guess.
685
605
  const declared = typeNode?.type === "type_identifier" && typeNode.text === "var"
686
606
  ? undefined
687
607
  : namedOnly(typeNode);
@@ -718,19 +638,17 @@ function walkBody(node, method) {
718
638
  receiver,
719
639
  line: node.startPosition.row + 1,
720
640
  raw: receiver === undefined ? nameNode.text : `${receiver}.${nameNode.text}`,
721
- // Spread rather than assigned, because `exactOptionalPropertyTypes`
722
- // distinguishes an absent property from one present and undefined, and
723
- // that distinction is the point: absent means "not a call", present and
724
- // undefined would mean "a call whose first argument is nothing".
641
+ // Spread, not assigned: `exactOptionalPropertyTypes` distinguishes an
642
+ // absent property (not a call) from one present-and-undefined (a
643
+ // call whose argument is nothing) — the distinction is the point.
725
644
  ...(literal === undefined ? {} : { firstStringArgument: literal }),
726
645
  ...(argumentText === undefined ? {} : { firstArgumentText: argumentText }),
727
646
  });
728
647
  }
729
648
  }
730
- // `Status.PENDING` — an enum constant or a static field, which is a dependency
731
- // on the declaring type. Without this the corpus's class-used-as-value pattern
732
- // has nothing to find, because an enum constant is not a call and not a
733
- // declared type.
649
+ // `Status.PENDING` — an enum constant or static field, a dependency on the
650
+ // declaring type. Without this, the class-used-as-value pattern has
651
+ // nothing to find (an enum constant is neither a call nor a declared type).
734
652
  if (node.type === "field_access") {
735
653
  const object = node.childForFieldName("object");
736
654
  const field = node.childForFieldName("field");
package/dist/parse.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"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"}