diff options
author | Evgeny Mandrikov <138671+Godin@users.noreply.github.com> | 2021-04-08 11:30:06 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-08 11:30:06 +0200 |
commit | b68fe1a0a7fb86f12cda689ec473fd6633699b55 (patch) | |
tree | 7a6cbfe736fdeadecbfd147ea63cf94160af1dd5 /org.jacoco.core/src/org/jacoco | |
parent | 9a88237cc399ecd5ba149c56de56130bf99d0385 (diff) | |
download | jacoco-b68fe1a0a7fb86f12cda689ec473fd6633699b55.tar.gz |
Update filter for Kotlin 1.5 when-expressions with String (#1172)
Diffstat (limited to 'org.jacoco.core/src/org/jacoco')
-rw-r--r-- | org.jacoco.core/src/org/jacoco/core/internal/analysis/filter/Filters.java | 2 | ||||
-rw-r--r-- | org.jacoco.core/src/org/jacoco/core/internal/analysis/filter/StringSwitchFilter.java (renamed from org.jacoco.core/src/org/jacoco/core/internal/analysis/filter/StringSwitchEcjFilter.java) | 8 |
2 files changed, 6 insertions, 4 deletions
diff --git a/org.jacoco.core/src/org/jacoco/core/internal/analysis/filter/Filters.java b/org.jacoco.core/src/org/jacoco/core/internal/analysis/filter/Filters.java index 4a7c18fa..484ccc00 100644 --- a/org.jacoco.core/src/org/jacoco/core/internal/analysis/filter/Filters.java +++ b/org.jacoco.core/src/org/jacoco/core/internal/analysis/filter/Filters.java @@ -38,7 +38,7 @@ public final class Filters implements IFilter { new TryWithResourcesJavacFilter(), new TryWithResourcesEcjFilter(), new FinallyFilter(), new PrivateEmptyNoArgConstructorFilter(), - new StringSwitchJavacFilter(), new StringSwitchEcjFilter(), + new StringSwitchJavacFilter(), new StringSwitchFilter(), new EnumEmptyConstructorFilter(), new RecordsFilter(), new AnnotationGeneratedFilter(), new KotlinGeneratedFilter(), new KotlinLateinitFilter(), new KotlinWhenFilter(), diff --git a/org.jacoco.core/src/org/jacoco/core/internal/analysis/filter/StringSwitchEcjFilter.java b/org.jacoco.core/src/org/jacoco/core/internal/analysis/filter/StringSwitchFilter.java index 47750f0c..a78e253e 100644 --- a/org.jacoco.core/src/org/jacoco/core/internal/analysis/filter/StringSwitchEcjFilter.java +++ b/org.jacoco.core/src/org/jacoco/core/internal/analysis/filter/StringSwitchFilter.java @@ -26,9 +26,10 @@ import org.objectweb.asm.tree.VarInsnNode; /** * Filters code that is generated by ECJ for a <code>switch</code> statement - * with a <code>String</code>. + * with a <code>String</code> and by Kotlin compiler 1.5 and above for a + * <code>when</code> expression with a <code>String</code>. */ -public final class StringSwitchEcjFilter implements IFilter { +public final class StringSwitchFilter implements IFilter { public void filter(final MethodNode methodNode, final IFilterContext context, final IFilterOutput output) { @@ -42,7 +43,8 @@ public final class StringSwitchEcjFilter implements IFilter { public void match(final AbstractInsnNode start, final IFilterOutput output) { - if (Opcodes.ASTORE != start.getOpcode()) { + if (start.getOpcode() != /* ECJ */ Opcodes.ASTORE + && start.getOpcode() != /* Kotlin */ Opcodes.ALOAD) { return; } cursor = start; |