- 判据改为:模块级已有同名变量 + 函数内再次用注解声明同名变量 ⇒ TypeError 重复声明,不再比较注解类型是否与全局一致(此前仅在类型不一致时报错) - 有 global/nonlocal 声明后再带注解声明同名变量也报错(注解与既有全局声明重复) - 检查点前移到注解解析之前(紧跟 REPL 分支),保证优先于 coerce_to_type 报错 - 合法写法只剩两种:global + 无注解赋值修改全局;或换不重名的局部变量
- 判据改为:模块级已有同名变量 + 函数内再次用注解声明同名变量 ⇒ TypeError 重复声明,不再比较注解类型是否与全局一致(此前仅在类型不一致时报错) - 有 global/nonlocal 声明后再带注解声明同名变量也报错(注解与既有全局声明重复) - 检查点前移到注解解析之前(紧跟 REPL 分支),保证优先于 coerce_to_type 报错 - 合法写法只剩两种:global + 无注解赋值修改全局;或换不重名的局部变量