Groovy 3.0.0 的變更日誌
錯誤
- [GROOVY-3278] - 使用參考的字串常數作為註解的值會導致編譯錯誤
- [GROOVY-3525] - 無法使用 Null 安全解除參考運算子來存取屬性或陣列/清單元素的腳本運算子
- [GROOVY-4438] - 使用內部列舉會導致編譯進入無限迴圈
- [GROOVY-4976] - AntlrParserPlugin 中的 NPE 出現在不正確的陣列建立表達式上
- [GROOVY-5912] - 靜態編譯:Groovy 在存取封裝範圍方法時不會編譯失敗,但在執行時會失敗
- [GROOVY-6148] - 多重指定宣告應允許使用「final」關鍵字,而不是「def」佔位符
- [GROOVY-6167] - 泛型:在單一宣告中,泛型類型定義順序很重要
- [GROOVY-6632] - 當 GString 是參數時,CompileStatic 會選取錯誤的建構函式
- [GROOVY-6742] - Groovy 無法解析此泛型使用案例
- [GROOVY-6777] - 內部類別會導致 VerifierError
- [GROOVY-6809] - 內部類別的 VerifyError
- [GROOVY-6938] - @CompileStatic 在覆寫傳回參數化值的函式時報告錯誤錯誤
- [GROOVY-6996] - 匿名類別欄位初始化為封閉引數會導致 MissingPropertyException
- [GROOVY-7020] - 匿名內部類別中的「this」有問題
- [GROOVY-7031] - @CompileStatic 中斷指派與解除參考的組合
- [GROOVY-7061] - Collections.sort() 的型別推論無法運作
- [GROOVY-7083] - ConfigSlurper.parse(Script script, URL location) 中的 PermGen 記憶體外洩
- [GROOVY-7157] - [[1]] 作為 List<List<Integer>> 的 CompilationError
- [GROOVY-7160] - 型別參數延伸介面時,變數參數的 NoSuchMethodError
- [GROOVY-7202] - 編譯針對二進位父類別時,無法解析父類別的巢狀列舉
- [GROOVY-7204] - 使用多個泛型時,靜態型別檢查和編譯會失敗
- [GROOVY-7330] - 當有預設方法時,從地圖建立的動態代理不正確
- [GROOVY-7362] - 無法編譯延伸 Groovy 抽象類別的 Java 類別,並具有明確的 GroovyObject 介面
- [GROOVY-7573] - Groovyc ant 任務不會釋放檔案控制代碼
- [GROOVY-7609] - 在包含類別的建構函式中初始化內部類別的物件時發生 java.lang.VerifyError
- [GROOVY-7647] - 偵錯的錯誤列資訊
- [GROOVY-7687] - @CompileStatic 和巢狀閉包的錯誤
- [GROOVY-7691] - 子類別中具有共變型別的泛型屬性的型別檢查錯誤
- [GROOVY-7721] - 編譯針對具有繼承方法的 Java8 介面時,靜態型別檢查會失敗
- [GROOVY-7722] - 使用具有泛型的匿名類別時發生 StackOverflowError。
- [GROOVY-7753] - 三元運算子的回傳型別回歸
- [GROOVY-7778] - CLONE - 具有值的列舉建構函式會擲回「意外的代碼」錯誤
- [GROOVY-7812] - 透過「groovy」指令碼執行時,無法從其他檔案存取靜態內部類別
- [GROOVY-7854] - 註解值無法串接常數
- [GROOVY-7856] - 透過編譯器設定指令碼將 CompileStatic 加入具有 eachWithIndex 的類別,會在指令選擇階段產生例外狀況
- [GROOVY-7864] - 使用 @CompileStatic 時,堆疊溢位修正泛型
- [GROOVY-7868] - 使用內嵌轉型的 Closure 參數呼叫超建構函數無法編譯:出現意外的「建構函數呼叫必須是第一個陳述式」錯誤
- [GROOVY-7883] - 如果私有建構函數比較符合,靜態編譯器會優先使用私有建構函數,而不是公有建構函數
- [GROOVY-7954] - 實作 Comparable 的類別的等於運算子無法在介面上運作
- [GROOVY-7975] - 在註解元素中使用靜態 final 欄位會造成編譯錯誤
- [GROOVY-7985] - 錯誤的「不相容的泛型類型」錯誤
- [GROOVY-7996] - 使用參照受保護屬性的 Closure 進行 with 方法會產生 ClassCastException
- [GROOVY-8002] - 靜態編譯會捨棄方法呼叫的來源位置
- [GROOVY-8053] - Groovyc:靜態方法中的匿名類別無法在沒有「this」的情況下存取其欄位
- [GROOVY-8055] - @CompileStatic 不正確地排列參數類型
- [GROOVY-8059] - STC 超載泛型方法選擇未使用已解析類型
- [GROOVY-8073] - @CompileStatic 中的 Map 委派
- [GROOVY-8084] - 擷取的類型無法在 @CompileStatic 中運作
- [GROOVY-8090] - 不正確地處理方法層級類型泛型資訊
- [GROOVY-8169] - StaticCompilationVisitor.visitForLoop 設定參數來源類型,這會阻止存取原始來源類型和位置
- [GROOVY-8171] - 舊的和 Parrot 解析器之間的轉義美元斜線差異
- [GROOVY-8238] - 多重捕捉語句行為異常
- [GROOVY-8241] - 明確參數的 SAM 參數類型推論
- [GROOVY-8250] - VariableScopeVisitor 未在屬性節點上設定宣告類別
- [GROOVY-8272] - 延伸特質無法執行靜態方法
- [GROOVY-8277] - [Parrot] 修復 gls.syntax.MethodCallValidationTest#testDeclarationInMethodCall
- [GROOVY-8288] - [Sql] 當 batchSize == addBatch 呼叫次數時,withBatch 會失敗
- [GROOVY-8296] - Groovydoc 辨識 Java 8 類別時發生例外
- [GROOVY-8298] - Invoke Dynamic 導致效能變慢
- [GROOVY-8305] - 使用 Groovy 提供的預設 Ivy 設定檔時,嘗試取得本地 m2 儲存庫中可用的依賴項時發生錯誤
- [GROOVY-8310] - Closure 中奇怪的 @CompileStatic 檢查
- [GROOVY-8314] - groovy Eclipse 任務產生重複 src/main 項目的類別路徑
- [GROOVY-8315] - 編譯期間在 GroovyRecognizer.enumConstants 中迴圈
- [GROOVY-8317] - 智慧型類型推論無法在明確的 Closure 參數上運作
- [GROOVY-8319] - 改善清單表達式的智慧型類型
- [GROOVY-8321] - 類型檢查器中錯誤處理 !instanceof
- [GROOVY-8327] - 無法從此建構式呼叫中存取相同類別的靜態方法
- [GROOVY-8330] - 轉換介面時出現錯誤的「無法轉換的類型」
- [GROOVY-8337] - STC:三元表達式中的 instanceof 未將類型資訊傳播到 true 表達式
- [GROOVY-8338] - 從 JDK 9 中的 groovy 類別呼叫 Stream.of 會失敗
- [GROOVY-8342] - 靜態編譯錯誤,類型參數中的方法傳回陣列
- [GROOVY-8372] - 當人工製品名稱與模組不同時,GrapeIvy 會為非預設 conf 下載錯誤的人工製品
- [GROOVY-8377] - @EqualsAndHashCode 產生的 hashCode() 對具有 null 欄位或屬性的執行個體而言效率不彰
- [GROOVY-8389] - 屬性的靜態匯入會影響執行個體方法
- [GROOVY-8399] - ImportCustomizer 每個類別套用一次(應每個模組套用一次) *
- [GROOVY-8405] - 具有預設參數的繼承方法導致靜態編譯失敗
- [GROOVY-8408] - invokeMethod 無法透過類別設定
- [GROOVY-8418] - getSet* 屬性名稱 => 無法讀取唯寫屬性例外
- [GROOVY-8423] - 私有和受保護的內部類別具有不正確的存取修飾符值
- [GROOVY-8432] - 解析日期的奇怪行為
- [GROOVY-8436] - 在 IntelliJ IDEA 中重建 Apache Groovy 時發生 IOException「串流已關閉」
- [GROOVY-8439] - @CompileStatic 無法編譯泛型類別的靜態方法
- [GROOVY-8441] - 在呼叫其類型宣告為封裝私有實作的欄位的公開方法時發生 IllegalAccessError
- [GROOVY-8442] - java.lang.VerifyError:在分支內部呼叫錯誤的 <init> 方法
- [GROOVY-8445] - 在將 Closure 轉換為 FunctionInterface 時,靜態分析無法正常運作
- [GROOVY-8446] - void[] 回傳類型導致編譯器失敗
- [GROOVY-8447] - 允許定義 void 類型的局部變數
- [GROOVY-8457] - @CompileStatic 和 @NotYetImplemented 組合的編譯器錯誤
- [GROOVY-8470] - 編譯「沒有分號的 enum 中的 enum」時發生死循環
- [GROOVY-8471] - META-INF/services/org.codehaus.groovy.source.Extensions 的內容與 Maven/Jisaw 衝突
- [GROOVY-8474] - 透過 super.propertyName 存取父類別屬性時出現「意外的 super 屬性設定:」
- [GROOVY-8486] - 即使已暫存,Closure 仍被執行多次
- [GROOVY-8493] - 在方法層級具有 @CompileStatic 的原生 lambda
- [GROOVY-8495] - GroovyObject 方法實作標記為 ACC_SYNTHETIC
- [GROOVY-8496] - 無法從 Java 子類別呼叫預設的 getProperty() 實作
- [GROOVY-8497] - 無法從 Java 呼叫 getProperty()
- [GROOVY-8507] - 編譯巢狀列舉時 groovyc 會當機
- [GROOVY-8509] - SC:呼叫同一個套件中的受保護方法時會產生錯誤
- [GROOVY-8515] - groovy.g 不再包含在來源 jar 中
- [GROOVY-8531] - 無法解析以 Java 編寫的超級類別中定義的類型
- [GROOVY-8537] - GroovyCollections.combinations(Iterable) 呈現不正確(不對稱)的行為
- [GROOVY-8546] - Parrot Parser:從 SourceUnit 開啟多個 Reader 實例;許多保持開啟狀態
- [GROOVY-8549] - 編譯靜態會導致 getAt 失敗
- [GROOVY-8583] - 無法從三元運算子推斷自動回傳類型
- [GROOVY-8590] - STC 不正確地推斷在回傳陳述式中使用的巢狀方法呼叫的類型
- [GROOVY-8595] - 預期的 XXX 類型參數,但取得 YYY 靜態編譯錯誤
- [GROOVY-8598] - AstBuilder Antlr4 中可能的錯誤
- [GROOVY-8609] - 當上限有泛型時無法編譯
- [GROOVY-8610] - STC NPE 使用 DGM 在 Iterator 上收集
- [GROOVY-8613] - elvis 指派評估中的 GCE
- [GROOVY-8624] - 編譯器和執行階段中的檔案描述符外洩
- [GROOVY-8628] - Groovydoc 無法解析具有菱形運算子的靜態巢狀類別
- [GROOVY-8629] - Groovy STC 在建構式呼叫中的巢狀方法呼叫中失敗
- [GROOVY-8641] - 無法使用軟關鍵字限定路徑表達式(目前排除「def」)
- [GROOVY-8648] - 對屬性的複合指派會因 ASM 錯誤而失敗
- [GROOVY-8651] - 方法覆寫較弱的存取檢查並未完全考量套件私有可見性
- [GROOVY-8669] - 如果註解的 ValueType 不在類別路徑中,Groovy 類別無法編譯
- [GROOVY-8675] - GenericsUtils.PARAMETERIZED_TYPE_CACHE 是靜態且私密的
- [GROOVY-8680] - 具有單元運算子的字串常數的 AST 與舊的剖析器產生的 AST 不同
- [GROOVY-8686] - STC:針對 (a instanceof C && a...) 的類型推論會滲透到封閉的範圍
- [GROOVY-8688] - AsmDecompiler.parseClass 會針對 Java 11 JEP 181 類別失敗
- [GROOVY-8703] - 在建構函式 * 上使用 @NamedVariant 時出現意外行為
- [GROOVY-8727] - JDK 11 編譯失敗:ClassVisitor.visitNestMemberExperimental 會擲出 UnsupportedOperationException
- [GROOVY-8732] - @CompileStatic 會參照父類別中的私有欄位
- [GROOVY-8740] - groovy.util.CliBuilder 無法正確處理剖析錯誤
- [GROOVY-8741] - 單一字元的 GString 和 '==' 與字元或數字
- [GROOVY-8742] - 方法的行號資訊會讓偵錯器混淆
- [GROOVY-8743] - 特質中的抽象方法不應該有方法主體
- [GROOVY-8747] - jar/zip 檔案和輸入串流在 grape 中沒有關閉
- [GROOVY-8750] - jar 檔案,而且只有 jar 檔案在 Maven Central 上大量的版本中遺失
- [GROOVY-8753] - STC 中的編譯器錯誤:'指令選擇' 階段中的例外
- [GROOVY-8754] - Windows 上 JDK10 中的 JAVA_HOME 中的空白沒有正確處理
- [GROOVY-8757] - 編譯實作具有泛型方法的特質的類別後產生不正確的位元組碼
- [GROOVY-8758] - @CompileStatic 類別的內部類別中的 @WithReadLock 會導致 java.lang.VerifyError
- [GROOVY-8762] - 巢狀類別中無效的 this 參照
- [GROOVY-8764] - 匿名類別中的閉包使用錯誤的外部類別實例與 @CS
- [GROOVY-8766] - Groovy 套件與 OSGi 不相容(ServiceLoader 功能)
- [GROOVY-8772] - 離開 try/catch 時 Groovy 除錯器在錯誤的行上
- [GROOVY-8775] - ant 任務 groovyc 中的錯誤聯合編譯:未設定 classpath
- [GROOVY-8776] - @MapConstructor 搭配 @CompileStatic:建立靜態內部類別實例 => VerifyError:操作數堆疊上的錯誤類型 CTE
- [GROOVY-8777] - @MapConstructor 搭配 @CompileStatic:建立內部類別實例 => IncompatibleClassChangeError ... 未實作所要求的介面 java.util.Map
- [GROOVY-8778] - 空的 map * 導致簡寫的 cast 中斷
- [GROOVY-8779] - Groovy 2.5.2 在 IntelliJ IDEA 中觸發錯誤
- [GROOVY-8797] - VariableScopeVisitor.getPropertyName 沒有檢查「isser」風格的方法
- [GROOVY-8800] - groovy-json 中錯誤偵測 Java 10 版本
- [GROOVY-8805] - 刪除依賴類別時 GroovyScriptEngine 重新載入失敗
- [GROOVY-8806] - groovy 2.5.2 中不可變類別中斷
- [GROOVY-8815] - 不一致的類別檔案 - 特質實作者的未定義類型參數
- [GROOVY-8816] - 搭配 CompileStatic 和不正確的零參數閉包時,inferClosureParameterTypes 中的 NPE
- [GROOVY-8819] - 從超類別呼叫 this() 搭配靜態 final 欄位時發生 java.lang.VerifyError
- [GROOVY-8822] - @Generated 和 @Delegate 之間的衝突
- [GROOVY-8825] - CLONE - @Generated 和 @Delegate 之間的衝突
- [GROOVY-8833] - @Canonical 建立無效的 hashCode
- [GROOVY-8835] - AstNodeToScriptVisitor - EmptyStatement 初始化不需要 token
- [GROOVY-8853] - 字串文字可以跨行
- [GROOVY-8855] - 兩次呼叫 Matcher.asBoolean() 會傳回不同的結果 *
- [GROOVY-8865] - 指定初始堆積大小會導致錯誤
- [GROOVY-8868] - 靜態工廠方法不再與 2.5.3 相容(在 2.4.x 中是正常的)
- [GROOVY-8871] - 在 OpenJDK 11 下,Groovy 2.5.3 中定義的長常數會導致 IllegalAccessError
- [GROOVY-8873] - 在執行階段使用 @CompileStatic 和兩個嵌套的 with 時失敗
- [GROOVY-8876] - groovydoc 在沒有副檔名的檔案中會失敗,並顯示「java.lang.StringIndexOutOfBoundsException:字串索引超出範圍:-1」
- [GROOVY-8881] - 內部類別 - 在 2 個閉包內,限定的「this」參考會擲出例外
- [GROOVY-8882] - CS:迴圈遍歷字串元素具有不同的元素類型 *
- [GROOVY-8892] - 只有在同一個特質中定義了欄位時,才會呼叫特質實例初始化區塊
- [GROOVY-8895] - 定義 getter 的特質與產生的 getter 衝突
- [GROOVY-8898] - 注解值無法從列舉中取得內嵌常數。
- [GROOVY-8907] - StringGroovyMethods.findAll(String, Pattern, Closure) 和 StringGroovyMethods.findAll(CharSequence, Pattern, Closure) 的 @ClosureParams 不正確
- [GROOVY-8914] - 編譯擴充其他(靜態)內部類別的靜態內部類別時發生錯誤
- [GROOVY-8917] - 無法推論某些 SAM 的參數類型,例如 BinaryOperator
- [GROOVY-8920] - 無法推論 RHS 上 SAM 的參數和回傳類型
- [GROOVY-8930] - 從 CompileStatic groovy 內部使用靜態介面方法時,JVM 驗證會失敗
- [GROOVY-8931] - AstNodeToScriptVisitor - 「extends/implements」順序錯誤
- [GROOVY-8936] - 將 `null` 訊息傳遞到 `MissingPropertyException` 時發生 NPE
- [GROOVY-8947] - 無法在外部類別之外解析非靜態內部類別
- [GROOVY-8951] - 定義 getter 的特質與產生的 getter 衝突(針對預編譯案例的改進)
- [GROOVY-8953] - 匯入的列舉會導致編譯錯誤,導致測試無法編譯
- [GROOVY-8954] - 當特質超級屬性呼叫也來自介面時,會因為產生不正確的位元組碼而導致 VerifyError
- [GROOVY-8959] - StaticVerifier 中的 NPE
- [GROOVY-8964] - 嘗試解析具有變數參數的重載時,會發生 MissingMethodException
- [GROOVY-8966] - List.getAt(range) 使用時,排他的 NumberRange 會轉換為包含的
- [GROOVY-8967] - @Immutable 無法處理來自地圖建構函式的屬性預設值
- [GROOVY-8969] - 套用特質時,參數名稱資料會被清除,與 --parameters 設定無關
- [GROOVY-8970] - 修正 MANIFEST.MF 中的拼寫錯誤:Main-class
- [GROOVY-8975] - CliBuilder.parseFromSpec 結果中的 GroovyCastException
- [GROOVY-8978] - 從子類別複製存取受保護方法時出現 NPE
- [GROOVY-8990] - 使用 & 時,不匹配的泛型沒有編譯器錯誤
- [GROOVY-8991] - 閉包和 lambda 的行為差異
- [GROOVY-9004] - 分析器無法辨識令牌序列表達式換行符號位元運算子表達式
- [GROOVY-9005] - SomeClass.groovy: -1: 在第 -1 行、第 -1 欄位禁止存取 java.lang.Object#this
- [GROOVY-9007] - 使用 groovy 版本 2.5.6 時出現 java.lang.NoSuchFieldError
- [GROOVY-9009] - AutoClone 與 @ToString 或 @EqualsAndHashCode 搭配使用時會擲出 ClassCastException
- [GROOVY-9010] - ASTTest 註解 assert 執行期間出現 MissingMethodException
- [GROOVY-9014] - printf 不尊重「out」屬性
- [GROOVY-9018] - 警告:套件 sun.awt.windows 不在 java.desktop 中
- [GROOVY-9028] - @EqualsAndHashCode 無法辨識 final 欄位
- [GROOVY-9031] - 使用泛型的特質會為 Properties 產生不正確的 stub
- [GROOVY-9035] - config 腳本:處理編譯器 config DSL 時出現意外的 NPE
- [GROOVY-9040] - src/bin 中的腳本未通過最新的 shellcheck 建議
- [GROOVY-9043] - 在靜態編譯模式中,禁止內部類別存取套件範圍的靜態欄位
- [GROOVY-9046] - 建置強化
- [GROOVY-9049] - EncodingGroovyMethods.digest() 會截斷從 0 開始且超過 128 位元的雜湊
- [GROOVY-9050] - @Sortable 中缺少 @Generated 註解
- [GROOVY-9051] - 預設建構函式應加上 @Generated 註解
- [GROOVY-9052] - @Vetoable 上缺少 @Generated 註解
- [GROOVY-9053] - @Bindable 中缺少 @Generated 注解
- [GROOVY-9054] - @groovy.transform.builder.Builder 應為 build()、builder() 和 setter 方法產生 @Generated 注解
- [GROOVY-9058] - 錯誤推論每個參數類型
- [GROOVY-9059] - 無法解析/編譯具有「extends」的通用方法
- [GROOVY-9061] - 含有 @Grab 陳述式的測試在 JDK12 中的巢狀腳本中會失敗
- [GROOVY-9063] - Groovy 2.5.6 @CompileStatic 從 2 層巢狀封閉中存取受保護的執行個體成員時會產生無效的位元組碼(導致執行時期 ClassCastException)
- [GROOVY-9077] - STC:推論的類型並不總是儲存在解析為方法的屬性 getter 中
- [GROOVY-9078] - MethodNode 和 ConstructorNode 中的效率低下
- [GROOVY-9079] - STC:StaticTypeCheckingVisitor.inferSAMTypeGenericsInAssignment 中的 NPE
- [GROOVY-9080] - MarkupTemplateEngine 使用無效的 XML 實體來跳脫雙引號
- [GROOVY-9086] - OWNER_FIRST 的封閉呼叫的 @CompileStatic 在執行時期會因 ClassCastException 而失敗
- [GROOVY-9089] - STC:擁有者限定詞會對巢狀封閉產生錯誤
- [GROOVY-9095] - 未為註解實作預設保留政策
- [GROOVY-9096] - 可重複註解未在類別檔案中以容器類型包裝
- [GROOVY-9105] - 修正嘗試編譯屬性檔案和任何不以 java 結尾的檔案
- [GROOVY-9106] - @CompileStatic 和 @PackageScope 支援內部類別和套件同儕
- [GROOVY-9115] - 類別產生期間的常見錯誤
- [GROOVY-9121] - GroovyMain 會修改預設編譯器組態
- [GROOVY-9123] - 「java.nio.file.Path.setText」無法與 Groovy 2.5.7 上的 CompileStatic 搭配使用
- [GROOVY-9126] - 位元組碼中的 ARETURN 之後無法到達的行號
- [GROOVY-9127] - 無法從子類別設定受保護的欄位
- [GROOVY-9136] - 在封閉中存取公開欄位時發生編譯錯誤
- [GROOVY-9141] - NPE:Groovy 編譯器錯誤:來源單元中「轉換」階段發生例外狀況
- [GROOVY-9147] - 使用 'File.text = ' 會導致 Groovy 2.5.7 中的 FileNotFoundException 與 @CompileStatic
- [GROOVY-9151] - 預設引數:參照其他預設引數會導致執行時期錯誤
- [GROOVY-9153] - StaticInvocationWriter 會修改共用全域節點 ConstantExpression.NULL
- [GROOVY-9156] - metaDataMap 值表格應與外部框架調整大小
- [GROOVY-9161] - 可排序 AST 轉換會取代自訂 compareTo 方法
- [GROOVY-9162] - AutoClone AST 轉換會取代自訂 clone 方法
- [GROOVY-9163] - AutoExternalize AST 轉換會取代自訂讀取/寫入方法
- [GROOVY-9168] - 預設引數:預設值中非靜態內部類別建構函式呼叫不受支援
- [GROOVY-9170] - clone 方法應為公開,因為它實作介面 java.lang.Object 中對應的方法
- [GROOVY-9171] - 靜態編譯器 ASM 錯誤,針對具有相同名稱的方法
- [GROOVY-9173] - 延伸提供受保護的 getProperty/setProperty 的 Java 類別的類別會發生 IllegalAccessError
- [GROOVY-9176] - set 方法呼叫的語法糖與類別成員宣告衝突
- [GROOVY-9183] - 使用 @MapConstructor 和 @NamedVariant 的問題
- [GROOVY-9184] - CLONE - 使用內部列舉會導致編譯進入無限迴圈 - antlr2 修復
- [GROOVY-9189] - 靜態方法預設引數表達式中的 AIC 會導致類別轉型例外
- [GROOVY-9191] - 無法編譯沒有 public 關鍵字的泛型方法
- [GROOVY-9195] - STC:混合檢查非公開欄位的存取
- [GROOVY-9197] - Groovyc 無法在 JDK 11 下執行時正確傳播類別路徑項目至 javac
- [GROOVY-9200] - AstBrowser 中的 StringIndexOutOfBoundsException
- [GROOVY-9203] - 匿名內部類別計數不是封閉類型本地的
- [GROOVY-9204] - 編譯器遺失超類別欄位的類型資訊
- [GROOVY-9215] - 使用 @CompileStatic 和/或 @TypeChecked 時會引發不正確的編譯時間存取錯誤
- [GROOVY-9226] - 使用 @TypeChecked 或 @CompileStatic 呼叫 super.toString() 會擲出 java.lang.StackOverflowError
- [GROOVY-9231] - groovy.lang.TypeChecked 應該是 groovy.transform
- [GROOVY-9237] - GContracts 和 Groovy3
- [GROOVY-9238] - Groovy 2.5 AnnotationCollector 未產生預期的位元組碼
- [GROOVY-9243] - 無法解析以 Groovy 編寫的基礎類型中定義的巢狀類型
- [GROOVY-9244] - 匿名子類別應轉型其超參數
- [GROOVY-9245] - 應忽略合成建構函式
- [GROOVY-9246] - 版本 3.0.0-beta-3 不符合 OSGi 版本標準。
- [GROOVY-9252] - -1: 禁止存取 java.lang.Object#myField @ 第 -1 行,第 -1 欄。
- [GROOVY-9257] - 無法使用 JDK 11 和 Spring-Boot 建立 Groovysh
- [GROOVY-9265] - ScriptMain.groovy: -1: 禁止存取 bugs.ClassWithInnerClass$InnerClass#obj @ 第 -1 行,第 -1 欄。
- [GROOVY-9268] - 禁止存取 ...
- [GROOVY-9270] - 使用「instanceof boolean」或使用特質會導致編譯的程式碼無法與 OSGi/maven-bundle-plugin/bnd 搭配使用
- [GROOVY-9281] - 對超類別內部類別的非限定參照不支援套件私有能見度
- [GROOVY-9282] - 覆寫為受保護時考量套件私有方法
- [GROOVY-9288] - 從封閉內部存取受保護的超類別欄位時發生編譯錯誤
- [GROOVY-9292] - 從封閉內部使用擁有者、委派或 thisObject 限定詞存取受保護的超類別欄位時發生編譯錯誤(不同套件)
- [GROOVY-9293] - 從封閉內部使用 `this` 存取套件私有的超類別欄位時發生編譯錯誤
- [GROOVY-9294] - SC:陣列長度在閉包中不可用
- [GROOVY-9301] - [Antlr2] 逗號後接方法的列舉常數的解析器錯誤
- [GROOVY-9317] - 欄位表達式上的斷言缺少值記錄
- [GROOVY-9321] - 在介面的靜態方法呼叫上使用 @CompileStatic(Java 8):VerifyError
- [GROOVY-9323] - 從類別路徑載入的預編譯類別的 AST 不包含建構函式註解資訊
- [GROOVY-9327] - @CompileStatic 未傳播到匿名類別
- [GROOVY-9328] - 無法在 @CS 中呼叫包含類別的私有成員
- [GROOVY-9329] - 在 `parseClass(scriptText)` 時引發 OOME
- [GROOVY-9332] - 在靜態初始化區塊中的 lambda 中存取靜態欄位時發生錯誤
- [GROOVY-9333] - 原生 lambda 中的 `this` 未參照封閉類別的執行個體
- [GROOVY-9336] - 欄位初始值表達式中使用的位移運算子導致不正確的類型轉換
- [GROOVY-9337] - DGM:更多 Optional 和 Stream 延伸方法
- [GROOVY-9338] - STC:不正確的界限比對沒有錯誤
- [GROOVY-9340] - 使用變數表達式參數的 Lambda 產生自我類型的泛型錯誤
- [GROOVY-9341] - SC:參照「this」的 lambda 中的 lambda 產生強制轉型例外
- [GROOVY-9342] - SC:在靜態初始化區塊中使用靜態欄位的 lambda 在 += 的 LHS 上產生錯誤
- [GROOVY-9347] - STC:萬用字元泛型上的 lambda 表達式無法解析參數類型
- [GROOVY-9352] - 靜態編譯失敗,並出現 NoClassDefFoundError
- [GROOVY-9368] - 關於 jointCompilationOptions 的重大變更
- [GROOVY-9370] - 匿名類別和巢狀閉包類型強制轉型為 SAM 的類型推論回歸
- [GROOVY-9374] - 具有類型檢查的內部類別的 tap 的類型推論失敗
- [GROOVY-9376] - Groovy 完全忽略 @GrabResolver 註解
- [GROOVY-9499] - 將 AIC 用作特殊建構函式呼叫參數時出現 VerifyError
相依性升級
- [GROOVY-8290] - 將 Ant 版本升級至 1.10.1
- [GROOVY-8291] - 將 XStream 版本升級至 1.4.10
- [GROOVY-8304] - 將 Apache Ivy 從 2.4.0 升級至較新版本
- [GROOVY-8504] - 將 ASM 版本升級至 6.1
- [GROOVY-8532] - 將 ant 升級至 1.10.3
- [GROOVY-8533] - 將 jansi 升級至 1.17
- [GROOVY-8534] - 將 jline 升級至 2.14.6
- [GROOVY-8540] - 將 antlr 升級至 4.7.1
- [GROOVY-8599] - 將 ivy 升級至 2.5.0-rc1
- [GROOVY-8636] - 將 asm 升級至 6.2
- [GROOVY-8661] - 將 gradle 升級至 4.8.1
- [GROOVY-8672] - 將 testng 升級至 6.14.3
- [GROOVY-8674] - 將 ant 依賴項升級至 1.10.4
- [GROOVY-8676] - 將 ant 升級至 1.10.4
- [GROOVY-8677] - 將 picocli 升級至 3.1.0
- [GROOVY-8682] - 將 asciidoctor 升級至 1.5.8
- [GROOVY-8744] - 將 ASM 升級至 6.2.1
- [GROOVY-8745] - 升級 ant 版本
- [GROOVY-8746] - 將 bridger 升級至 1.5.Final
- [GROOVY-8767] - 將 gradle 升級至 4.10
- [GROOVY-8773] - 將 JUnit 5 升級至 5.3
- [GROOVY-8785] - 將 JUnit 5 升級至 5.3.1
- [GROOVY-8789] - 將 spot bugs 升級至 1.6.3
- [GROOVY-8790] - 將 gradle 升級至 4.10.1
- [GROOVY-8807] - 將 gradle 升級至 4.10.2
- [GROOVY-8813] - 將 jackson-dataformat-yaml 和 jackson-databind 升級至 2.9.7
- [GROOVY-8818] - 將 asm 升級至 7.0-beta
- [GROOVY-8823] - 將 slf4j 升級至 1.7.25
- [GROOVY-8829] - 將 spotbugs 外掛程式升級至 1.6.4
- [GROOVY-8830] - 將 spotbugs 升級至 3.1.7
- [GROOVY-8862] - 將 asm 升級至 7.0
- [GROOVY-8883] - 將 xstream 升級至 1.4.11.1
- [GROOVY-8884] - 將 spotbugs-annotations 升級至 3.1.8
- [GROOVY-8885] - 將 spotbugs gradle 外掛程式升級至 1.6.5
- [GROOVY-8904] - 將 junit 升級至 5.3.2,並將 junit platform 升級至 1.3.2
- [GROOVY-8908] - 將 gradle 升級至 5.2.1
- [GROOVY-8921] - 將 build-scan gradle 外掛升級至 2.1
- [GROOVY-8922] - 將 spotbugs gradle 外掛升級至 1.6.6,並將 spotbugs-annotations 升級至 3.1.9
- [GROOVY-8923] - 將 gradle-license-report 升級至 1.3
- [GROOVY-8924] - 將 creadur-rat-gradle 升級至 0.3.1
- [GROOVY-8925] - 將 picocli 升級至 3.8.2 *
- [GROOVY-8928] - 將 jackson-dataformat-yaml 和 jackson-databind 升級至 2.9.8
- [GROOVY-8937] - 將 antlr 升級至 4.7.2
- [GROOVY-8980] - 將 picocli 升級至 3.9.3
- [GROOVY-8985] - 將 junit 升級至 5.4.0
- [GROOVY-8988] - 將 antlr 升級至 4.7.3
- [GROOVY-8993] - 將 spotbugs gradle 外掛升級至 1.6.9
- [GROOVY-8994] - 將 spotbugs-annotations 升級至 3.1.11
- [GROOVY-9020] - 將 asm 升級至 7.1
- [GROOVY-9042] - 將 junit 升級至 5.4.1
- [GROOVY-9044] - 將 versions 外掛升級至 0.21.0
- [GROOVY-9045] - 將 build-scan 升級至 2.2.1
- [GROOVY-9047] - 將 gradle 升級至 5.3
- [GROOVY-9062] - 將 codenarc 升級至 1.3
- [GROOVY-9071] - 將 gradle 升級至 5.3.1
- [GROOVY-9087] - 將 gradle 升級至 5.4
- [GROOVY-9098] - 將 gradle 升級至 5.4.1
- [GROOVY-9104] - 將 build-scan 外掛升級至 2.3
- [GROOVY-9116] - 將 ant 升級至 1.10.7
- [GROOVY-9117] - 將 jmh gradle 外掛升級至 0.4.8
- [GROOVY-9118] - 將 japicmp gradle 外掛升級至 0.2.8
- [GROOVY-9119] - 將 spotbugs gradle 外掛升級至 1.7.1
- [GROOVY-9138] - 將 JUnit 5 升級至 5.5.0
- [GROOVY-9139] - 將 JUnit 5 升級至 5.5.0-M1
- [GROOVY-9142] - 將 jackson-dataformat-yaml 升級至 2.9.9
- [GROOVY-9143] - 將 picocli 升級至 3.9.6
- [GROOVY-9179] - 將 CodeNarc 升級至 1.4
- [GROOVY-9180] - 將 junit5 升級至 5.5.0-RC2
- [GROOVY-9181] - 將 jansi 提升至 1.8
- [GROOVY-9182] - 將 gradle 提升至 5.5
- [GROOVY-9186] - 將 asm 提升至 7.2-beta
- [GROOVY-9190] - 將 gradle 提升至 5.5.1
- [GROOVY-9201] - 將 junit 提升至 5.5.1
- [GROOVY-9202] - 將 picocli 提升至 4.0.1
- [GROOVY-9212] - 將 gradle 提升至 5.6-rc-1
- [GROOVY-9216] - 將 gradle 提升至 5.6-rc-2
- [GROOVY-9219] - 將 versions gradle 外掛提升至 0.22.0
- [GROOVY-9220] - 將 spotbugs gradle 外掛切換至 jp.skypencil.spotbugs.snom 變體
- [GROOVY-9221] - 將 build-scan gradle 外掛提升至 2.4
- [GROOVY-9222] - 將 picocli 提升至 4.0.2
- [GROOVY-9227] - 將 gradle 提升至 5.6
- [GROOVY-9234] - 將 build-scan gradle 外掛提升至 2.4.1
- [GROOVY-9241] - 將 gradle 提升至 5.6.1
- [GROOVY-9242] - 將 picocli 提升至 4.0.3
- [GROOVY-9247] - 將 gradle 提升至 5.6.2
- [GROOVY-9249] - 將 junit 提升至 5.5.2
- [GROOVY-9251] - 將 picocli 提升至 4.0.4
- [GROOVY-9262] - 將 asm 提升至 7.2
- [GROOVY-9263] - 將 versions gradle 外掛提升至 0.25.0
- [GROOVY-9264] - 將 build-scan gradle 外掛提升至 2.4.2
- [GROOVY-9269] - 將 jackson 相關函式庫提升至 2.10.0
- [GROOVY-9275] - 將 antlr 提升至 4.7.4
- [GROOVY-9277] - 將 versions gradle 外掛提升至 0.26.0
- [GROOVY-9280] - 將 gradle 提升至 5.6.3
- [GROOVY-9285] - 將 javaparser 提升至 3.15.2
- [GROOVY-9286] - 將 versions gradle 外掛提升至 0.27.0
- [GROOVY-9290] - 將 ivy 提升至 2.5.0
- [GROOVY-9297] - 將 javaparser 提升至 3.15.3
- [GROOVY-9300] - 將 gradle 升級至 5.6.4
- [GROOVY-9303] - 將 javaparser 升級至 3.15.4
- [GROOVY-9307] - 將 javaparser 升級至 3.15.5
- [GROOVY-9311] - 將 jackson-dataformat-yaml 升級至 2.10.1
- [GROOVY-9314] - 將 picocli 升級至 4.1.0
- [GROOVY-9325] - 將 picocli 升級至 4.1.1
- [GROOVY-9326] - 將 CodeNarc 升級至 1.5
- [GROOVY-9330] - 將 javaparser 升級至 3.15.6
- [GROOVY-9334] - 將 picocli 升級至 4.1.2
- [GROOVY-9350] - 將 javaparser 升級至 3.15.7
- [GROOVY-9354] - 將 picocli 升級至 4.1.4
- [GROOVY-9356] - 將 javaparser 升級至 3.15.8
- [GROOVY-9357] - 將 junit 升級至 4.13
- [GROOVY-9358] - 將 jmh gradle 外掛升級至 0.5.0
- [GROOVY-9359] - 將 javaparser 升級至 3.15.9
- [GROOVY-9361] - 將 jackson-dataformat-yaml 升級至 2.10.2
- [GROOVY-9362] - 將 asm 升級至 7.3.1
- [GROOVY-9371] - 將 gradle 升級至 6.1.1
- [GROOVY-9372] - 將 junit 升級至 5.6.0
- [GROOVY-9383] - 將 javaparser 升級至 3.15.11
文件
- [GROOVY-8618] - 更新 GroovyConsole 文件
- [GROOVY-8619] - 更新 Groovy Shell 文件
- [GROOVY-8620] - 更新 Grape 相依性管理員文件
- [GROOVY-8848] - 命名參數文件缺少混合使用多個參數的說明
- [GROOVY-8870] - 清單清單上的散佈點運算子
- [GROOVY-9019] - 三個單引號和三個雙引號一律處理反斜線跳脫
- [GROOVY-9085] - 將 INOUT 儲存程序範例新增至 groovy-sql 的 asciidoc 文件
- [GROOVY-9207] - AST 轉換區段中的連結已中斷
史詩
- [GROOVY-9124] - 實作鸚鵡解析器
改善
- [GROOVY-3360] - 改善 assert a = 1 的錯誤訊息
- [GROOVY-3867] - 允許透過類別定義 methodMissing/propertyMissing
- [GROOVY-3898] - [PARROT] 允許在「for」結構中初始化多個反覆運算變數時指定類型
- [GROOVY-4585] - 反斜線無法透過 `SimpleTemplateEngine` 逸出
- [GROOVY-4816] - 拜訪空表達式
- [GROOVY-4875] - 新增安全的索引運算子
- [GROOVY-7233] - 可設定的 @Log AST 記錄器欄位存取修飾詞
- [GROOVY-7632] - Groovy 命名參數靜態檢查
- [GROOVY-7772] - Class.&instanceMethod 最好與 Java8 的 Class::instanceMethod 具有相同的意義
- [GROOVY-8180] - GroovyConsole 改進:記錄到檔案選項
- [GROOVY-8185] - 變更 Groovydoc 處理,以支援 antlr4 語法,包括從 AST 取得註解
- [GROOVY-8312] - [PARROT] 棄用 unicode 序列中無用的功能
- [GROOVY-8339] - 修正警告「發生不合法反射存取操作」
- [GROOVY-8410] - 提供共用快取
- [GROOVY-8428] - 新增 DGM startsWithAny(String...) 和 endsWithAny(String...)
- [GROOVY-8437] - 為 `LRUCache` 實作原子 `getAndPut` 方法
- [GROOVY-8444] - 在 switch 案例中支援非限定的列舉常數(例如 Java)
- [GROOVY-8464] - 允許呈現內嵌 json
- [GROOVY-8466] - 在靜態編譯模式中支援原生 lambda
- [GROOVY-8490] - 擴充 @Newify 以支援類別名稱模式參數
- [GROOVY-8492] - Groovy 主控台在顯示已產生閉包類別時,應顯示已產生 lambda 類別
- [GROOVY-8510] - 安全數字剖析方法,以進行更方便的 XML 剖析
- [GROOVY-8517] - 新增 ASTNode.getNodeMetaData 超載,支援計算遺失值(例如 Map.computeIfAbsent)
- [GROOVY-8524] - 三引號字串,引號在行尾
- [GROOVY-8535] - FieldNode 建構函式似乎不正確地呼叫 setType
- [GROOVY-8547] - 工廠模式被 CompilerConfiguration/ParserVersion 迴避
- [GROOVY-8586] - [PARROT] 支援 Java 9 ARM 區塊
- [GROOVY-8604] - 快取參數化類型以提升效能
- [GROOVY-8621] - Grape 命令列工具簡介改進
- [GROOVY-8623] - Groovy 主控台中的 Groovy 物件瀏覽器可在說明中顯示 Groovy 版本
- [GROOVY-8630] - 調整參數化類型快取
- [GROOVY-8635] - 使 Groovy 主控台的一些 Groovy 類別編譯為靜態
- [GROOVY-8679] - BigDecimalMath.MAX_DIVISION_SCALE 是硬編碼的
- [GROOVY-8681] - 使非靜態內部類別建立器跨越列
- [GROOVY-8704] - IntRange 應為可序列化
- [GROOVY-8719] - 將 DelegatesTo 註解新增至 CompilerCustomizationBuilder.withConfig
- [GROOVY-8748] - CompileUnit 可實作 NodeMetaDataHandler 作為元資料的「全域」節點
- [GROOVY-8755] - 禁止在陣列初始化項中使用命令鏈表達式以避免歧義
- [GROOVY-8765] - 使用 @Generated 註解已產生的方法
- [GROOVY-8780] - 新增 `sha256` DGM
- [GROOVY-8783] - 支援 Java 9/10/11 位元組碼
- [GROOVY-8784] - 準備支援 JDK 12 位元組碼
- [GROOVY-8793] - 新增清除詞法分析器快取的開關
- [GROOVY-8812] - 使 `Sql` 和 `BatchingStatementWrapper` 實作 `AutoCloseable`
- [GROOVY-8827] - 為建構式的 EMC DSL 關閉一個小間隙
- [GROOVY-8851] - [PARROT] 調整地圖/命名參數的安全索引
- [GROOVY-8858] - 調整 GCL 以避免重複佔用永久區域/Metaspace 以取得相同的原始碼
- [GROOVY-8861] - 簡化執行時期 groovydoc 的開關
- [GROOVY-8872] - 解編譯的參數名稱不會反映位元組碼中的名稱
- [GROOVY-8880] - 特質 - 靜態/執行個體初始化區塊
- [GROOVY-8887] - 支援在 STC 中多重指定元組
- [GROOVY-8890] - 使 Groovy 主控台的「檢查代碼」支援 Parrot 的代碼
- [GROOVY-8894] - 提升 DGM `leftShift(OutputStream, InputStream)` 的效能
- [GROOVY-8900] - 使類別 `Tuple0`, `Tuple1`...`Tuple16` 成為最終
- [GROOVY-8903] - 將 Retrofit NamedParams 改為 groovy.sql.Sql
- [GROOVY-8910] - 提升新 Parrot 解析器的效能
- [GROOVY-8915] - [PARROT] 使 groovydoc 設定更具彈性
- [GROOVY-8927] - take 和 drop 的字串變體
- [GROOVY-8939] - 在 StringGroovyMethods 中新增方法
- [GROOVY-8942] - 當游標接觸 Groovy Console 中的括號、方括號和大括號時,將其對應的括號、方括號和大括號反白
- [GROOVY-8943] - getAt(int) 和 getAt(String) 搭配 @CompileStatic
- [GROOVY-8945] - 提升 DGM `groupBy` 和 `countBy` 的效能
- [GROOVY-8949] - 將依賴項管理呼叫執行為特權動作
- [GROOVY-8962] - 提供在記憶體中產生 Java 程式碼的選項,以提升編譯效能
- [GROOVY-8971] - 當有參數名稱資訊時,VMPlugin configureClassNode 方法應保留該資訊
- [GROOVY-8972] - CompilationUnit#createClassVisitor 應使用類別節點解析器,而非直接使用類別載入器
- [GROOVY-8986] - 變更預設匯入套件的順序,以減少解析次數
- [GROOVY-8987] - 支援剖析解析器
- [GROOVY-8995] - 提升建立清單的效能
- [GROOVY-9008] - 支援原生方法參考和建構函式參考(基本案例)
- [GROOVY-9022] - 在 Groovy 主控台中,啟用將輸出置於右側的選項。(水平分割)
- [GROOVY-9029] - [主控台] 將輸出日誌檔偏好設定儲存至作業系統偏好設定
- [GROOVY-9034] - 調整數字文字中的 Java 語法底線(修正 Java 檔案的一些 Groovydoc 解析錯誤)
- [GROOVY-9037] - 允許 Java 語法在介面中部分理解「預設」(僅足夠讓 groovydoc 處理 Java 檔案)
- [GROOVY-9038] - 允許 antlr2 Java 語法部分理解 try-with-resources(僅足夠讓 groovydoc 處理 Java 檔案)
- [GROOVY-9060] - 讓 LinkedHashMap 的初始容量為 2 的次方,以提升效能
- [GROOVY-9065] - 在 JUnit5Runner 中新增對 @Testable 註解的支援
- [GROOVY-9067] - 使用標準 API 編譯 Java stub
- [GROOVY-9073] - 在編譯的類別中支援預覽功能
- [GROOVY-9081] - CLONE - 修復警告「發生非法反射存取操作」
- [GROOVY-9083] - groovyConsole 應更新為理解方法參照和 lambda 表達式
- [GROOVY-9084] - 新增遺失的委派方法至 `InnerLoader`
- [GROOVY-9099] - 在驗證原生方法參照失敗時擲出更好的例外
- [GROOVY-9100] - CompilerConfiguration.DEFAULT 應為不可變的
- [GROOVY-9101] - GroovyConsole 應有右鍵按一下內容功能表
- [GROOVY-9103] - CLONE - CLONE - 修復警告「發生非法反射存取操作」
- [GROOVY-9108] - 讓 Groovysh 中的 Interpreter 可變更
- [GROOVY-9109] - Groovysh:如果使用者提供的類別載入器已是 GroovyClassLoader,則不要強制覆寫
- [GROOVY-9112] - 清除 `GroovyClassLoader` 中的異味 *
- [GROOVY-9122] - ProcessingUnit 中的程式碼異味 *
- [GROOVY-9131] - 原生方法參照的延伸方法支援
- [GROOVY-9133] - Groovy Console 能支援 AutoRun 功能
- [GROOVY-9135] - 在 JUnit5Runner 中新增對 @Testable 註解的支援
- [GROOVY-9140] - Class.&instanceMethod 的第一個參數不正確
- [GROOVY-9165] - Grape 無法拉入 picocli *
- [GROOVY-9169] - Groovy 能支援 rightShift/leftShift 的 andThen/compose 別名
- [GROOVY-9175] - 開放 SecureASTCustomizer 以供擴充
- [GROOVY-9177] - 支援 JDK14
- [GROOVY-9199] - IntelliJ IDEA 除錯器忽略 finally 區塊中的程式碼
- [GROOVY-9210] - asm-util 缺少 TextfierSupport
- [GROOVY-9217] - 設定屬性時修正警告「發生非法反射存取操作」
- [GROOVY-9218] - 減少 `MethodIndex` 實例的記憶體使用量
- [GROOVY-9223] - 避免為每個 groovy 類別產生共用方法
- [GROOVY-9228] - 靜態編譯的 CLI 選項
- [GROOVY-9229] - 將 @ClosureParams 加入 Sql.withInstance(...) 的閉包輸入參數
- [GROOVY-9233] - 將 @ClosureParams 加入 Sql.withBatch(...) 的閉包輸入參數
- [GROOVY-9236] - 避免不必要的解析
- [GROOVY-9240] - ResourceGroovyMethods.traverse(File, Map<String, Object>, Closure) 的更佳簽章(以及超載)
- [GROOVY-9261] - 優化 ARM 的類型檢查
- [GROOVY-9266] - 擴充方法 metaClass 缺少 IDE/STC 的閉包中繼資料
- [GROOVY-9274] - 將 DGM `minus` 加入 `LocalDate`
- [GROOVY-9276] - 提升解析效能
- [GROOVY-9289] - @Delegate 應檢查屬性/方法名稱以取得註解屬性,例如 includes/excludes
- [GROOVY-9298] - 在啟用 indy 時消除一些非法存取警告
- [GROOVY-9312] - 最近的 grape 變更中斷 Windows 上的特定使用方式
- [GROOVY-9316] - 改善 AnnotationNode 的 toString
- [GROOVY-9320] - 支援可序列化 lambda 表達式
- [GROOVY-9324] - 在 Java 中實作 `AstStringCompiler`
- [GROOVY-9331] - shuffled() DGM 方法會洗牌錯誤的清單
- [GROOVY-9351] - 使 `NumberRange` 可序列化,以與 `IntRange` 保持一致
新功能
- [GROOVY-2840] - [PARROT] 支援 in 和 instanceof 的「not」
- [GROOVY-3791] - [PARROT] 在不含糊時支援 Java 陣列初始化器語法
- [GROOVY-5306] - [PARROT] 加入「a ?= 2」支援(Elvis 指派):應擴充為「a = a == null ? 2 : a」
- [GROOVY-5348] - [PARROT] 實作 do/while 迴圈
- [GROOVY-6336] - [PARROT] 支援 Java 7 ARM 區塊
- [GROOVY-8138] - 編譯靜態以支援串流
- [GROOVY-8223] - 多重回傳值 @CompileStatic Tuple#<> 運作
- [GROOVY-8334] - Groovy JDK(JSR 310)中支援 Java 8 日期/時間類型
- [GROOVY-8498] - [PARROT] 支援 Java10 的 `var` 關鍵字
- [GROOVY-8500] - 支援記錄位元組碼產生的堆疊追蹤
- [GROOVY-8516] - 加入 DGM `md5`
- [GROOVY-8518] - 加入 DGM `digest`
- [GROOVY-8542] - 支援使用類似 Java 的語法建立非靜態內部類別的執行個體
- [GROOVY-8558] - 加入 DGM `getLocation` 以取得包含指定類別的 jar 的 URL
- [GROOVY-8794] - 加入選擇性的 groovy-yaml 子專案以支援解析和建立 yaml
- [GROOVY-8808] - 加入 DGM `Throwable.asString`
- [GROOVY-8842] - 為 groovy 主控台編輯器實作一個智慧型高亮顯示器
- [GROOVY-8935] - 提供類似 Lombok 的 NonNull 的 @NullCheck AST 轉換
- [GROOVY-9128] - [PARROT] 提供對相同 (===) 和不相同 (!==) 算子的適當支援
- [GROOVY-9129] - [PARROT] 支援清單/陣列的安全索引操作,包括多維陣列/巢狀清單存取
- [GROOVY-9145] - 加入 DGSM `dumpAll` 至 `Thread`
- [GROOVY-9196] - 我們應提供類似 Kotlin 的 shuffle(d) DGM 方法
- [GROOVY-9198] - 我們應提供類似 Kotlin 的 average/mean DGM 方法
- [GROOVY-9384] - Groovy 應提供 Maven BOM
子任務
- [GROOVY-2773] - 傳遞鏈結方法(methodA().methodB().etc())作為參數時出現奇怪的行為
- [GROOVY-3446] - 方法呼叫解析為靜態匯入的方法,而不是同名的區域方法
- [GROOVY-4287] - CLONE - 外部 groovy 檔案中靜態巢狀類別的匯入中斷
- [GROOVY-5852] - 依需求進行靜態匯入會解析大寫參考
- [GROOVY-5961] - 未正確檢查靜態方法中 AIC 的變數範圍
- [GROOVY-8594] - DocGenerator 可以移動以避免分割套件 - 第 (2) 部分
- [GROOVY-8597] - SqlGroovyMethods 可以移動以避免分割套件 - 第 (2) 部分
- [GROOVY-8647] - 分割套件重新命名第一階段
- [GROOVY-8802] - Groovy 編譯器提供的 GroovyObject 方法實作現在標記為 @Internal
- [GROOVY-8843] - 修復 o.c.g.vmplugin.v7.Java7 中的非法反射存取
- [GROOVY-9254] - 分割套件重新命名第二階段
任務
- [GROOVY-5299] - [PARROT] antlr 4 語法建立工作
- [GROOVY-8279] - 調整 groovysh 以使用新解析器 Parrot 編譯
- [GROOVY-8664] - 從 findbugs 切換到 spotbugs
- [GROOVY-8691] - 移除舊位置中已棄用的 Jaxb 方法
- [GROOVY-8692] - 移除 Groovy 3 的 DirectFastStringServiceFactory
- [GROOVY-8864] - 特性的向後相容性
- [GROOVY-9208] - 調整 groovysh 完成器以使用新解析器 Parrot
- [GROOVY-9380] - VMPlugin 重構:將 Java5 到 Java7 合併到 Java8 *
- [GROOVY-9423] - 管理 String#stripIndent() 與 jdk13 的衝突 *
測試
- [GROOVY-9164] - 新增 @Generated 註解的測試
* 可能會破壞變更(請閱讀議題以取得詳細資訊 - 有時甚至會將細微差異標記為可能破壞變更)