Advanced @Contract capabilities
還沒有人認領這個 Issue。
評估
研究方向
首先檢視此 issue 中的 Contract 註解和範例語法,包括提議的 CacheReference 和 Reference 行為。確定是否可以指定一種獨立的進階 contract 語法,以及需要哪些驗證規則;當語法和支援的行為獲得明確定義並達成共識時,工作即完成。
由索引模型根據 Issue 內容生成。
描述
I was thinking about possible extra possibilities for the Contract annotation.
I have this example already; I will add more as I stumble upon them:
Consider this method:
@Contract("CacheReference -> param1; null -> fail; !null -> new")
protected abstract CacheReference<K, V> advanceIntoCacheRef(Reference<V> reference);
The method should do the following things; as described by the contract:
- Throw an NPE, if the parameter is
null - Wrap the parameter
Reference(if notinstanceof CacheReference, else see next) into aCacheReference - Return first parameter if the first parameter is
instanceof CacheReference(which is already imported due to return type; return types should be validated byparamN)
Now, obviously this contract won't work, because it doesn't know about more things than nulls; really. Given other capabilities of IntelliJ, it should be fairly easy coming up with a simple, standalone concept for advanced Contract syntax.
- 主要語言
- Kotlin
- 星號
- 463
- 分支
- 73
- PR 合併指標
- 30 天內沒有已合併 PR
環境準備
- 沒有 Dockerfile 或 Docker Compose 檔案
- 沒有 Pull Request 範本
- 閱讀貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
JetBrains/java-annotations 的其他 Issue
-
@TestOnly should be allowed for ElementType.PACKAGE可能已有人在做 關聯的 PR 仍在進行中或已合併。 未關閉
難度 2/5 1-3 小時 新手友好度 65/100
JetBrains/java-annotations#123 ·
-
難度 5/5 一週以上 新手友好度 25/100
JetBrains/java-annotations#134 · 6 則留言 · 1 個 reaction ·
-
Add AndroidTarget as KMP target可能重新可做 @serjsysoev 於 530 天前認領,目前沒有進行中的 PR。 未關閉
JetBrains/java-annotations#125 · 1 個 reaction · 已指派 1 人 ·
-
難度 4/5 3-5 天 新手友好度 35/100
JetBrains/java-annotations#122 · 2 則留言 ·
-
Allow use of @Language on (formatted-)string literals可能重新可做 @serjsysoev 於 706 天前認領,目前沒有進行中的 PR。 未關閉
JetBrains/java-annotations#117 · 4 則留言 · 已指派 1 人 ·
查看 JetBrains/java-annotations 的全部 Issue
相似的 Issue
-
enhancement impact:U1 P3 reach:R2 size:S
難度 2/5 1-3 小時 新手友好度 78/100
-
難度 2/5 1-3 小時 新手友好度 73/100
ankidroid/Anki-Android#22677 ·
維護者通常 1 天內回覆
-
bug
難度 2/5 1-3 小時 新手友好度 78/100
yschimke/homeassistant-remotecompose#1038 ·
維護者通常 1 天內回覆
-
area:data-quality importer size:S
難度 2/5 1-3 小時 新手友好度 84/100
enorm-labs/event-junkie#3707 ·
維護者通常 1 天內回覆
-
area/ui priority/p2 type/bug
難度 1/5 1 小時以內 新手友好度 94/100
維護者通常 1 天內回覆