e7738de6d2
CI / Deep Native Runtime Cases (1/6) (push) Has been skipped
CI / Native Preflight (push) Failing after 1s
CI / Native Runtime Cases (1/2) (push) Failing after 0s
CI / Native Runtime Cases (2/2) (push) Failing after 1s
CI / Native Metadata Reports (push) Failing after 0s
CI / Native Direct Backend Artifacts (push) Failing after 0s
CI / Native Sanitizer Smoke (push) Failing after 1s
CI / Command Contract Snapshots (push) Failing after 1s
CI / Deep Conformance Suite (push) Has been skipped
CI / Graph Build Perf (push) Failing after 1s
CI / Deep Native Preflight (push) Has been skipped
CI / Deep Native Runtime Cases (2/6) (push) Has been skipped
CI / Deep Native Runtime Cases (3/6) (push) Has been skipped
CI / Conformance Suite (push) Failing after 1s
CI / Workspace Checks (push) Failing after 0s
CI / Deep Native Runtime Cases (5/6) (push) Has been skipped
CI / Deep Native Runtime Cases (6/6) (push) Has been skipped
CI / Deep Native Runtime Cases (4/6) (push) Has been skipped
CI / Deep Graph Build Perf (push) Has been skipped
49 lines
1.1 KiB
Plaintext
49 lines
1.1 KiB
Plaintext
const enabled: Bool = meta(target.pointerWidth >= 32 && hasField(Point, "x"))
|
|
|
|
const selected: Mode = Mode.fast
|
|
|
|
const field_count: usize = meta fieldCount(Point)
|
|
|
|
const field_type: String = meta fieldType(Point, "x")
|
|
|
|
const mode_cases: usize = meta enumCaseCount(Mode)
|
|
|
|
const has_tiny: Bool = meta hasEnumCase(Mode, "tiny")
|
|
|
|
const event_cases: usize = meta choiceCaseCount(Event)
|
|
|
|
const has_tick: Bool = meta hasChoiceCase(Event, "tick")
|
|
|
|
type Point {
|
|
x: i32,
|
|
y: i32,
|
|
}
|
|
|
|
type Gate<static enabledFlag: Bool, static selectedMode: Mode> {
|
|
value: i32,
|
|
}
|
|
|
|
enum Mode: u8 {
|
|
fast,
|
|
tiny,
|
|
}
|
|
|
|
choice Event {
|
|
none,
|
|
tick: i32,
|
|
}
|
|
|
|
fn readGate<static enabledFlag: Bool, static selectedMode: Mode>(gate: ref<Gate<enabledFlag, selectedMode>>) -> i32 {
|
|
if enabledFlag {
|
|
return gate.value
|
|
}
|
|
return 0
|
|
}
|
|
|
|
pub fn main(world: World) -> Void raises {
|
|
let gate: Gate<enabled, selected> = Gate { value: 29 }
|
|
if readGate<enabled, selected>(&gate) == 29 && field_count == 2 && mode_cases == 2 && event_cases == 2 && has_tiny && has_tick && std.mem.eql(field_type, "i32") {
|
|
check world.out.write("compile time v1 ok\n")
|
|
}
|
|
}
|