diff --git a/packages/compiler-vapor/__tests__/transforms/__snapshots__/vIf.spec.ts.snap b/packages/compiler-vapor/__tests__/transforms/__snapshots__/vIf.spec.ts.snap index 16ab6ae3720..c41dc9226c5 100644 --- a/packages/compiler-vapor/__tests__/transforms/__snapshots__/vIf.spec.ts.snap +++ b/packages/compiler-vapor/__tests__/transforms/__snapshots__/vIf.spec.ts.snap @@ -134,3 +134,29 @@ export function render(_ctx) { return n0 }" `; + +exports[`compiler: v-if > v-if + v-if / v-else[-if] 1`] = ` +"import { setInsertionState as _setInsertionState, createIf as _createIf, template as _template } from 'vue'; +const t0 = _template("foo") +const t1 = _template("bar") +const t2 = _template("baz") +const t3 = _template("
", true) + +export function render(_ctx) { + const n8 = t3() + _setInsertionState(n8) + const n0 = _createIf(() => (_ctx.foo), () => { + const n2 = t0() + return n2 + }) + _setInsertionState(n8) + const n3 = _createIf(() => (_ctx.bar), () => { + const n5 = t1() + return n5 + }, () => { + const n7 = t2() + return n7 + }) + return n8 +}" +`; diff --git a/packages/compiler-vapor/__tests__/transforms/__snapshots__/vSlot.spec.ts.snap b/packages/compiler-vapor/__tests__/transforms/__snapshots__/vSlot.spec.ts.snap index 4ecd8c76a7e..5d31be656ab 100644 --- a/packages/compiler-vapor/__tests__/transforms/__snapshots__/vSlot.spec.ts.snap +++ b/packages/compiler-vapor/__tests__/transforms/__snapshots__/vSlot.spec.ts.snap @@ -252,3 +252,25 @@ export function render(_ctx) { return n1 }" `; + +exports[`compiler: transform slot > slot + v-if / v-else[-if] should not cause error 1`] = ` +"import { resolveComponent as _resolveComponent, setInsertionState as _setInsertionState, createSlot as _createSlot, createComponentWithFallback as _createComponentWithFallback, createIf as _createIf, template as _template } from 'vue'; +const t0 = _template("", true) + +export function render(_ctx) { + const _component_Foo = _resolveComponent("Foo") + const _component_Bar = _resolveComponent("Bar") + const n6 = t0() + _setInsertionState(n6) + const n0 = _createSlot("foo", null) + _setInsertionState(n6) + const n1 = _createIf(() => (true), () => { + const n3 = _createComponentWithFallback(_component_Foo) + return n3 + }, () => { + const n5 = _createComponentWithFallback(_component_Bar) + return n5 + }) + return n6 +}" +`; diff --git a/packages/compiler-vapor/__tests__/transforms/vIf.spec.ts b/packages/compiler-vapor/__tests__/transforms/vIf.spec.ts index 66cdf7b9306..f51988e2e4d 100644 --- a/packages/compiler-vapor/__tests__/transforms/vIf.spec.ts +++ b/packages/compiler-vapor/__tests__/transforms/vIf.spec.ts @@ -215,6 +215,17 @@ describe('compiler: v-if', () => { }) }) + test('v-if + v-if / v-else[-if]', () => { + const { code } = compileWithVIf( + `