diff --git a/packages/language-core/lib/codegen/template/templateChild.ts b/packages/language-core/lib/codegen/template/templateChild.ts index ad3608242f..ea61cbb83c 100644 --- a/packages/language-core/lib/codegen/template/templateChild.ts +++ b/packages/language-core/lib/codegen/template/templateChild.ts @@ -49,6 +49,11 @@ export function* generateTemplateChild( const shouldInheritRootNodeAttrs = options.inheritAttrs; + const cur = node as CompilerDOM.ElementNode | CompilerDOM.IfNode | CompilerDOM.ForNode; + if (cur.codegenNode?.type === CompilerDOM.NodeTypes.JS_CACHE_EXPRESSION) { + cur.codegenNode = cur.codegenNode.value as any; + } + if (node.type === CompilerDOM.NodeTypes.ROOT) { let prev: CompilerDOM.TemplateChildNode | undefined; if (shouldInheritRootNodeAttrs && node.children.length === 1 && node.children[0].type === CompilerDOM.NodeTypes.ELEMENT) { diff --git a/test-workspace/tsc/passedFixtures/vue3/#4827/child.vue b/test-workspace/tsc/passedFixtures/vue3/#4827/child.vue new file mode 100644 index 0000000000..4e508d7cc9 --- /dev/null +++ b/test-workspace/tsc/passedFixtures/vue3/#4827/child.vue @@ -0,0 +1,3 @@ + diff --git a/test-workspace/tsc/passedFixtures/vue3/#4827/main.vue b/test-workspace/tsc/passedFixtures/vue3/#4827/main.vue new file mode 100644 index 0000000000..18d02c1782 --- /dev/null +++ b/test-workspace/tsc/passedFixtures/vue3/#4827/main.vue @@ -0,0 +1,7 @@ + + + \ No newline at end of file