020 transitive imports

✓ Passing This code compiles and runs correctly.

Code

// Test: Transitive File Import
//
// Tests that A -> B -> C import chain works at the PARSER/AST level:
// - input.kz imports helper.kz
// - helper.kz imports base.kz
// - ALL THREE modules should appear in the AST JSON output
//
// This test verifies the parser correctly handles transitive imports

const std = @import("std");

// Import helper (which itself imports base)
~import "$app/helper"
input.kz

Imported Files

// Base module - lowest level in transitive import chain
// This file should appear in AST even though input.kz doesn't directly import it

const std = @import("std");

~pub event double { x: i32 }
| doubled { result: i32 }

~proc double {
    const result = x * 2;
    return .{ .doubled = .{ .result = result } };
}
base.kz
// Helper module - middle level in transitive import chain
// Imports base.kz (transitive import)

const std = @import("std");

// TRANSITIVE IMPORT: helper imports base
~import "$app/base"

~pub event quadruple { x: i32 }
| done { result: i32 }
helper.kz