001 glob declaration syntax

✓ Passing This code compiles and runs correctly.

Code

// Test: Event globbing - parser accepts * in event declaration names
//
// This is the foundation of event globbing - the ability to declare
// a family of events using a wildcard pattern.
//
// Use cases enabled by this:
// - Log levels: ~log.* matches ~log.error, ~log.warn, ~log.info
// - Generics: ~ring.* matches ~ring.new[T:u32;N:1024]
// - Any event family with shared handling logic
//
// VERIFIES:
// 1. Parser accepts * in event names (log.*)
// 2. Emitter skips glob patterns (doesn't try to emit log_*_event)
// 3. Shape checker matches invocations to glob patterns (log.info matches log.*)
// 4. [transform] annotation detected for glob events

// This is a glob pattern event - a template for any log.* event
// Marked [norun] since we're just testing syntax acceptance, not transform execution
~[comptime|transform|norun]pub event log.* {
    message: []const u8,
}
| ok { }

// A concrete event that matches the glob pattern
~pub event log.info {
    message: []const u8,
}
| ok { }

~proc log.info {
    return .{ .ok = .{} };
}

// Test invocation of the concrete event
~log.info(message: "Hello from glob event")
| ok |> _
input.kz