@tsonic/frontend 0.0.55 → 0.0.57

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.
@@ -21,6 +21,19 @@
21
21
  */
22
22
  import { createDiagnostic, } from "../../types/diagnostic.js";
23
23
  const ATTRIBUTES_IMPORT_SPECIFIER = "@tsonic/core/lang.js";
24
+ const ATTRIBUTE_TARGETS_EXPORT_NAME = "AttributeTargets";
25
+ const ATTRIBUTE_TARGETS = [
26
+ "assembly",
27
+ "module",
28
+ "type",
29
+ "method",
30
+ "property",
31
+ "field",
32
+ "event",
33
+ "param",
34
+ "return",
35
+ ];
36
+ const ATTRIBUTE_TARGETS_SET = new Set(ATTRIBUTE_TARGETS);
24
37
  /**
25
38
  * Try to extract an attribute argument from an IR expression.
26
39
  * Returns undefined if the expression is not a valid attribute argument.
@@ -105,7 +118,49 @@ const getAttributesApiLocalNames = (module) => {
105
118
  }
106
119
  return names;
107
120
  };
121
+ const getAttributeTargetsApiLocalNames = (module) => {
122
+ const names = new Set();
123
+ for (const imp of module.imports) {
124
+ if (imp.source !== ATTRIBUTES_IMPORT_SPECIFIER)
125
+ continue;
126
+ for (const spec of imp.specifiers) {
127
+ if (spec.kind !== "named")
128
+ continue;
129
+ if (spec.name !== ATTRIBUTE_TARGETS_EXPORT_NAME)
130
+ continue;
131
+ names.add(spec.localName);
132
+ }
133
+ }
134
+ return names;
135
+ };
108
136
  const isAttributesApiIdentifier = (expr, apiNames) => expr.kind === "identifier" && apiNames.has(expr.name);
137
+ const parseAttributeTarget = (expr, module, attributeTargetsApiNames) => {
138
+ const fail = (message) => ({
139
+ kind: "error",
140
+ diagnostic: createDiagnostic("TSN4005", "error", message, createLocation(module.filePath, expr.sourceSpan)),
141
+ });
142
+ // Allow string literal: .target("return")
143
+ if (expr.kind === "literal" && typeof expr.value === "string") {
144
+ const value = expr.value;
145
+ if (ATTRIBUTE_TARGETS_SET.has(value)) {
146
+ return { kind: "ok", value: value };
147
+ }
148
+ return fail(`Invalid attribute target '${value}'. Expected one of: ${ATTRIBUTE_TARGETS.join(", ")}`);
149
+ }
150
+ // Allow AttributeTargets.return (imported local name can be aliased)
151
+ if (expr.kind === "memberAccess" &&
152
+ !expr.isComputed &&
153
+ typeof expr.property === "string" &&
154
+ expr.object.kind === "identifier" &&
155
+ attributeTargetsApiNames.has(expr.object.name)) {
156
+ const value = expr.property;
157
+ if (ATTRIBUTE_TARGETS_SET.has(value)) {
158
+ return { kind: "ok", value: value };
159
+ }
160
+ return fail(`Invalid attribute target '${value}'. Expected one of: ${ATTRIBUTE_TARGETS.join(", ")}`);
161
+ }
162
+ return fail(`Invalid attribute target. Expected a string literal (e.g., "return") or ${ATTRIBUTE_TARGETS_EXPORT_NAME}.<target>`);
163
+ };
109
164
  const getMemberName = (expr) => {
110
165
  if (expr.kind !== "memberAccess")
111
166
  return undefined;
@@ -374,7 +429,7 @@ const parseAttrDescriptorCall = (expr, module, apiNames) => {
374
429
  * - A.on(Target).method(selector).add(...)
375
430
  * - A.on(Target).prop(selector).add(...)
376
431
  */
377
- const tryDetectAttributeMarker = (call, module, apiNames, descriptors) => {
432
+ const tryDetectAttributeMarker = (call, module, apiNames, attributeTargetsApiNames, descriptors) => {
378
433
  if (call.callee.kind !== "memberAccess")
379
434
  return { kind: "notMatch" };
380
435
  const outerMember = call.callee;
@@ -383,20 +438,50 @@ const tryDetectAttributeMarker = (call, module, apiNames, descriptors) => {
383
438
  }
384
439
  if (outerMember.property !== "add")
385
440
  return { kind: "notMatch" };
441
+ // Optional `.target(...)` before `.add(...)`
442
+ let attributeTarget;
443
+ let selectorRoot = outerMember.object;
444
+ if (selectorRoot.kind === "call") {
445
+ const maybeTargetCall = selectorRoot;
446
+ if (maybeTargetCall.callee.kind === "memberAccess") {
447
+ const targetMember = maybeTargetCall.callee;
448
+ const prop = getMemberName(targetMember);
449
+ if (prop === "target") {
450
+ if (maybeTargetCall.arguments.length !== 1) {
451
+ return {
452
+ kind: "error",
453
+ diagnostic: createDiagnostic("TSN4005", "error", `Invalid attribute marker: .target(...) expects exactly 1 argument`, createLocation(module.filePath, maybeTargetCall.sourceSpan)),
454
+ };
455
+ }
456
+ const arg0 = maybeTargetCall.arguments[0];
457
+ if (!arg0 || arg0.kind === "spread") {
458
+ return {
459
+ kind: "error",
460
+ diagnostic: createDiagnostic("TSN4005", "error", `Invalid attribute marker: .target(...) does not accept spread arguments`, createLocation(module.filePath, maybeTargetCall.sourceSpan)),
461
+ };
462
+ }
463
+ const parsedTarget = parseAttributeTarget(arg0, module, attributeTargetsApiNames);
464
+ if (parsedTarget.kind !== "ok")
465
+ return parsedTarget;
466
+ attributeTarget = parsedTarget.value;
467
+ selectorRoot = targetMember.object;
468
+ }
469
+ }
470
+ }
386
471
  // Determine the target selector: `.type`, `.ctor`, `.method(selector)`, `.prop(selector)`
387
472
  let selector;
388
473
  let selectedMemberName;
389
474
  let onCallExpr;
390
- if (outerMember.object.kind === "memberAccess") {
391
- const targetMember = outerMember.object;
475
+ if (selectorRoot.kind === "memberAccess") {
476
+ const targetMember = selectorRoot;
392
477
  const prop = getMemberName(targetMember);
393
478
  if (prop !== "type" && prop !== "ctor")
394
479
  return { kind: "notMatch" };
395
480
  selector = prop;
396
481
  onCallExpr = targetMember.object;
397
482
  }
398
- else if (outerMember.object.kind === "call") {
399
- const selectorCall = outerMember.object;
483
+ else if (selectorRoot.kind === "call") {
484
+ const selectorCall = selectorRoot;
400
485
  if (selectorCall.callee.kind !== "memberAccess")
401
486
  return { kind: "notMatch" };
402
487
  const selectorMember = selectorCall.callee;
@@ -466,6 +551,7 @@ const tryDetectAttributeMarker = (call, module, apiNames, descriptors) => {
466
551
  targetName,
467
552
  targetSelector: selector,
468
553
  selectedMemberName,
554
+ attributeTarget,
469
555
  attributeType: descCall.value.attributeType,
470
556
  positionalArgs: descCall.value.positionalArgs,
471
557
  namedArgs: descCall.value.namedArgs,
@@ -483,6 +569,7 @@ const tryDetectAttributeMarker = (call, module, apiNames, descriptors) => {
483
569
  targetName,
484
570
  targetSelector: selector,
485
571
  selectedMemberName,
572
+ attributeTarget,
486
573
  attributeType: desc.attributeType,
487
574
  positionalArgs: desc.positionalArgs,
488
575
  namedArgs: desc.namedArgs,
@@ -555,6 +642,7 @@ const tryDetectAttributeMarker = (call, module, apiNames, descriptors) => {
555
642
  targetName,
556
643
  targetSelector: selector,
557
644
  selectedMemberName,
645
+ attributeTarget,
558
646
  attributeType: attributeTypeResult.value,
559
647
  positionalArgs,
560
648
  namedArgs,
@@ -571,6 +659,7 @@ const createLocation = (filePath, sourceSpan) => sourceSpan ?? { file: filePath,
571
659
  */
572
660
  const processModule = (module, diagnostics) => {
573
661
  const apiNames = getAttributesApiLocalNames(module);
662
+ const attributeTargetsApiNames = getAttributeTargetsApiLocalNames(module);
574
663
  if (apiNames.size === 0) {
575
664
  return module;
576
665
  }
@@ -616,7 +705,7 @@ const processModule = (module, diagnostics) => {
616
705
  const expr = stmt.expression;
617
706
  if (expr.kind !== "call")
618
707
  return;
619
- const marker = tryDetectAttributeMarker(expr, module, apiNames, descriptors);
708
+ const marker = tryDetectAttributeMarker(expr, module, apiNames, attributeTargetsApiNames, descriptors);
620
709
  if (marker.kind === "ok") {
621
710
  markers.push(marker.value);
622
711
  removedStatementIndices.add(i);
@@ -630,7 +719,7 @@ const processModule = (module, diagnostics) => {
630
719
  // If it looks like an attribute API call but doesn't match a supported marker,
631
720
  // fail deterministically instead of leaving runtime-dead code in the output.
632
721
  if (looksLikeAttributesApiUsage(expr, apiNames)) {
633
- diagnostics.push(createDiagnostic("TSN4005", "error", `Invalid attribute marker call. Expected one of: A.on(X).type.add(...), A.on(X).ctor.add(...), A.on(X).method(x => x.m).add(...), A.on(X).prop(x => x.p).add(...)`, createLocation(module.filePath, expr.sourceSpan)));
722
+ diagnostics.push(createDiagnostic("TSN4005", "error", `Invalid attribute marker call. Expected one of: A.on(X).type.add(...), A.on(X).ctor.add(...), A.on(X).method(x => x.m).add(...), A.on(X).prop(x => x.p).add(...), with optional .target(...) before .add(...)`, createLocation(module.filePath, expr.sourceSpan)));
634
723
  removedStatementIndices.add(i);
635
724
  }
636
725
  });
@@ -660,6 +749,7 @@ const processModule = (module, diagnostics) => {
660
749
  const funcIndex = functionDeclarations.get(marker.targetName);
661
750
  const attr = {
662
751
  kind: "attribute",
752
+ target: marker.attributeTarget,
663
753
  attributeType: marker.attributeType,
664
754
  positionalArgs: marker.positionalArgs,
665
755
  namedArgs: marker.namedArgs,
@@ -670,12 +760,21 @@ const processModule = (module, diagnostics) => {
670
760
  continue;
671
761
  }
672
762
  if (classIndex !== undefined) {
763
+ if (marker.attributeTarget !== undefined &&
764
+ marker.attributeTarget !== "type") {
765
+ diagnostics.push(createDiagnostic("TSN4005", "error", `Invalid attribute target '${marker.attributeTarget}' for type attribute. Expected 'type' or omit .target(...)`, createLocation(module.filePath, marker.sourceSpan)));
766
+ continue;
767
+ }
673
768
  const attrs = classAttributes.get(classIndex) ?? [];
674
769
  attrs.push(attr);
675
770
  classAttributes.set(classIndex, attrs);
676
771
  continue;
677
772
  }
678
773
  if (funcIndex !== undefined) {
774
+ if (marker.attributeTarget !== undefined) {
775
+ diagnostics.push(createDiagnostic("TSN4005", "error", `.target(...) is not supported for function attributes via A.on(fn).type. Use A.on(Class).method(...) instead.`, createLocation(module.filePath, marker.sourceSpan)));
776
+ continue;
777
+ }
679
778
  const attrs = functionAttributes.get(funcIndex) ?? [];
680
779
  attrs.push(attr);
681
780
  functionAttributes.set(funcIndex, attrs);
@@ -690,6 +789,11 @@ const processModule = (module, diagnostics) => {
690
789
  }
691
790
  const classStmt = module.body[classIndex];
692
791
  if (marker.targetSelector === "ctor") {
792
+ if (marker.attributeTarget !== undefined &&
793
+ marker.attributeTarget !== "method") {
794
+ diagnostics.push(createDiagnostic("TSN4005", "error", `Invalid attribute target '${marker.attributeTarget}' for constructor attribute. Expected 'method' or omit .target(...)`, createLocation(module.filePath, marker.sourceSpan)));
795
+ continue;
796
+ }
693
797
  const hasCtor = classStmt.members.some((m) => m.kind === "constructorDeclaration");
694
798
  if (classStmt.isStruct && !hasCtor) {
695
799
  diagnostics.push(createDiagnostic("TSN4005", "error", `Cannot apply constructor attributes to struct '${classStmt.name}' without an explicit constructor`, createLocation(module.filePath, marker.sourceSpan)));
@@ -701,6 +805,12 @@ const processModule = (module, diagnostics) => {
701
805
  continue;
702
806
  }
703
807
  if (marker.targetSelector === "method") {
808
+ if (marker.attributeTarget !== undefined &&
809
+ marker.attributeTarget !== "method" &&
810
+ marker.attributeTarget !== "return") {
811
+ diagnostics.push(createDiagnostic("TSN4005", "error", `Invalid attribute target '${marker.attributeTarget}' for method attribute. Expected 'method', 'return', or omit .target(...)`, createLocation(module.filePath, marker.sourceSpan)));
812
+ continue;
813
+ }
704
814
  const memberName = marker.selectedMemberName;
705
815
  if (!memberName) {
706
816
  diagnostics.push(createDiagnostic("TSN4005", "error", `Invalid attribute marker: method target missing member name`, createLocation(module.filePath, marker.sourceSpan)));
@@ -724,11 +834,31 @@ const processModule = (module, diagnostics) => {
724
834
  diagnostics.push(createDiagnostic("TSN4005", "error", `Invalid attribute marker: property target missing member name`, createLocation(module.filePath, marker.sourceSpan)));
725
835
  continue;
726
836
  }
727
- const hasMember = classStmt.members.some((m) => m.kind === "propertyDeclaration" && m.name === memberName);
728
- if (!hasMember) {
837
+ const member = classStmt.members.find((m) => m.kind === "propertyDeclaration" && m.name === memberName);
838
+ if (!member || member.kind !== "propertyDeclaration") {
729
839
  diagnostics.push(createDiagnostic("TSN4007", "error", `Property '${classStmt.name}.${memberName}' not found for attribute target`, createLocation(module.filePath, marker.sourceSpan)));
730
840
  continue;
731
841
  }
842
+ if (marker.attributeTarget !== undefined) {
843
+ if (member.emitAsField) {
844
+ if (marker.attributeTarget !== "field") {
845
+ diagnostics.push(createDiagnostic("TSN4005", "error", `Invalid attribute target '${marker.attributeTarget}' for field-emitted property '${classStmt.name}.${memberName}'. Expected 'field' or omit .target(...)`, createLocation(module.filePath, marker.sourceSpan)));
846
+ continue;
847
+ }
848
+ }
849
+ else if (marker.attributeTarget !== "property" &&
850
+ marker.attributeTarget !== "field") {
851
+ diagnostics.push(createDiagnostic("TSN4005", "error", `Invalid attribute target '${marker.attributeTarget}' for property attribute. Expected 'property', 'field', or omit .target(...)`, createLocation(module.filePath, marker.sourceSpan)));
852
+ continue;
853
+ }
854
+ if (marker.attributeTarget === "field") {
855
+ const isAccessorProperty = member.getterBody !== undefined || member.setterBody !== undefined;
856
+ if (isAccessorProperty) {
857
+ diagnostics.push(createDiagnostic("TSN4005", "error", `Cannot apply [field: ...] attribute target to accessor property '${classStmt.name}.${memberName}'. Apply the attribute to the actual field instead.`, createLocation(module.filePath, marker.sourceSpan)));
858
+ continue;
859
+ }
860
+ }
861
+ }
732
862
  const perClass = classPropAttributes.get(classIndex) ?? new Map();
733
863
  const attrs = perClass.get(memberName) ?? [];
734
864
  attrs.push(attr);
@@ -1 +1 @@
1
- {"version":3,"file":"attribute-collection-pass.js","sourceRoot":"","sources":["../../../src/ir/validation/attribute-collection-pass.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attribute-collection-pass.js","sourceRoot":"","sources":["../../../src/ir/validation/attribute-collection-pass.ts"],"names":[],"mappings":"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"}