Skip to content

Commit 864c6c3

Browse files
authored
New CLI option --ignore_unused_roots_and_prunes (#3354)
* New CLI option --ignore_unused_roots_and_prunes Omitting this was an oversight. * apiDump --------- Co-authored-by: Jesse Wilson <[email protected]>
1 parent bd4d5e9 commit 864c6c3

File tree

3 files changed

+12
-1
lines changed

3 files changed

+12
-1
lines changed

wire-compiler/api/wire-compiler.api

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ public final class com/squareup/wire/DryRunFileSystem : okio/ForwardingFileSyste
88
public final class com/squareup/wire/WireCompiler {
99
public static final field CODE_GENERATED_BY_WIRE Ljava/lang/String;
1010
public static final field Companion Lcom/squareup/wire/WireCompiler$Companion;
11-
public synthetic fun <init> (Lokio/FileSystem;Lcom/squareup/wire/WireLogger;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/Map;ZZZZZZZZIZZZLcom/squareup/wire/kotlin/RpcCallStyle;Lcom/squareup/wire/kotlin/RpcRole;ZLjava/lang/String;ZZZZLcom/squareup/wire/kotlin/EnumMode;Ljava/util/List;Ljava/util/Map;Ljava/util/List;IILkotlin/jvm/internal/DefaultConstructorMarker;)V
11+
public synthetic fun <init> (Lokio/FileSystem;Lcom/squareup/wire/WireLogger;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/util/List;ZLjava/util/Map;ZZZZZZZZIZZZLcom/squareup/wire/kotlin/RpcCallStyle;Lcom/squareup/wire/kotlin/RpcRole;ZLjava/lang/String;ZZZZLcom/squareup/wire/kotlin/EnumMode;Ljava/util/List;Ljava/util/Map;Ljava/util/List;IILkotlin/jvm/internal/DefaultConstructorMarker;)V
1212
public final fun compile ()V
1313
public static final fun forArgs (Ljava/nio/file/FileSystem;Lcom/squareup/wire/WireLogger;[Ljava/lang/String;)Lcom/squareup/wire/WireCompiler;
1414
public static final fun forArgs (Lokio/FileSystem;Lcom/squareup/wire/WireLogger;[Ljava/lang/String;)Lcom/squareup/wire/WireCompiler;
@@ -44,6 +44,7 @@ public final class com/squareup/wire/WireCompiler {
4444
public final fun getOpaqueTypes ()Ljava/util/List;
4545
public final fun getPermitPackageCycles ()Z
4646
public final fun getProtoPaths ()Ljava/util/List;
47+
public final fun getRejectUnusedRootsOrPrunes ()Z
4748
public final fun getSchemaHandlerFactoryClass ()Ljava/lang/String;
4849
public final fun getSourceFileNames ()Ljava/util/List;
4950
public final fun getSwiftExclusive ()Z

wire-compiler/src/main/java/com/squareup/wire/WireCompiler.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,7 @@ class WireCompiler internal constructor(
128128
val sourceFileNames: List<String>,
129129
val treeShakingRoots: List<String>,
130130
val treeShakingRubbish: List<String>,
131+
val rejectUnusedRootsOrPrunes: Boolean,
131132
val modules: Map<String, WireRun.Module>,
132133
val emitAndroid: Boolean,
133134
val emitAndroidAnnotations: Boolean,
@@ -230,6 +231,7 @@ class WireCompiler internal constructor(
230231
permitPackageCycles = permitPackageCycles,
231232
loadExhaustively = loadExhaustively,
232233
eventListeners = eventListenerFactoryClasses.map { newEventListenerFactory(it).create() },
234+
rejectUnusedRootsOrPrunes = rejectUnusedRootsOrPrunes,
233235
opaqueTypes = opaqueTypes,
234236
)
235237

@@ -301,6 +303,7 @@ class WireCompiler internal constructor(
301303
private const val KOTLIN_ENUM_MODE = "--kotlin_enum_mode="
302304
private const val CUSTOM_OPTION_FLAG = "--custom_option="
303305
private const val OPAQUE_TYPES_FLAG = "--opaque_types="
306+
private const val IGNORE_UNUSED_ROOTS_AND_PRUNES = "--ignore_unused_roots_and_prunes"
304307
private const val KOTLIN_EXPLICIT_STREAMING_CALLS = "--kotlin_explicit_streaming_calls"
305308

306309
@Throws(IOException::class)
@@ -369,6 +372,7 @@ class WireCompiler internal constructor(
369372
var kotlinExplicitStreamingCalls = false
370373
var dryRun = false
371374
val customOptions = mutableMapOf<String, String>()
375+
var rejectUnusedRootsOrPrunes = true
372376
val opaqueTypes = mutableListOf<String>()
373377

374378
for (arg in args) {
@@ -492,6 +496,7 @@ class WireCompiler internal constructor(
492496
arg == JAVA_INTEROP -> javaInterop = true
493497
arg == EMIT_PROTO_READER_32 -> emitProtoReader32 = true
494498
arg == KOTLIN_EXPLICIT_STREAMING_CALLS -> kotlinExplicitStreamingCalls = true
499+
arg == IGNORE_UNUSED_ROOTS_AND_PRUNES -> rejectUnusedRootsOrPrunes = false
495500
arg.startsWith("--") -> throw IllegalArgumentException("Unknown argument '$arg'.")
496501
else -> sourceFileNames.add(arg)
497502
}
@@ -547,6 +552,7 @@ class WireCompiler internal constructor(
547552
eventListenerFactoryClasses = eventListenerFactoryClasses,
548553
customOptions = customOptions,
549554
opaqueTypes = opaqueTypes,
555+
rejectUnusedRootsOrPrunes = rejectUnusedRootsOrPrunes,
550556
kotlinExplicitStreamingCalls = kotlinExplicitStreamingCalls,
551557
)
552558
}

wire-compiler/src/test/java/com/squareup/wire/CommandLineOptionsTest.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import assertk.assertions.containsOnly
2121
import assertk.assertions.hasMessage
2222
import assertk.assertions.isEmpty
2323
import assertk.assertions.isEqualTo
24+
import assertk.assertions.isFalse
2425
import com.squareup.wire.kotlin.EnumMode
2526
import com.squareup.wire.schema.WireRun
2627
import java.io.File
@@ -112,6 +113,9 @@ class CommandLineOptionsTest {
112113

113114
compiler = parseArgs("--java_out=.", "--includes=com.example.Foo,com.example.Bar")
114115
assertThat(compiler.treeShakingRoots).containsExactly("com.example.Foo", "com.example.Bar")
116+
117+
compiler = parseArgs("--java_out=.", "--ignore_unused_roots_and_prunes")
118+
assertThat(compiler.rejectUnusedRootsOrPrunes).isFalse()
115119
}
116120

117121
@Test

0 commit comments

Comments
 (0)