summaryrefslogtreecommitdiff
path: root/java/com/google/devtools/build/android/desugar/Desugar.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/google/devtools/build/android/desugar/Desugar.java')
-rw-r--r--java/com/google/devtools/build/android/desugar/Desugar.java19
1 files changed, 17 insertions, 2 deletions
diff --git a/java/com/google/devtools/build/android/desugar/Desugar.java b/java/com/google/devtools/build/android/desugar/Desugar.java
index 63ca5e7..31c362e 100644
--- a/java/com/google/devtools/build/android/desugar/Desugar.java
+++ b/java/com/google/devtools/build/android/desugar/Desugar.java
@@ -229,6 +229,19 @@ class Desugar {
help = "Enables rewriting to desugar java.* classes."
)
public boolean coreLibrary;
+
+ /** Set to work around b/62623509 with JaCoCo versions prior to 0.7.9. */
+ // TODO(kmb): Remove when Android Studio doesn't need it anymore (see b/37116789)
+ @Option(
+ name = "legacy_jacoco_fix",
+ defaultValue = "false",
+ documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
+ effectTags = {OptionEffectTag.UNKNOWN},
+ help = "Consider setting this flag if you're using JaCoCo versions prior to 0.7.9 to work "
+ + "around issues with coverage instrumentation in default and static interface methods. "
+ + "This flag may be removed when no longer needed."
+ )
+ public boolean legacyJacocoFix;
}
private final DesugarOptions options;
@@ -511,7 +524,8 @@ class Desugar {
if (options.desugarInterfaceMethodBodiesIfNeeded) {
visitor =
new DefaultMethodClassFixer(visitor, classpathReader, bootclasspathReader, loader);
- visitor = new InterfaceDesugaring(visitor, bootclasspathReader, store);
+ visitor =
+ new InterfaceDesugaring(visitor, bootclasspathReader, store, options.legacyJacocoFix);
}
}
visitor =
@@ -561,7 +575,8 @@ class Desugar {
if (options.desugarInterfaceMethodBodiesIfNeeded) {
visitor =
new DefaultMethodClassFixer(visitor, classpathReader, bootclasspathReader, loader);
- visitor = new InterfaceDesugaring(visitor, bootclasspathReader, store);
+ visitor =
+ new InterfaceDesugaring(visitor, bootclasspathReader, store, options.legacyJacocoFix);
}
}
// LambdaDesugaring is relatively expensive, so check first whether we need it. Additionally,