[
https://issues.apache.org/jira/browse/GROOVY-7840?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16010312#comment-16010312
]
ASF GitHub Bot commented on GROOVY-7840:
----------------------------------------
Github user paulk-asert commented on a diff in the pull request:
https://github.com/apache/groovy/pull/533#discussion_r116460943
--- Diff: src/main/org/apache/groovy/ast/tools/MethodNodeUtils.java ---
@@ -0,0 +1,66 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.groovy.ast.tools;
+
+import org.codehaus.groovy.ast.MethodNode;
+import org.codehaus.groovy.ast.Parameter;
+
+public class MethodNodeUtils {
+ /**
+ * Return the method node's descriptor including its
+ * name and parameter types without generics.
+ *
+ * @param mNode the method node
+ * @return the method node's abbreviated descriptor excluding the
return type
+ */
+ public static String methodDescriptorWithoutReturnType(MethodNode
mNode) {
--- End diff --
I kept it distinct because I wasn't really sure that we should tie the
particular formatting we have chosen to the more general method that some might
expect to find in MethodNode. If you look at:
org.objectweb.asm.Type#getMethodDescriptor(java.lang.reflect.Method)
It would produce different output.
For example, for this method:
`int[] method(List arg1, String arg2)`
ASM would produce the familiar:
`(Ljava/util/List;Ljava/lang/String;)[I`
whereas we produce:
`[I method(java.util.List, java.lang.String)`
What we produce is suitable for our purposes (and we need the name) but I
wonder what people would expect in MethodNode.
> Verifier#makeDescriptorWithoutReturnType uses ClassNode#toString with generics
> ------------------------------------------------------------------------------
>
> Key: GROOVY-7840
> URL: https://issues.apache.org/jira/browse/GROOVY-7840
> Project: Groovy
> Issue Type: Bug
> Reporter: Jochen Theodorou
> Labels: easyfix
>
> As noted in GROOVY-7826, commit
> [74089c1|https://github.com/apache/groovy/commit/74089c1156d6c296d64e68e766575e86c4119c67]
> contains the addition of Verifier#makeDescriptorWithoutReturnType. The
> method is based on ClassNode#toString, which will include redirects and their
> generics information. This should not be the case
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)