diff --git a/bin/build-elements.mjs b/bin/build-elements.mjs index 13ad6af2e..7936e5849 100644 --- a/bin/build-elements.mjs +++ b/bin/build-elements.mjs @@ -87,6 +87,7 @@ export declare namespace HtmlElementAttributes { function createSvgElementAttributesMap() { let svgElementsContent = ` export declare namespace SvgElementAttributes { + type GenericAttributes = HtmlElementAttributes.GenericAttributes; `; const processed = new Set(); let mergedSvgElements = 'interface SvgElements {\n'; diff --git a/packages/template/-private/dsl/elements.d.ts b/packages/template/-private/dsl/elements.d.ts index a2d22195d..e3247f6b6 100644 --- a/packages/template/-private/dsl/elements.d.ts +++ b/packages/template/-private/dsl/elements.d.ts @@ -685,6 +685,7 @@ interface HtmlElements { } export declare namespace SvgElementAttributes { +type GenericAttributes = HtmlElementAttributes.GenericAttributes; interface SVGAElementAttributes extends GenericAttributes { ['alignment-baseline']: AttrValue; ['baseline-shift']: AttrValue; diff --git a/test-packages/package-test-core/__tests__/language-server/diagnostics.test.ts b/test-packages/package-test-core/__tests__/language-server/diagnostics.test.ts index aba4ddbff..f432d13f6 100644 --- a/test-packages/package-test-core/__tests__/language-server/diagnostics.test.ts +++ b/test-packages/package-test-core/__tests__/language-server/diagnostics.test.ts @@ -636,4 +636,29 @@ describe('Language Server: Diagnostics (ts plugin)', () => { ] `); }); + + test('svg does not produce false positives', async () => { + const code = stripIndent` + import Component from '@glimmer/component'; + + export default class MyComponent { + + } + `; + + const diagnostics = await requestDiagnostics( + 'ts-template-imports-app/src/ephemeral-index.gts', + 'glimmer-ts', + code, + ); + + expect(JSON.stringify(diagnostics)).toBe('[]'); + expect(diagnostics.length).toBe(0); + }); });