New rule: `Shared else-value for if/case`
还没有人认领这个 Issue。
评估
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 新手友好度
- 55/100
- Issue 类型
- 功能
- 描述清晰度
- 描述清楚
- 活跃度
- 停滞
- 领域
- tooling
调研方向
首先定位现有的重构规则实现及其测试套件;issue 提供了一个正向的 Racket 测试用例,并指出 webracket repository 中的 renderer.rkt 是观察位置。完成的标准是:将所示的 if/case 形式转换为 case 形式,同时保持无关代码不变。
由索引模型根据 Issue 内容生成。
描述
Rule summary
From:
(if (symbol? level)
(case level
[(warning) 'warning]
[(danger) 'danger]
[(info success warning danger
primary secondary light dark) level]
[else 'info])
'info)
To:
(case level
[(warning) 'warning]
[(danger) 'danger]
[(info success warning danger
primary secondary light dark) level]
[else 'info])
The observation is that the value return by the else-arm of the if-expression,
is the same as the expression returned in the else-expression of the case.
Test case
#lang resyntax/test
test: "original code should be refactorable to new code"
--------------------
#lang racket
(define level 'foo)
(if (symbol? level)
(case level
[(warning) 'warning]
[else 'info])
'info)
====================
#lang racket
(define level 'foo)
(case level
[(warning) 'warning]
[else 'info])
--------------------
No-change test case
Additional context
Spotted here:
https://github.com/soegaard/webracket/blob/main/lib/web-easy/renderer.rkt#L892
- 主要语言
- Racket
- 星标
- 70
- 派生
- 11
- PR 合并指标
- 30 天内没有已合并 PR
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
jackfirth/resyntax 的其他 Issue
-
documentation
难度 2/5 1-3 小时 新手友好度 68/100
-
documentation
难度 4/5 3-5 天 新手友好度 45/100
-
testing
难度 4/5 3-5 天 新手友好度 45/100
-
testing
难度 3/5 1-2 天 新手友好度 75/100
-
testing
难度 4/5 3-5 天 新手友好度 68/100
查看 jackfirth/resyntax 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 75/100
vercel-labs/just-bash#464 ·
-
Bug
难度 2/5 1-3 小时 新手友好度 70/100
Automattic/safe-publish#594 ·
-
bug
难度 1/5 1 小时以内 新手友好度 85/100
-
难度 2/5 1-3 小时 新手友好度 65/100
-
bug feat:crypto feat:utils
难度 2/5 1-3 小时 新手友好度 70/100