codeconsole commented on PR #3026: URL: https://github.com/apache/groovy/pull/3026#issuecomment-6513965682
@daniellansun Thanks. I've split it as you suggested. This PR is now only the incubating option: the adapter, its follow-ups, and the trait `rehydrate` change that lets a closure written in a trait method get its adapter, which does nothing without the option. It is rebased on current master, so the conflicts are gone. Its 31 tests pass without any of the fixes below, so nothing has to land first. With the option off, Groovy's 8,508 root test classes compile to the same bytes as on master. The fixes found while testing it are now separate: - GROOVY-12560, #3088: `<=>` with operands of different types - GROOVY-10979, #3089: a closure, lambda or method reference passed for a type parameter that the call binds to a functional interface - GROOVY-12561, #3090: a closure assigned to a subscript or property of a functional interface type - GROOVY-12562, #3091: `instanceof` narrowing outside a guard, comparisons with a boolean literal, and loop conditions - GROOVY-12563, #3092: closures and lambdas in trait methods getting the helper class - GROOVY-12564, #3093: calling a closure of intersection type - GROOVY-12565, #3094: the groovy-lsp `LspFixture` race that failed CI here Each is based on master and has a test that runs without the option. The tests here that combined the option with one of those shapes (a closure for a type parameter or assigned to a property, trait closure `owner`/`thisObject`/`this.m()`, a closure of intersection type, a static closure field of a trait) are left out for now. I'll add them back here, or in whichever of the two PRs merges second. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
