feat(switch): 新增 switch 语句并禁止 match 内 fallthrough
- MatchGenMixin:case 体按 node.is_switch 置 _in_switch_case;_has_no_break 只认 FallThrough 节点(去掉 c.NoBreak() 兼容路径) - StmtGenDeclMixin:translate_fallthrough 只在 switch 的 case 体内合法,match/switch 之外 fail-fast - Translator:_in_match_case 更名 _in_switch_case(语义 = 当前 case 体属于 switch) - FuncGenDef / FuncGenMixin:函数体 / 嵌套函数 / lambda 入口隔离并恢复 _in_switch_case - 因 match 改为硬关键字,重命名同名局部变量 match -> Matched(StubMergerStore / ImportsGenMixin / ExprGenAttr / CallGenBase)
This commit is contained in:
1 parent
38860a6313
commit
fabd92adc7
9 files changed
+78
-84
No files matched your search
@@ -554,14 +554,14 @@ def LookupSha1ByAlias(from_imports: str, alias: str) -> str:
|
||||
local_len: sizet = colon - ci
|
||||
if colon < total_len and from_imports[colon] == ':' and local_len == alias_len:
|
||||
# 比较 local_name == alias
|
||||
match: int = 1
|
||||
Matched: int = 1
|
||||
li: sizet = 0
|
||||
while li < alias_len:
|
||||
if from_imports[ci + li] != alias[li]:
|
||||
match = 0
|
||||
Matched = 0
|
||||
break
|
||||
li += 1
|
||||
if match == 1:
|
||||
if Matched == 1:
|
||||
# 提取 module(colon+1 到下一个 ':' 或空格)
|
||||
m_start: sizet = colon + 1
|
||||
m_end: sizet = m_start
|
||||
@@ -609,14 +609,14 @@ def LookupModNameByAlias(from_imports: str, alias: str) -> str:
|
||||
local_len: sizet = colon - ci
|
||||
if colon < total_len and from_imports[colon] == ':' and local_len == alias_len:
|
||||
# 比较 local_name == alias
|
||||
match: int = 1
|
||||
Matched: int = 1
|
||||
li: sizet = 0
|
||||
while li < alias_len:
|
||||
if from_imports[ci + li] != alias[li]:
|
||||
match = 0
|
||||
Matched = 0
|
||||
break
|
||||
li += 1
|
||||
if match == 1:
|
||||
if Matched == 1:
|
||||
# 提取 module(colon+1 到下一个 ':' 或空格)
|
||||
m_start: sizet = colon + 1
|
||||
m_end: sizet = m_start
|
||||
|
||||
Reference in new issue
Block a user