|
50 | 50 | import java.io.IOException; |
51 | 51 | import java.io.PrintWriter; |
52 | 52 | import java.util.ArrayList; |
| 53 | +import java.util.Arrays; |
53 | 54 | import java.util.HashMap; |
54 | 55 | import java.util.List; |
55 | 56 | import java.util.Locale; |
@@ -268,22 +269,20 @@ protected ExecResult exec() throws IOException { |
268 | 269 | } |
269 | 270 | } |
270 | 271 |
|
271 | | - @SuppressWarnings("DataFlowIssue") |
272 | 272 | 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)); |
280 | 274 | } |
281 | 275 |
|
282 | 276 | @SuppressWarnings("DataFlowIssue") |
283 | 277 | protected final void args(Iterable<?> args) { |
284 | 278 | try { |
285 | 279 | 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)); |
287 | 286 | } |
288 | 287 | } catch (NullPointerException e) { |
289 | 288 | 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) |
334 | 333 | /// [org.gradle.api.provider.ProviderFactory#provider(Callable)]. |
335 | 334 | /// |
336 | 335 | /// @param args The args to add |
| 336 | + /// @deprecated Too ambiguous with [#args(String, Provider)]. Prefer that method instead. |
| 337 | + @Deprecated(forRemoval = true) |
337 | 338 | protected final void args(Map<?, ?> args) { |
338 | 339 | for (Map.Entry<?, ?> entry : args.entrySet()) { |
339 | 340 | var key = entry.getKey(); |
|
0 commit comments