phase-20.45: Logical(AND) PRIMARY fix
- lower_return_logical_box.hako: emit MIR v0 as JSON string (functions[]/main/blocks.id) - runner_min: adopt lower.logical before binop/int - lower_return_bool_box.hako: restrict to Return(expr=Bool) to avoid logical bleed - add canaries: PRIMARY AND-only; update OR canary; all phase2044 quick PASS
This commit is contained in:
@ -0,0 +1,30 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"; if ROOT_GIT=$(git -C "$SCRIPT_DIR" rev-parse --show-toplevel 2>/dev/null); then ROOT="$ROOT_GIT"; else ROOT="$(cd "$SCRIPT_DIR/../../../../../../../../.." && pwd)"; fi
|
||||
source "$ROOT/tools/smokes/v2/lib/test_runner.sh"; require_env || exit 2
|
||||
|
||||
prog_json_path="/tmp/prog_2044_return_logical_and_only_$$.json"
|
||||
cat >"$prog_json_path" <<'JSON'
|
||||
{"version":0,"kind":"Program","body":[
|
||||
{"type":"Return","expr":{"type":"Logical","op":"&&","lhs":{"type":"Bool","value":true},"rhs":{"type":"Bool","value":false}}}
|
||||
]}
|
||||
JSON
|
||||
|
||||
set +e
|
||||
HAKO_PRIMARY_NO_FALLBACK=1 \
|
||||
HAKO_MIR_BUILDER_INTERNAL=1 \
|
||||
NYASH_ENABLE_USING=1 HAKO_ENABLE_USING=1 \
|
||||
NYASH_USING_AST=1 NYASH_RESOLVE_FIX_BRACES=1 \
|
||||
NYASH_DISABLE_NY_COMPILER=1 NYASH_PARSER_STAGE3=1 HAKO_PARSER_STAGE3=1 \
|
||||
NYASH_ENTRY_ALLOW_TOPLEVEL_MAIN=1 \
|
||||
verify_program_via_builder_to_core "$prog_json_path"
|
||||
rc=$?
|
||||
set -e
|
||||
rm -f "$prog_json_path"
|
||||
if [ "$rc" -ne 0 ]; then
|
||||
echo "[FAIL] Return(Logical AND only) rc=$rc (expected 0)" >&2; exit 1
|
||||
fi
|
||||
|
||||
echo "[PASS] phase2044/hako_primary_no_fallback_return_logical_and_only_core_exec_canary_vm"
|
||||
exit 0
|
||||
Reference in New Issue
Block a user