This is an automated email from the ASF dual-hosted git repository.
sunlan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/groovy.git
The following commit(s) were added to refs/heads/master by this push:
new 4090a96f4e Trivial refactor: simplify code with `String.repeat()`
4090a96f4e is described below
commit 4090a96f4ec0f9859ec8139bc5ab77bb49f7a86f
Author: Daniel Sun <[email protected]>
AuthorDate: Sat Jun 14 23:55:06 2025 +0900
Trivial refactor: simplify code with `String.repeat()`
---
src/main/java/groovy/lang/TracingInterceptor.java | 6 +-----
.../java/org/apache/groovy/ast/tools/ClassNodeUtils.java | 4 +---
.../org/codehaus/groovy/classgen/asm/CallSiteWriter.java | 4 +---
.../org/codehaus/groovy/runtime/StringGroovyMethods.java | 13 +++----------
.../groovy/runtime/callsite/CallSiteGenerator.java | 5 ++---
src/main/java/org/codehaus/groovy/tools/Utilities.java | 16 ++++------------
.../main/groovy/groovy/console/ui/text/GroovyFilter.java | 4 +---
.../console/ui/text/StructuredSyntaxDocumentFilter.java | 4 +---
.../src/main/java/groovy/test/GroovyAssert.java | 2 +-
9 files changed, 15 insertions(+), 43 deletions(-)
diff --git a/src/main/java/groovy/lang/TracingInterceptor.java
b/src/main/java/groovy/lang/TracingInterceptor.java
index 6bcb62b76e..e4a266ae34 100644
--- a/src/main/java/groovy/lang/TracingInterceptor.java
+++ b/src/main/java/groovy/lang/TracingInterceptor.java
@@ -87,11 +87,7 @@ public class TracingInterceptor implements Interceptor {
return true;
}
private String indent(){
- StringBuilder result = new StringBuilder();
- for (int i=0; i<indent;i++){
- result.append(" ");
- }
- return result.toString();
+ return " ".repeat(Math.max(0, indent));
}
protected void write(Object object, String methodName, Object[] arguments,
final String origin) {
diff --git a/src/main/java/org/apache/groovy/ast/tools/ClassNodeUtils.java
b/src/main/java/org/apache/groovy/ast/tools/ClassNodeUtils.java
index e91bc8f651..b16fae4603 100644
--- a/src/main/java/org/apache/groovy/ast/tools/ClassNodeUtils.java
+++ b/src/main/java/org/apache/groovy/ast/tools/ClassNodeUtils.java
@@ -83,9 +83,7 @@ public class ClassNodeUtils {
}
StringBuilder sb = new StringBuilder(cn.getName().length() + (2 *
dim));
sb.append(formatTypeName(cn));
- for (int i = 0; i < dim; i += 1) {
- sb.append("[]");
- }
+ sb.append("[]".repeat(dim));
return sb.toString();
}
return cNode.isGenericsPlaceHolder() ? cNode.getUnresolvedName() :
cNode.getName();
diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/CallSiteWriter.java
b/src/main/java/org/codehaus/groovy/classgen/asm/CallSiteWriter.java
index 374ee9ee5f..1ebf8d495a 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/CallSiteWriter.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/CallSiteWriter.java
@@ -78,9 +78,7 @@ public class CallSiteWriter {
}
if (sig[numberOfArguments] == null) {
StringBuilder sb = new StringBuilder("(");
- for (int i = 0; i != numberOfArguments; ++i) {
- sb.append("Ljava/lang/Object;");
- }
+ sb.append("Ljava/lang/Object;".repeat(numberOfArguments));
sb.append(")[Ljava/lang/Object;");
sig[numberOfArguments] = sb.toString();
}
diff --git a/src/main/java/org/codehaus/groovy/runtime/StringGroovyMethods.java
b/src/main/java/org/codehaus/groovy/runtime/StringGroovyMethods.java
index 419f61deac..1df73c29ad 100644
--- a/src/main/java/org/codehaus/groovy/runtime/StringGroovyMethods.java
+++ b/src/main/java/org/codehaus/groovy/runtime/StringGroovyMethods.java
@@ -1940,16 +1940,9 @@ public class StringGroovyMethods extends
DefaultGroovyMethodsSupport {
*/
public static String multiply(final CharSequence self, final Number
factor) {
int size = factor.intValue();
- if (size == 0)
- return "";
- else if (size < 0) {
- throw new IllegalArgumentException("multiply() should be called
with a number of 0 or greater not: " + size);
- }
- StringBuilder answer = new StringBuilder(self);
- for (int i = 1; i < size; i++) {
- answer.append(self);
- }
- return answer.toString();
+ if (size == 0) return "";
+ if (size < 0) throw new IllegalArgumentException("multiply() should be
called with a number of 0 or greater not: " + size);
+ return String.valueOf(self).repeat(size);
}
/**
diff --git
a/src/main/java/org/codehaus/groovy/runtime/callsite/CallSiteGenerator.java
b/src/main/java/org/codehaus/groovy/runtime/callsite/CallSiteGenerator.java
index 4b9aac7654..2dc9f45fd6 100644
--- a/src/main/java/org/codehaus/groovy/runtime/callsite/CallSiteGenerator.java
+++ b/src/main/java/org/codehaus/groovy/runtime/callsite/CallSiteGenerator.java
@@ -123,11 +123,10 @@ public class CallSiteGenerator {
public static void genCallWithFixedParams(ClassWriter cw, String name,
final String superClass, CachedMethod cachedMethod, String receiverType ) {
if (cachedMethod.getParamsCount() > 4) return;
- StringBuilder pdescb = new StringBuilder();
final int pc = cachedMethod.getParamsCount();
- for (int i = 0; i != pc; ++i) pdescb.append("Ljava/lang/Object;");
+ final String pdescb = "Ljava/lang/Object;".repeat(pc);
-
writeMethod(cw,name,pc+2,superClass,cachedMethod,receiverType,pdescb.toString(),false);
+ writeMethod(cw, name, pc + 2, superClass, cachedMethod, receiverType,
pdescb, false);
}
public static void genCallXxxWithArray(ClassWriter cw, final String name,
final String superClass, CachedMethod cachedMethod, String receiverType) {
diff --git a/src/main/java/org/codehaus/groovy/tools/Utilities.java
b/src/main/java/org/codehaus/groovy/tools/Utilities.java
index b749d2bccb..1e6e7dad1b 100644
--- a/src/main/java/org/codehaus/groovy/tools/Utilities.java
+++ b/src/main/java/org/codehaus/groovy/tools/Utilities.java
@@ -18,6 +18,8 @@
*/
package org.codehaus.groovy.tools;
+import org.codehaus.groovy.runtime.StringGroovyMethods;
+
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
@@ -37,23 +39,13 @@ public abstract class Utilities
/**
* Returns a string made up of repetitions of the specified string.
*/
-
- public static String repeatString( String pattern, int repeats )
- {
- StringBuilder buffer = new StringBuilder( pattern.length() * repeats );
- for( int i = 0; i < repeats; i++ )
- {
- buffer.append( pattern );
- }
-
- return new String( buffer );
+ public static String repeatString(String pattern, int repeats) {
+ return StringGroovyMethods.multiply(pattern, repeats);
}
-
/**
* Returns the end-of-line marker.
*/
-
public static String eol()
{
return eol;
diff --git
a/subprojects/groovy-console/src/main/groovy/groovy/console/ui/text/GroovyFilter.java
b/subprojects/groovy-console/src/main/groovy/groovy/console/ui/text/GroovyFilter.java
index fbe1e849ce..1c9140dfb2 100644
---
a/subprojects/groovy-console/src/main/groovy/groovy/console/ui/text/GroovyFilter.java
+++
b/subprojects/groovy-console/src/main/groovy/groovy/console/ui/text/GroovyFilter.java
@@ -220,9 +220,7 @@ public class GroovyFilter extends
StructuredSyntaxDocumentFilter {
buffer.delete(0, buffer.length());
buffer.append('\n');
if (index > -1) {
- for (int i = 0; i < index + 4; i++) {
- buffer.append(' ');
- }
+ buffer.append(" ".repeat(index + 4));
}
try {
doc.insertString(offset, buffer.toString(),
diff --git
a/subprojects/groovy-console/src/main/groovy/groovy/console/ui/text/StructuredSyntaxDocumentFilter.java
b/subprojects/groovy-console/src/main/groovy/groovy/console/ui/text/StructuredSyntaxDocumentFilter.java
index 8438aa7625..a9511805a6 100644
---
a/subprojects/groovy-console/src/main/groovy/groovy/console/ui/text/StructuredSyntaxDocumentFilter.java
+++
b/subprojects/groovy-console/src/main/groovy/groovy/console/ui/text/StructuredSyntaxDocumentFilter.java
@@ -69,9 +69,7 @@ public class StructuredSyntaxDocumentFilter extends
DocumentFilter {
int checked = checking.indexOf('(');
if (checked > -1) {
StringBuilder msg = new StringBuilder("Only non-capturing groups
allowed:\r\n" + regexp + "\r\n");
- for (int i = 0; i < checked; i++) {
- msg.append(" ");
- }
+ msg.append(" ".repeat(checked));
msg.append("^");
throw new IllegalArgumentException(msg.toString());
}
diff --git
a/subprojects/groovy-test/src/main/java/groovy/test/GroovyAssert.java
b/subprojects/groovy-test/src/main/java/groovy/test/GroovyAssert.java
index 3795683efe..d72b17b176 100644
--- a/subprojects/groovy-test/src/main/java/groovy/test/GroovyAssert.java
+++ b/subprojects/groovy-test/src/main/java/groovy/test/GroovyAssert.java
@@ -301,7 +301,7 @@ public class GroovyAssert {
int level = 0;
while (th != null) {
if (level > 1) {
- for (int i = 0; i < level - 1; i++) sb.append(" ");
+ sb.append(" ".repeat(level - 1));
}
if (level > 0) sb.append("-> ");
if (level > MAX_NESTED_EXCEPTIONS) {