Enhance IfElseIfConstructToSwitch to support "return" statements
メンテナーはふだん 1 日以内に返信
評価
調査の方向性
IfElseIfConstructToSwitch レシピのエントリポイントから始め、return 文を含む分岐の処理方法を確認してください。既存の制限については関連する issue 718 を読み、その後、この issue の Java 例に対して動作を検証してください。すべての経路が return になる対象の分岐が同等の switch 式に変換され、一方で中間の return ケースは引き続き除外されれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Currently the IfElseIfConstructToSwitch recipe does not convert to a switch if any of the parts would return.
However, if all branches would return, we could convert it to and it could be a potential candidate. Only the intermediate phase of having returns in the case is not valid, hence would not be picked up by:
static String formatter(Object obj) {
if (obj instanceof String s) {
return s;
} else if (obj instanceof Long l) {
return String.valueOf(l);
} else {
throw new IllegalStateException("Unexpected value: " + obj);
}
}
could become
static String formatter(Object obj) {
return switch (obj) {
case String s -> s;
case Long l -> String.valueOf(l);
default -> throw new IllegalStateException("Unexpected value: " + obj);
};
}
- 主要言語
- Java
- スター
- 156
- フォーク
- 129
- 平均マージ
- 14時間 30分
- マージ済み PR(30日)
- 43
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
openrewrite/rewrite-migrate-java のほかの issue
-
bug
難易度 4/5 3〜5日 初心者へのやさしさ 68/100
openrewrite/rewrite-migrate-java#1246 ·
メンテナーはふだん 1 日以内に返信
-
難易度 5/5 1週間以上 初心者へのやさしさ 32/100
openrewrite/rewrite-migrate-java#1227 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
-
OptionalNotPresentToIsEmpty rewrites `!isPresent()` on a non-`java.util.Optional` type, producing uncompilable `isEmpty()`再び着手できるかも このイシューのプルリクエストはマージされずにクローズされました。 オープン
難易度 3/5 1〜2日 初心者へのやさしさ 70/100
openrewrite/rewrite-migrate-java#1146 · コメント 3 件 ·
メンテナーはふだん 1 日以内に返信
-
bug
難易度 4/5 3〜5日 初心者へのやさしさ 50/100
openrewrite/rewrite-migrate-java#1119 · コメント 5 件 ·
メンテナーはふだん 1 日以内に返信
-
bug
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
openrewrite/rewrite-migrate-java#1069 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
openrewrite/rewrite-migrate-java の issue をすべて見る
似ている issue
-
enhancement good first issue
難易度 2/5 半日 初心者へのやさしさ 66/100
apache/fineract-consumer-facing#175 ·
メンテナーはふだん 1 日以内に返信
-
[BUG] 订单:会员凭订单号即可取消其他会员的待付款订单(取消接口不校验订单归属)対応中かも @dadiyang が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
macrozheng/mall#1016 ·
-
[Bug] The producer summary counts an unreported client version as a second version and warns about a version mix対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
apache/rocketmq-dashboard#6110 ·
メンテナーはふだん 4 日以内に返信
-
Feature:Resolution
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
intellij-elixir/intellij-elixir#4396 ·
メンテナーはふだん 1 日以内に返信
-
Python 3.15 support対応中かも @amnesiaof が今日担当しました。 オープンL: python L: python:uv
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
dependabot/dependabot-core#16524 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信