6d5f8092a7
Bug 1 - For循环变量作用域: - AST_BLOCK 在 sema 中未创建子作用域 → 连续 for 循环用同名变量报"重复定义" - 修复: sema AST_BLOCK 创建 block_scope (scope_new) - 修复: codegen AST_BLOCK 保存/恢复 var_table 实现块级变量隔离 Bug 2 - 列表推导 >2元素 crash: - sema 对 TYPE_ARRAY 标注跳过 init 分析 → 列表推导表达式未被semantize - 导致 codegen 处 element_type=0, array_size=0 → LLVM alloca 崩溃 - 修复: 仅自引用 (= 变量名) 跳过分析,列表推导等正常分析 - 修复: cg_list_comp 使用 to_llvm_type(elem) 而非 type_info_to_llvm(full_array) Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>