This is an automated email from the ASF dual-hosted git repository. sunlan pushed a commit to branch GROOVY-8258 in repository https://gitbox.apache.org/repos/asf/groovy.git
commit e233f3428354504f9c88a8154ae159a3b6a5a308 Author: Daniel Sun <[email protected]> AuthorDate: Mon Oct 5 00:54:02 2020 +0800 GROOVY-8258: Add macro method LINQ --- ...GroovyMethods.java => LinqGroovyMethods.groovy} | 17 +++++++-------- .../groovy/org/apache/groovy/linq/LinqTest.groovy} | 24 +++++++++++++--------- 2 files changed, 23 insertions(+), 18 deletions(-) diff --git a/subprojects/groovy-linq/src/main/groovy/org/apache/groovy/linq/LinqGroovyMethods.java b/subprojects/groovy-linq/src/main/groovy/org/apache/groovy/linq/LinqGroovyMethods.groovy similarity index 65% copy from subprojects/groovy-linq/src/main/groovy/org/apache/groovy/linq/LinqGroovyMethods.java copy to subprojects/groovy-linq/src/main/groovy/org/apache/groovy/linq/LinqGroovyMethods.groovy index 936e6be..224c958 100644 --- a/subprojects/groovy-linq/src/main/groovy/org/apache/groovy/linq/LinqGroovyMethods.java +++ b/subprojects/groovy-linq/src/main/groovy/org/apache/groovy/linq/LinqGroovyMethods.groovy @@ -16,17 +16,18 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.groovy.linq; +package org.apache.groovy.linq -import org.codehaus.groovy.ast.expr.ClosureExpression; -import org.codehaus.groovy.ast.expr.Expression; -import org.codehaus.groovy.macro.runtime.Macro; -import org.codehaus.groovy.macro.runtime.MacroContext; +import org.codehaus.groovy.ast.expr.ClosureExpression +import org.codehaus.groovy.ast.expr.ConstantExpression +import org.codehaus.groovy.ast.expr.Expression +import org.codehaus.groovy.macro.runtime.Macro +import org.codehaus.groovy.macro.runtime.MacroContext -public class LinqGroovyMethods { +class LinqGroovyMethods { @Macro - public static Expression LINQ(MacroContext ctx, final ClosureExpression closureExpression) { - return null; // TODO + static Expression LINQ(MacroContext ctx, final ClosureExpression closureExpression) { + return macro { 'TODO LINQ' } } } diff --git a/subprojects/groovy-linq/src/main/groovy/org/apache/groovy/linq/LinqGroovyMethods.java b/subprojects/groovy-linq/src/test/groovy/org/apache/groovy/linq/LinqTest.groovy similarity index 67% rename from subprojects/groovy-linq/src/main/groovy/org/apache/groovy/linq/LinqGroovyMethods.java rename to subprojects/groovy-linq/src/test/groovy/org/apache/groovy/linq/LinqTest.groovy index 936e6be..701f1c6 100644 --- a/subprojects/groovy-linq/src/main/groovy/org/apache/groovy/linq/LinqGroovyMethods.java +++ b/subprojects/groovy-linq/src/test/groovy/org/apache/groovy/linq/LinqTest.groovy @@ -16,17 +16,21 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.groovy.linq; +package org.apache.groovy.linq -import org.codehaus.groovy.ast.expr.ClosureExpression; -import org.codehaus.groovy.ast.expr.Expression; -import org.codehaus.groovy.macro.runtime.Macro; -import org.codehaus.groovy.macro.runtime.MacroContext; -public class LinqGroovyMethods { - @Macro - public static Expression LINQ(MacroContext ctx, final ClosureExpression closureExpression) { - return null; // TODO +import groovy.transform.CompileStatic +import org.junit.Test + +import static groovy.test.GroovyAssert.assertScript + + +@CompileStatic +class LinqTest { + @Test + void testLinqMacroMethod() { + assertScript ''' + assert 'TODO LINQ' == LINQ {} + ''' } } -
