@typespec/compiler 0.51.0-dev.1 → 0.51.0-dev.11

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.
Files changed (69) hide show
  1. package/dist/manifest.js +2 -2
  2. package/dist/src/core/checker.d.ts.map +1 -1
  3. package/dist/src/core/checker.js +47 -1
  4. package/dist/src/core/checker.js.map +1 -1
  5. package/dist/src/core/helpers/discriminator-utils.js +2 -0
  6. package/dist/src/core/helpers/discriminator-utils.js.map +1 -1
  7. package/dist/src/core/helpers/index.d.ts +1 -0
  8. package/dist/src/core/helpers/index.d.ts.map +1 -1
  9. package/dist/src/core/helpers/index.js +1 -0
  10. package/dist/src/core/helpers/index.js.map +1 -1
  11. package/dist/src/core/helpers/string-template-utils.d.ts +11 -0
  12. package/dist/src/core/helpers/string-template-utils.d.ts.map +1 -0
  13. package/dist/src/core/helpers/string-template-utils.js +65 -0
  14. package/dist/src/core/helpers/string-template-utils.js.map +1 -0
  15. package/dist/src/core/helpers/type-name-utils.d.ts.map +1 -1
  16. package/dist/src/core/helpers/type-name-utils.js +2 -0
  17. package/dist/src/core/helpers/type-name-utils.js.map +1 -1
  18. package/dist/src/core/messages.d.ts +20 -2
  19. package/dist/src/core/messages.d.ts.map +1 -1
  20. package/dist/src/core/messages.js +6 -0
  21. package/dist/src/core/messages.js.map +1 -1
  22. package/dist/src/core/parser.d.ts.map +1 -1
  23. package/dist/src/core/parser.js +97 -1
  24. package/dist/src/core/parser.js.map +1 -1
  25. package/dist/src/core/scanner.d.ts +85 -66
  26. package/dist/src/core/scanner.d.ts.map +1 -1
  27. package/dist/src/core/scanner.js +229 -127
  28. package/dist/src/core/scanner.js.map +1 -1
  29. package/dist/src/core/semantic-walker.d.ts.map +1 -1
  30. package/dist/src/core/semantic-walker.js +22 -0
  31. package/dist/src/core/semantic-walker.js.map +1 -1
  32. package/dist/src/core/types.d.ts +106 -54
  33. package/dist/src/core/types.d.ts.map +1 -1
  34. package/dist/src/core/types.js +55 -50
  35. package/dist/src/core/types.js.map +1 -1
  36. package/dist/src/emitter-framework/asset-emitter.d.ts.map +1 -1
  37. package/dist/src/emitter-framework/asset-emitter.js +105 -70
  38. package/dist/src/emitter-framework/asset-emitter.js.map +1 -1
  39. package/dist/src/emitter-framework/builders/array-builder.js +1 -1
  40. package/dist/src/emitter-framework/builders/array-builder.js.map +1 -1
  41. package/dist/src/emitter-framework/builders/object-builder.js +1 -1
  42. package/dist/src/emitter-framework/builders/object-builder.js.map +1 -1
  43. package/dist/src/emitter-framework/type-emitter.d.ts +5 -1
  44. package/dist/src/emitter-framework/type-emitter.d.ts.map +1 -1
  45. package/dist/src/emitter-framework/type-emitter.js +12 -0
  46. package/dist/src/emitter-framework/type-emitter.js.map +1 -1
  47. package/dist/src/emitter-framework/types.d.ts +7 -2
  48. package/dist/src/emitter-framework/types.d.ts.map +1 -1
  49. package/dist/src/emitter-framework/types.js.map +1 -1
  50. package/dist/src/formatter/print/needs-parens.d.ts.map +1 -1
  51. package/dist/src/formatter/print/needs-parens.js +4 -0
  52. package/dist/src/formatter/print/needs-parens.js.map +1 -1
  53. package/dist/src/formatter/print/printer.d.ts +2 -1
  54. package/dist/src/formatter/print/printer.d.ts.map +1 -1
  55. package/dist/src/formatter/print/printer.js +17 -0
  56. package/dist/src/formatter/print/printer.js.map +1 -1
  57. package/dist/src/server/serverlib.d.ts.map +1 -1
  58. package/dist/src/server/serverlib.js +84 -6
  59. package/dist/src/server/serverlib.js.map +1 -1
  60. package/dist/src/server/tmlanguage.d.ts +1 -1
  61. package/dist/src/server/tmlanguage.d.ts.map +1 -1
  62. package/dist/src/server/tmlanguage.js +15 -2
  63. package/dist/src/server/tmlanguage.js.map +1 -1
  64. package/dist/src/server/type-signature.js +13 -0
  65. package/dist/src/server/type-signature.js.map +1 -1
  66. package/dist/typespec.tmLanguage +40 -0
  67. package/lib/decorators.tsp +2 -2
  68. package/lib/reflection.tsp +1 -0
  69. package/package.json +1 -1
package/dist/manifest.js CHANGED
@@ -1,4 +1,4 @@
1
1
  export default {
2
- "version": "0.51.0-dev.1",
3
- "commit": "bc62493c3f5b8ee5d6f45ebd0b06594ad2e4b96c"
2
+ "version": "0.51.0-dev.11",
3
+ "commit": "360add229eb9c6491c1a69b0a0f8e4c8d22b5208"
4
4
  };
@@ -1 +1 @@
1
- {"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../../../src/core/checker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../../../src/core/checker.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,8 @@ import { createSymbol, createSymbolTable } from "./binder.js";
9
9
  import { getDeprecationDetails, markDeprecated } from "./deprecation.js";
10
10
  import { ProjectionError, compilerAssert, reportDeprecated } from "./diagnostics.js";
11
11
  import { validateInheritanceDiscriminatedUnions } from "./helpers/discriminator-utils.js";
12
- import { getNamespaceFullName, getTypeName } from "./helpers/index.js";
12
+ import { getNamespaceFullName, getTypeName, stringTemplateToString, } from "./helpers/index.js";
13
+ import { isStringTemplateSerializable } from "./helpers/string-template-utils.js";
13
14
  import { createDiagnostic } from "./messages.js";
14
15
  import { getIdentifierContext, hasParseError, visitChildren } from "./parser.js";
15
16
  import { createProjectionMembers } from "./projection-members.js";
@@ -357,6 +358,8 @@ export function createChecker(program) {
357
358
  return checkTupleExpression(node, mapper);
358
359
  case SyntaxKind.StringLiteral:
359
360
  return checkStringLiteral(node);
361
+ case SyntaxKind.StringTemplateExpression:
362
+ return checkStringTemplateExpresion(node, mapper);
360
363
  case SyntaxKind.ArrayExpression:
361
364
  return checkArrayExpression(node, mapper);
362
365
  case SyntaxKind.UnionExpression:
@@ -1717,6 +1720,35 @@ export function createChecker(program) {
1717
1720
  return (_a = getMergedSymbol(aliasType.node.symbol)) !== null && _a !== void 0 ? _a : aliasSymbol;
1718
1721
  }
1719
1722
  }
1723
+ function checkStringTemplateExpresion(node, mapper) {
1724
+ const spans = [createTemplateSpanLiteral(node.head)];
1725
+ for (const span of node.spans) {
1726
+ spans.push(createTemplateSpanValue(span.expression, mapper));
1727
+ spans.push(createTemplateSpanLiteral(span.literal));
1728
+ }
1729
+ const type = createType({
1730
+ kind: "StringTemplate",
1731
+ node,
1732
+ spans,
1733
+ });
1734
+ return type;
1735
+ }
1736
+ function createTemplateSpanLiteral(node) {
1737
+ return createType({
1738
+ kind: "StringTemplateSpan",
1739
+ node: node,
1740
+ isInterpolated: false,
1741
+ type: getLiteralType(node),
1742
+ });
1743
+ }
1744
+ function createTemplateSpanValue(node, mapper) {
1745
+ return createType({
1746
+ kind: "StringTemplateSpan",
1747
+ node: node,
1748
+ isInterpolated: true,
1749
+ type: getTypeForNode(node, mapper),
1750
+ });
1751
+ }
1720
1752
  function checkStringLiteral(str) {
1721
1753
  return getLiteralType(str);
1722
1754
  }
@@ -2413,6 +2445,10 @@ export function createChecker(program) {
2413
2445
  if (type === nullType) {
2414
2446
  return true;
2415
2447
  }
2448
+ if (type.kind === "StringTemplate") {
2449
+ const [valid] = isStringTemplateSerializable(type);
2450
+ return valid;
2451
+ }
2416
2452
  const valueTypes = new Set(["String", "Number", "Boolean", "EnumMember", "Tuple"]);
2417
2453
  return valueTypes.has(type.kind);
2418
2454
  }
@@ -2561,6 +2597,9 @@ export function createChecker(program) {
2561
2597
  if (value.kind === "Boolean" || value.kind === "String" || value.kind === "Number") {
2562
2598
  return literalTypeToValue(value);
2563
2599
  }
2600
+ else if (value.kind === "StringTemplate") {
2601
+ return stringTemplateToString(value)[0];
2602
+ }
2564
2603
  }
2565
2604
  return value;
2566
2605
  }
@@ -4034,6 +4073,7 @@ export function createChecker(program) {
4034
4073
  case "Number":
4035
4074
  return isNumericLiteralRelatedTo(source, target);
4036
4075
  case "String":
4076
+ case "StringTemplate":
4037
4077
  return areScalarsRelated(target, getStdType("string"));
4038
4078
  case "Boolean":
4039
4079
  return areScalarsRelated(target, getStdType("boolean"));
@@ -4209,6 +4249,9 @@ export function createChecker(program) {
4209
4249
  return [Related.true, []];
4210
4250
  }
4211
4251
  function isAssignableToUnion(source, target, diagnosticTarget, relationCache) {
4252
+ if (source.kind === "UnionVariant" && source.union === target) {
4253
+ return [Related.true, []];
4254
+ }
4212
4255
  for (const option of target.variants.values()) {
4213
4256
  const [related] = isTypeAssignableToInternal(source, option.type, diagnosticTarget, relationCache);
4214
4257
  if (related) {
@@ -4649,6 +4692,9 @@ function marshalArgumentsForJS(args) {
4649
4692
  if (arg.kind === "Boolean" || arg.kind === "String" || arg.kind === "Number") {
4650
4693
  return literalTypeToValue(arg);
4651
4694
  }
4695
+ else if (arg.kind === "StringTemplate") {
4696
+ return stringTemplateToString(arg)[0];
4697
+ }
4652
4698
  return arg;
4653
4699
  });
4654
4700
  }