@glint/ember-tsc 1.8.6 → 1.8.8

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/environment-ember-template-imports/-private/environment/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAA0B,MAAM,+BAA+B,CAAC;AAqC/F,MAAM,CAAC,OAAO,UAAU,+BAA+B,CACrD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,sBAAsB,CA6GxB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/environment-ember-template-imports/-private/environment/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAA0B,MAAM,+BAA+B,CAAC;AAqC/F,MAAM,CAAC,OAAO,UAAU,+BAA+B,CACrD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,sBAAsB,CA2HxB"}
@@ -105,8 +105,22 @@ export default function emberTemplateImportsEnvironment(options) {
105
105
  // discriminated unions — e.g. `{{#if (eq foo.kind "a")}}` narrows
106
106
  // `foo` to the matching variant inside the block, which a
107
107
  // boolean-returning helper type cannot do.
108
+ //
109
+ // The RFC 999 `hash` keyword emits as an object literal, matching the
110
+ // `@ember/helper` import below. Emitting it as a helper call instead
111
+ // loses the literal's "freshness": TypeScript's overload resolution
112
+ // rejects a non-fresh argument that omits an optional property during
113
+ // its subtype pass, so `{{x "A" (hash a=1)}}` would pick a catch-all
114
+ // overload that the equivalent inline literal `x('A', { a: 1 })`
115
+ // does not (#1180). `array` intentionally stays a helper call: its
116
+ // `const` signature preserves literal element types at non-contextual
117
+ // positions (see `array-keyword-preserve-literals.test.gts`).
108
118
  ...(hasEmber71BuiltIns()
109
- ? { eq: '===', neq: '!==' }
119
+ ? {
120
+ eq: '===',
121
+ neq: '!==',
122
+ hash: 'object-literal',
123
+ }
110
124
  : {}),
111
125
  ...additionalGlobalSpecialForms,
112
126
  },
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/environment-ember-template-imports/-private/environment/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/environment-ember-template-imports/-private/environment/index.ts"],"names":[],"mappings":"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"}
@@ -8,9 +8,35 @@ export type CorrelatedSpansResult = {
8
8
  partialSpans: Array<PartialCorrelatedSpan>;
9
9
  };
10
10
  /**
11
- * Given an AST node for an embedded template, determines whether it's embedded
12
- * within a class in such a way that that class should be treated as its backing
13
- * value.
11
+ * How the `{{this}}` of an embedded template should be bound, based on where
12
+ * the template sits in the surrounding module:
13
+ *
14
+ * - `'backing-class'`: a class-member `<template>` (the class's own template).
15
+ * The environment transform rewrites that form into a static block, so we
16
+ * look for one on the way up. Emitted as `templateForBackingValue(this, ...)`;
17
+ * `{{this}}` is the class instance, reached through the template context.
18
+ *
19
+ * - `'lexical'`: an expression template (RFC 931 implicit form) inside a class
20
+ * member — a field initializer or method body. Its `this` is the *lexical*
21
+ * `this` of its position, captured like an arrow function's, so `{{this}}`
22
+ * in a field initializer sees the enclosing instance. Treating these as
23
+ * class-backed emitted `templateForBackingValue(this, ...)` into positions
24
+ * where `this` is not the class constructor, which broke `Context` inference
25
+ * and silently typed the template's `{{this}}` as `any` (#1182).
26
+ *
27
+ * - `'context'`: an expression template anywhere else — module scope, a call
28
+ * argument, a heritage clause. `{{this}}` stays on the template context
29
+ * (`__glintRef__.this`) so that consumers which assign a context type to a
30
+ * template-only value keep working: `typeTest(context, <template>...)` from
31
+ * `@glint/type-test` contextually types `Context['this']` through the
32
+ * expected type of the `templateExpression(...)` expression, and emitting
33
+ * the module's lexical `this` (type `undefined`) instead severed that and
34
+ * broke every such type test (#1186).
14
35
  */
15
- export declare function isEmbeddedInClass(ts: TSLib, node: ts.Node): boolean;
36
+ export type TemplateThisBinding = 'backing-class' | 'lexical' | 'context';
37
+ /**
38
+ * Given an AST node for an embedded template, determines how the template's
39
+ * `{{this}}` should be bound. See {@link TemplateThisBinding}.
40
+ */
41
+ export declare function templateThisBinding(ts: TSLib, node: ts.Node): TemplateThisBinding;
16
42
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/transform/template/inlining/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACrF,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,cAAc,EAAE,kBAAkB,GAAG,mBAAmB,CAAC,CAAC;AAEnG,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;IAC9B,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC7B,YAAY,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAC;CAC5C,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,OAAO,CAenE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/transform/template/inlining/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACrF,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,cAAc,EAAE,kBAAkB,GAAG,mBAAmB,CAAC,CAAC;AAEnG,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;IAC9B,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC7B,YAAY,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAC;CAC5C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,MAAM,mBAAmB,GAAG,eAAe,GAAG,SAAS,GAAG,SAAS,CAAC;AAE1E;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,mBAAmB,CAejF"}
@@ -1,21 +1,20 @@
1
1
  /**
2
- * Given an AST node for an embedded template, determines whether it's embedded
3
- * within a class in such a way that that class should be treated as its backing
4
- * value.
2
+ * Given an AST node for an embedded template, determines how the template's
3
+ * `{{this}}` should be bound. See {@link TemplateThisBinding}.
5
4
  */
6
- export function isEmbeddedInClass(ts, node) {
5
+ export function templateThisBinding(ts, node) {
7
6
  let current = node;
8
7
  do {
9
- // TODO: this should likely actually filter on whether the template appears in a
10
- // static block or property definition, but just "am I in a class body" is the
11
- // current status quo and has been ok so far.
8
+ if (ts.isClassStaticBlockDeclaration(current)) {
9
+ return 'backing-class';
10
+ }
12
11
  if (ts.isHeritageClause(current)) {
13
- return false;
12
+ return 'context';
14
13
  }
15
14
  if (ts.isClassLike(current)) {
16
- return true;
15
+ return 'lexical';
17
16
  }
18
17
  } while ((current = current.parent));
19
- return false;
18
+ return 'context';
20
19
  }
21
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/transform/template/inlining/index.ts"],"names":[],"mappings":"AAYA;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAAS,EAAE,IAAa;IACxD,IAAI,OAAO,GAAmB,IAAI,CAAC;IACnC,GAAG,CAAC;QACF,gFAAgF;QAChF,8EAA8E;QAC9E,6CAA6C;QAC7C,IAAI,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;YACjC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE;IAErC,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/transform/template/inlining/index.ts"],"names":[],"mappings":"AAwCA;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,EAAS,EAAE,IAAa;IAC1D,IAAI,OAAO,GAAmB,IAAI,CAAC;IACnC,GAAG,CAAC;QACF,IAAI,EAAE,CAAC,6BAA6B,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9C,OAAO,eAAe,CAAC;QACzB,CAAC;QACD,IAAI,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;YACjC,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE;IAErC,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tagged-strings.d.ts","sourceRoot":"","sources":["../../../../src/transform/template/inlining/tagged-strings.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EAIlB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAU,KAAK,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,EAAoB,UAAU,EAAkB,MAAM,0BAA0B,CAAC;AACxF,OAAO,EAAE,qBAAqB,EAA4C,MAAM,YAAY,CAAC;AAE7F,wBAAgB,4BAA4B,CAC1C,EAAE,EAAE,KAAK,EACT,IAAI,EAAE,EAAE,CAAC,wBAAwB,EACjC,IAAI,EAAE,iBAAiB,GAAG,SAAS,EACnC,MAAM,EAAE,UAAU,EAClB,WAAW,EAAE,gBAAgB,GAC5B,qBAAqB,CAsHvB"}
1
+ {"version":3,"file":"tagged-strings.d.ts","sourceRoot":"","sources":["../../../../src/transform/template/inlining/tagged-strings.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EAIlB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAU,KAAK,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,EAAoB,UAAU,EAAkB,MAAM,0BAA0B,CAAC;AACxF,OAAO,EAAE,qBAAqB,EAA8C,MAAM,YAAY,CAAC;AAE/F,wBAAgB,4BAA4B,CAC1C,EAAE,EAAE,KAAK,EACT,IAAI,EAAE,EAAE,CAAC,wBAAwB,EACjC,IAAI,EAAE,iBAAiB,GAAG,SAAS,EACnC,MAAM,EAAE,UAAU,EAClB,WAAW,EAAE,gBAAgB,GAC5B,qBAAqB,CAyHvB"}
@@ -1,6 +1,6 @@
1
1
  import { assert } from '../../util.js';
2
2
  import { templateToTypescript } from '../template-to-typescript.js';
3
- import { isEmbeddedInClass } from './index.js';
3
+ import { templateThisBinding } from './index.js';
4
4
  export function calculateTaggedTemplateSpans(ts, node, meta, script, environment) {
5
5
  let directives = [];
6
6
  let errors = [];
@@ -62,6 +62,7 @@ export function calculateTaggedTemplateSpans(ts, node, meta, script, environment
62
62
  // `bind-invokable` special form (which routes through `Globals.modifier`).
63
63
  let keywordSpecialForms = info.tagConfig.specialForms?.globals ?? {};
64
64
  let effectiveGlobals = globals?.filter((name) => name in keywordSpecialForms || !(name in importedBindings));
65
+ let thisBinding = templateThisBinding(ts, node);
65
66
  let transformedTemplate = templateToTypescript(template, {
66
67
  typesModule: typesModule,
67
68
  meta,
@@ -69,7 +70,8 @@ export function calculateTaggedTemplateSpans(ts, node, meta, script, environment
69
70
  globals: effectiveGlobals,
70
71
  embeddingSyntax,
71
72
  specialForms,
72
- backingValue: isEmbeddedInClass(ts, node) ? 'this' : undefined,
73
+ backingValue: thisBinding === 'backing-class' ? 'this' : undefined,
74
+ lexicalThis: thisBinding === 'lexical',
73
75
  useJsDoc: environment.isUntypedScript(script.filename),
74
76
  });
75
77
  for (let { message, location } of transformedTemplate.errors) {
@@ -1 +1 @@
1
- {"version":3,"file":"tagged-strings.js","sourceRoot":"","sources":["../../../../src/transform/template/inlining/tagged-strings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tagged-strings.js","sourceRoot":"","sources":["../../../../src/transform/template/inlining/tagged-strings.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ export type TemplateToTypescriptOptions = {
5
5
  meta?: GlintEmitMetadata | undefined;
6
6
  globals?: Array<string> | undefined;
7
7
  backingValue?: string;
8
+ lexicalThis?: boolean;
8
9
  preamble?: Array<string>;
9
10
  embeddingSyntax?: EmbeddingSyntax;
10
11
  useJsDoc?: boolean;
@@ -15,5 +16,5 @@ export type TemplateToTypescriptOptions = {
15
16
  * of that template's contents, as well as a mapping of offsets and ranges between
16
17
  * the original and transformed contents.
17
18
  */
18
- export declare function templateToTypescript(originalTemplate: string, { typesModule, globals, meta, backingValue, preamble, embeddingSyntax, specialForms, useJsDoc, }: TemplateToTypescriptOptions): RewriteResult;
19
+ export declare function templateToTypescript(originalTemplate: string, { typesModule, globals, meta, backingValue, lexicalThis, preamble, embeddingSyntax, specialForms, useJsDoc, }: TemplateToTypescriptOptions): RewriteResult;
19
20
  //# sourceMappingURL=template-to-typescript.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"template-to-typescript.d.ts","sourceRoot":"","sources":["../../../src/transform/template/template-to-typescript.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAGpF,OAAO,EAAE,eAAe,EAAuB,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAyBjG,MAAM,MAAM,2BAA2B,GAAG;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACrC,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IACpC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACzB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CACjD,CAAC;AAkBF;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,gBAAgB,EAAE,MAAM,EACxB,EACE,WAAW,EACX,OAAO,EACP,IAAI,EACJ,YAAY,EACZ,QAAa,EACb,eAA4C,EAC5C,YAAiB,EACjB,QAAgB,GACjB,EAAE,2BAA2B,GAC7B,aAAa,CAw9Cf"}
1
+ {"version":3,"file":"template-to-typescript.d.ts","sourceRoot":"","sources":["../../../src/transform/template/template-to-typescript.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAGpF,OAAO,EAAE,eAAe,EAAuB,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAyBjG,MAAM,MAAM,2BAA2B,GAAG;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACrC,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IACpC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACzB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CACjD,CAAC;AAkBF;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,gBAAgB,EAAE,MAAM,EACxB,EACE,WAAW,EACX,OAAO,EACP,IAAI,EACJ,YAAY,EACZ,WAAmB,EACnB,QAAa,EACb,eAA4C,EAC5C,YAAiB,EACjB,QAAgB,GACjB,EAAE,2BAA2B,GAC7B,aAAa,CA0/Cf"}
@@ -40,7 +40,7 @@ function getPathParts(node) {
40
40
  * of that template's contents, as well as a mapping of offsets and ranges between
41
41
  * the original and transformed contents.
42
42
  */
43
- export function templateToTypescript(originalTemplate, { typesModule, globals, meta, backingValue, preamble = [], embeddingSyntax = { prefix: '', suffix: '' }, specialForms = {}, useJsDoc = false, }) {
43
+ export function templateToTypescript(originalTemplate, { typesModule, globals, meta, backingValue, lexicalThis = false, preamble = [], embeddingSyntax = { prefix: '', suffix: '' }, specialForms = {}, useJsDoc = false, }) {
44
44
  let { prefix, suffix } = embeddingSyntax;
45
45
  let template = `${''.padEnd(prefix.length)}${originalTemplate}${''.padEnd(suffix.length)}`;
46
46
  return mapTemplateContents(originalTemplate, { embeddingSyntax }, (ast, mapper) => {
@@ -110,14 +110,21 @@ export function templateToTypescript(originalTemplate, { typesModule, globals, m
110
110
  mapper.text(`.templateForBackingValue(${backingValue}, function(__glintRef__`);
111
111
  }
112
112
  else {
113
- mapper.text(`.templateExpression(function(__glintRef__`);
113
+ // An expression template (RFC 931 implicit form) inside a class member
114
+ // captures the lexical `this` of its position, the way an arrow
115
+ // function does — a class field initializer sees the enclosing
116
+ // instance. Emitting an arrow (and, when `lexicalThis` is set, raw
117
+ // `this` for `{{this.*}}` paths — see `emitPathContents`) lets
118
+ // TypeScript apply exactly those semantics. (#1182)
119
+ mapper.text(`.templateExpression((__glintRef__`);
114
120
  }
115
121
  if (useJsDoc) {
116
- mapper.text(`, /** @type {typeof import("${typesModule}")} */ __glintDSL__) {`);
122
+ mapper.text(`, /** @type {typeof import("${typesModule}")} */ __glintDSL__)`);
117
123
  }
118
124
  else {
119
- mapper.text(`, __glintDSL__: typeof import("${typesModule}")) {`);
125
+ mapper.text(`, __glintDSL__: typeof import("${typesModule}"))`);
120
126
  }
127
+ mapper.text(backingValue ? ' {' : ' => {');
121
128
  mapper.newline();
122
129
  mapper.indent();
123
130
  for (let line of preamble) {
@@ -243,6 +250,13 @@ export function templateToTypescript(originalTemplate, { typesModule, globals, m
243
250
  formInfo.form === '||' ||
244
251
  formInfo.form === '!');
245
252
  }
253
+ // `object-literal`/`array-literal`: these emit a native literal (never a
254
+ // keyword call), so TypeScript treats the result as a fresh literal —
255
+ // contextual typing, excess property checking, and overload resolution all
256
+ // behave exactly as they would for a hand-written literal. (#1180)
257
+ function isLiteralForm(formInfo) {
258
+ return formInfo.form === 'object-literal' || formInfo.form === 'array-literal';
259
+ }
246
260
  // Emit a single operand as `(__glintDSL__.noop(keyword), <operand>)` when the
247
261
  // form requires consumption, so the discarded keyword reference (which
248
262
  // preserves hover/go-to-definition on e.g. `eq`/`neq`) rides along with the
@@ -420,14 +434,20 @@ export function templateToTypescript(originalTemplate, { typesModule, globals, m
420
434
  if (typeof specialForms[name] === 'string' && !scope.hasBinding(name)) {
421
435
  let isGlobal = globals ? globals.includes(name) : true;
422
436
  let form = specialForms[name];
423
- // Operator special forms (`===`, `!==`, `&&`, `||`, `!`) emit only the
424
- // operator expression never a reference to the keyword itself. For a
425
- // documented global keyword (e.g. `eq`/`neq`) that would drop hover
426
- // docs and go-to-definition, so we still emit a discarded reference to
427
- // it. Narrowing is preserved by attaching that reference to the first
428
- // operand rather than wrapping the whole expression see
429
- // `emitConsumedOperand` (`((noop(eq), a) === b)`). (#1169)
430
- return { name, form, requiresConsumption: !isGlobal || isOperatorForm({ form }) };
437
+ // Operator special forms (`===`, `!==`, `&&`, `||`, `!`) and literal
438
+ // forms (`object-literal`, `array-literal`) emit only the resulting
439
+ // expression never a reference to the keyword itself. For a
440
+ // documented global keyword (e.g. `eq`/`neq`, `hash`) that would drop
441
+ // hover docs and go-to-definition, so we still emit a discarded
442
+ // reference to it. For operator forms, narrowing is preserved by
443
+ // attaching that reference to the first operand rather than wrapping
444
+ // the whole expression see `emitConsumedOperand`
445
+ // (`((noop(eq), a) === b)`). (#1169)
446
+ return {
447
+ name,
448
+ form,
449
+ requiresConsumption: !isGlobal || isOperatorForm({ form }) || isLiteralForm({ form }),
450
+ };
431
451
  }
432
452
  }
433
453
  return null;
@@ -1098,7 +1118,19 @@ export function templateToTypescript(originalTemplate, { typesModule, globals, m
1098
1118
  function emitPathContents(parts, start, kind) {
1099
1119
  if (kind === 'this') {
1100
1120
  let thisStart = template.indexOf('this', start);
1101
- mapper.text('__glintRef__.');
1121
+ // An expression template inside a class member (`lexicalThis`) sees
1122
+ // the *lexical* `this` of its position (its body is emitted as an
1123
+ // arrow function), so we reference it directly (#1182). Everywhere
1124
+ // else `this` comes from the template context: a class-member
1125
+ // template's context holds the backing class instance, and an
1126
+ // expression template elsewhere (module scope, a call argument) gets
1127
+ // its context from contextual typing — e.g. `typeTest` from
1128
+ // `@glint/type-test` assigns `Context['this']` through the expected
1129
+ // type of the expression, which raw lexical `this` (type `undefined`
1130
+ // at module scope) would sever (#1186).
1131
+ if (!lexicalThis) {
1132
+ mapper.text('__glintRef__.');
1133
+ }
1102
1134
  mapper.identifier('this', thisStart);
1103
1135
  start = template.indexOf('.', thisStart) + 1;
1104
1136
  }
@@ -1 +1 @@
1
- {"version":3,"file":"template-to-typescript.js","sourceRoot":"","sources":["../../../src/transform/template/template-to-typescript.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"template-to-typescript.js","sourceRoot":"","sources":["../../../src/transform/template/template-to-typescript.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@glint/ember-tsc",
3
- "version": "1.8.6",
3
+ "version": "1.8.8",
4
4
  "repository": "typed-ember/glint",
5
5
  "description": "A CLI for performing typechecking on Glimmer templates",
6
6
  "license": "MIT",
@@ -101,8 +101,8 @@
101
101
  "execa": "^4.0.1",
102
102
  "strip-ansi": "^6.0.0",
103
103
  "typescript": "^5.9.3",
104
- "glint-monorepo-test-utils": "0.0.0",
105
- "@glint/type-test": "2.0.1"
104
+ "@glint/type-test": "2.0.1",
105
+ "glint-monorepo-test-utils": "0.0.0"
106
106
  },
107
107
  "publishConfig": {
108
108
  "access": "public"
@@ -113,8 +113,22 @@ export default function emberTemplateImportsEnvironment(
113
113
  // discriminated unions — e.g. `{{#if (eq foo.kind "a")}}` narrows
114
114
  // `foo` to the matching variant inside the block, which a
115
115
  // boolean-returning helper type cannot do.
116
+ //
117
+ // The RFC 999 `hash` keyword emits as an object literal, matching the
118
+ // `@ember/helper` import below. Emitting it as a helper call instead
119
+ // loses the literal's "freshness": TypeScript's overload resolution
120
+ // rejects a non-fresh argument that omits an optional property during
121
+ // its subtype pass, so `{{x "A" (hash a=1)}}` would pick a catch-all
122
+ // overload that the equivalent inline literal `x('A', { a: 1 })`
123
+ // does not (#1180). `array` intentionally stays a helper call: its
124
+ // `const` signature preserves literal element types at non-contextual
125
+ // positions (see `array-keyword-preserve-literals.test.gts`).
116
126
  ...(hasEmber71BuiltIns()
117
- ? ({ eq: '===', neq: '!==' } satisfies GlintSpecialFormConfig['globals'])
127
+ ? ({
128
+ eq: '===',
129
+ neq: '!==',
130
+ hash: 'object-literal',
131
+ } satisfies GlintSpecialFormConfig['globals'])
118
132
  : {}),
119
133
  ...additionalGlobalSpecialForms,
120
134
  },
@@ -11,23 +11,50 @@ export type CorrelatedSpansResult = {
11
11
  };
12
12
 
13
13
  /**
14
- * Given an AST node for an embedded template, determines whether it's embedded
15
- * within a class in such a way that that class should be treated as its backing
16
- * value.
14
+ * How the `{{this}}` of an embedded template should be bound, based on where
15
+ * the template sits in the surrounding module:
16
+ *
17
+ * - `'backing-class'`: a class-member `<template>` (the class's own template).
18
+ * The environment transform rewrites that form into a static block, so we
19
+ * look for one on the way up. Emitted as `templateForBackingValue(this, ...)`;
20
+ * `{{this}}` is the class instance, reached through the template context.
21
+ *
22
+ * - `'lexical'`: an expression template (RFC 931 implicit form) inside a class
23
+ * member — a field initializer or method body. Its `this` is the *lexical*
24
+ * `this` of its position, captured like an arrow function's, so `{{this}}`
25
+ * in a field initializer sees the enclosing instance. Treating these as
26
+ * class-backed emitted `templateForBackingValue(this, ...)` into positions
27
+ * where `this` is not the class constructor, which broke `Context` inference
28
+ * and silently typed the template's `{{this}}` as `any` (#1182).
29
+ *
30
+ * - `'context'`: an expression template anywhere else — module scope, a call
31
+ * argument, a heritage clause. `{{this}}` stays on the template context
32
+ * (`__glintRef__.this`) so that consumers which assign a context type to a
33
+ * template-only value keep working: `typeTest(context, <template>...)` from
34
+ * `@glint/type-test` contextually types `Context['this']` through the
35
+ * expected type of the `templateExpression(...)` expression, and emitting
36
+ * the module's lexical `this` (type `undefined`) instead severed that and
37
+ * broke every such type test (#1186).
17
38
  */
18
- export function isEmbeddedInClass(ts: TSLib, node: ts.Node): boolean {
39
+ export type TemplateThisBinding = 'backing-class' | 'lexical' | 'context';
40
+
41
+ /**
42
+ * Given an AST node for an embedded template, determines how the template's
43
+ * `{{this}}` should be bound. See {@link TemplateThisBinding}.
44
+ */
45
+ export function templateThisBinding(ts: TSLib, node: ts.Node): TemplateThisBinding {
19
46
  let current: ts.Node | null = node;
20
47
  do {
21
- // TODO: this should likely actually filter on whether the template appears in a
22
- // static block or property definition, but just "am I in a class body" is the
23
- // current status quo and has been ok so far.
48
+ if (ts.isClassStaticBlockDeclaration(current)) {
49
+ return 'backing-class';
50
+ }
24
51
  if (ts.isHeritageClause(current)) {
25
- return false;
52
+ return 'context';
26
53
  }
27
54
  if (ts.isClassLike(current)) {
28
- return true;
55
+ return 'lexical';
29
56
  }
30
57
  } while ((current = current.parent));
31
58
 
32
- return false;
59
+ return 'context';
33
60
  }
@@ -9,7 +9,7 @@ import { GlintEnvironment } from '../../../config/index.js';
9
9
  import { assert, TSLib } from '../../util.js';
10
10
  import { templateToTypescript } from '../template-to-typescript.js';
11
11
  import { Directive, Range, SourceFile, TransformError } from '../transformed-module.js';
12
- import { CorrelatedSpansResult, isEmbeddedInClass, PartialCorrelatedSpan } from './index.js';
12
+ import { CorrelatedSpansResult, templateThisBinding, PartialCorrelatedSpan } from './index.js';
13
13
 
14
14
  export function calculateTaggedTemplateSpans(
15
15
  ts: TSLib,
@@ -92,6 +92,8 @@ export function calculateTaggedTemplateSpans(
92
92
  (name) => name in keywordSpecialForms || !(name in importedBindings),
93
93
  );
94
94
 
95
+ let thisBinding = templateThisBinding(ts, node);
96
+
95
97
  let transformedTemplate = templateToTypescript(template, {
96
98
  typesModule: typesModule,
97
99
  meta,
@@ -99,7 +101,8 @@ export function calculateTaggedTemplateSpans(
99
101
  globals: effectiveGlobals,
100
102
  embeddingSyntax,
101
103
  specialForms,
102
- backingValue: isEmbeddedInClass(ts, node) ? 'this' : undefined,
104
+ backingValue: thisBinding === 'backing-class' ? 'this' : undefined,
105
+ lexicalThis: thisBinding === 'lexical',
103
106
  useJsDoc: environment.isUntypedScript(script.filename),
104
107
  });
105
108
 
@@ -32,6 +32,7 @@ export type TemplateToTypescriptOptions = {
32
32
  meta?: GlintEmitMetadata | undefined;
33
33
  globals?: Array<string> | undefined;
34
34
  backingValue?: string;
35
+ lexicalThis?: boolean;
35
36
  preamble?: Array<string>;
36
37
  embeddingSyntax?: EmbeddingSyntax;
37
38
  useJsDoc?: boolean;
@@ -66,6 +67,7 @@ export function templateToTypescript(
66
67
  globals,
67
68
  meta,
68
69
  backingValue,
70
+ lexicalThis = false,
69
71
  preamble = [],
70
72
  embeddingSyntax = { prefix: '', suffix: '' },
71
73
  specialForms = {},
@@ -150,15 +152,23 @@ export function templateToTypescript(
150
152
  if (backingValue) {
151
153
  mapper.text(`.templateForBackingValue(${backingValue}, function(__glintRef__`);
152
154
  } else {
153
- mapper.text(`.templateExpression(function(__glintRef__`);
155
+ // An expression template (RFC 931 implicit form) inside a class member
156
+ // captures the lexical `this` of its position, the way an arrow
157
+ // function does — a class field initializer sees the enclosing
158
+ // instance. Emitting an arrow (and, when `lexicalThis` is set, raw
159
+ // `this` for `{{this.*}}` paths — see `emitPathContents`) lets
160
+ // TypeScript apply exactly those semantics. (#1182)
161
+ mapper.text(`.templateExpression((__glintRef__`);
154
162
  }
155
163
 
156
164
  if (useJsDoc) {
157
- mapper.text(`, /** @type {typeof import("${typesModule}")} */ __glintDSL__) {`);
165
+ mapper.text(`, /** @type {typeof import("${typesModule}")} */ __glintDSL__)`);
158
166
  } else {
159
- mapper.text(`, __glintDSL__: typeof import("${typesModule}")) {`);
167
+ mapper.text(`, __glintDSL__: typeof import("${typesModule}"))`);
160
168
  }
161
169
 
170
+ mapper.text(backingValue ? ' {' : ' => {');
171
+
162
172
  mapper.newline();
163
173
  mapper.indent();
164
174
 
@@ -319,6 +329,14 @@ export function templateToTypescript(
319
329
  );
320
330
  }
321
331
 
332
+ // `object-literal`/`array-literal`: these emit a native literal (never a
333
+ // keyword call), so TypeScript treats the result as a fresh literal —
334
+ // contextual typing, excess property checking, and overload resolution all
335
+ // behave exactly as they would for a hand-written literal. (#1180)
336
+ function isLiteralForm(formInfo: Pick<SpecialFormInfo, 'form'>): boolean {
337
+ return formInfo.form === 'object-literal' || formInfo.form === 'array-literal';
338
+ }
339
+
322
340
  // Emit a single operand as `(__glintDSL__.noop(keyword), <operand>)` when the
323
341
  // form requires consumption, so the discarded keyword reference (which
324
342
  // preserves hover/go-to-definition on e.g. `eq`/`neq`) rides along with the
@@ -600,14 +618,20 @@ export function templateToTypescript(
600
618
  let isGlobal = globals ? globals.includes(name) : true;
601
619
  let form = specialForms[name];
602
620
 
603
- // Operator special forms (`===`, `!==`, `&&`, `||`, `!`) emit only the
604
- // operator expression never a reference to the keyword itself. For a
605
- // documented global keyword (e.g. `eq`/`neq`) that would drop hover
606
- // docs and go-to-definition, so we still emit a discarded reference to
607
- // it. Narrowing is preserved by attaching that reference to the first
608
- // operand rather than wrapping the whole expression see
609
- // `emitConsumedOperand` (`((noop(eq), a) === b)`). (#1169)
610
- return { name, form, requiresConsumption: !isGlobal || isOperatorForm({ form }) };
621
+ // Operator special forms (`===`, `!==`, `&&`, `||`, `!`) and literal
622
+ // forms (`object-literal`, `array-literal`) emit only the resulting
623
+ // expression never a reference to the keyword itself. For a
624
+ // documented global keyword (e.g. `eq`/`neq`, `hash`) that would drop
625
+ // hover docs and go-to-definition, so we still emit a discarded
626
+ // reference to it. For operator forms, narrowing is preserved by
627
+ // attaching that reference to the first operand rather than wrapping
628
+ // the whole expression see `emitConsumedOperand`
629
+ // (`((noop(eq), a) === b)`). (#1169)
630
+ return {
631
+ name,
632
+ form,
633
+ requiresConsumption: !isGlobal || isOperatorForm({ form }) || isLiteralForm({ form }),
634
+ };
611
635
  }
612
636
  }
613
637
 
@@ -1481,7 +1505,19 @@ export function templateToTypescript(
1481
1505
  function emitPathContents(parts: string[], start: number, kind: PathKind): void {
1482
1506
  if (kind === 'this') {
1483
1507
  let thisStart = template.indexOf('this', start);
1484
- mapper.text('__glintRef__.');
1508
+ // An expression template inside a class member (`lexicalThis`) sees
1509
+ // the *lexical* `this` of its position (its body is emitted as an
1510
+ // arrow function), so we reference it directly (#1182). Everywhere
1511
+ // else `this` comes from the template context: a class-member
1512
+ // template's context holds the backing class instance, and an
1513
+ // expression template elsewhere (module scope, a call argument) gets
1514
+ // its context from contextual typing — e.g. `typeTest` from
1515
+ // `@glint/type-test` assigns `Context['this']` through the expected
1516
+ // type of the expression, which raw lexical `this` (type `undefined`
1517
+ // at module scope) would sever (#1186).
1518
+ if (!lexicalThis) {
1519
+ mapper.text('__glintRef__.');
1520
+ }
1485
1521
  mapper.identifier('this', thisStart);
1486
1522
  start = template.indexOf('.', thisStart) + 1;
1487
1523
  } else if (kind === 'arg') {