Skip to content

Commit 97f69d4

Browse files
committed
Account for providers in ToolExecBase args
1 parent 720361a commit 97f69d4

File tree

1 file changed

+10
-9
lines changed
  • gradleutils-shared/src/main/java/net/minecraftforge/gradleutils/shared

1 file changed

+10
-9
lines changed

gradleutils-shared/src/main/java/net/minecraftforge/gradleutils/shared/ToolExecBase.java

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
import java.io.IOException;
5151
import java.io.PrintWriter;
5252
import java.util.ArrayList;
53+
import java.util.Arrays;
5354
import java.util.HashMap;
5455
import java.util.List;
5556
import java.util.Locale;
@@ -268,22 +269,20 @@ protected ExecResult exec() throws IOException {
268269
}
269270
}
270271

271-
@SuppressWarnings("DataFlowIssue")
272272
protected final void args(Object... args) {
273-
try {
274-
for (var arg : args) {
275-
this.args.add(this.getProviders().provider(arg::toString));
276-
}
277-
} catch (NullPointerException e) {
278-
throw new IllegalStateException("ToolExecBase#jvmArgs can only be called inside of #addArguments()", e);
279-
}
273+
this.args(Arrays.asList(args));
280274
}
281275

282276
@SuppressWarnings("DataFlowIssue")
283277
protected final void args(Iterable<?> args) {
284278
try {
285279
for (var arg : args) {
286-
this.args.add(this.getProviders().provider(arg::toString));
280+
if (arg instanceof ProviderConvertible<?> providerConvertible)
281+
this.args.add(providerConvertible.asProvider().map(Object::toString));
282+
if (arg instanceof Provider<?> provider)
283+
this.args.add(provider.map(Object::toString));
284+
else
285+
this.args.add(this.getProviders().provider(arg::toString));
287286
}
288287
} catch (NullPointerException e) {
289288
throw new IllegalStateException("ToolExecBase#jvmArgs can only be called inside of #addArguments()", e);
@@ -334,6 +333,8 @@ protected final void args(String arg, @UnknownNullability Provider<?> provider)
334333
/// [org.gradle.api.provider.ProviderFactory#provider(Callable)].
335334
///
336335
/// @param args The args to add
336+
/// @deprecated Too ambiguous with [#args(String, Provider)]. Prefer that method instead.
337+
@Deprecated(forRemoval = true)
337338
protected final void args(Map<?, ?> args) {
338339
for (Map.Entry<?, ?> entry : args.entrySet()) {
339340
var key = entry.getKey();

0 commit comments

Comments
 (0)