The JIT that runs makepad apps from source: lexer, front end, type checker, lazy borrow checker (Gandalf; `--check-first` opts in), codegen, session and warm/cold caches keyed by compiler stamp, provided crates bound late, startup images, live patching. User-facing name is `makepad run` (binary `makepad`, MAKEPAD_RUN_* env, ~/.makepad-run); libs/relax stays the internal library name. `makepad check` reports rustc-style diagnostics with rustc error codes and checks a whole workspace (`--workspace`). Runs on macOS, Linux, Windows and Android. makepad-remote: one tool schema for apps and the WM (app/1): grabs, captures, traces, frame profiles and tweaks. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
39 lines
726 B
Rust
39 lines
726 B
Rust
// Relax: #[cfg] on statements inside fn bodies is stripped before type checking.
|
|
|
|
fn pick() -> i64 {
|
|
let mut x = 1;
|
|
#[cfg(target_os = "nonexistent_os")]
|
|
{
|
|
x += 100;
|
|
}
|
|
#[cfg(not(target_os = "nonexistent_os"))]
|
|
{
|
|
x += 10;
|
|
}
|
|
#[cfg(target_os = "nonexistent_os")]
|
|
let y = 1000;
|
|
#[cfg(not(target_os = "nonexistent_os"))]
|
|
let y = 0;
|
|
#[cfg(target_os = "nonexistent_os")]
|
|
{
|
|
x += missing_function();
|
|
}
|
|
x + y
|
|
}
|
|
|
|
fn tail() -> i64 {
|
|
#[cfg(target_os = "nonexistent_os")]
|
|
{
|
|
1
|
|
}
|
|
#[cfg(not(target_os = "nonexistent_os"))]
|
|
{
|
|
2
|
|
}
|
|
}
|
|
|
|
#[test]
|
|
fn cfg_statements() {
|
|
assert_eq!(pick(), 11);
|
|
assert_eq!(tail(), 2);
|
|
}
|