Add -Xjvm-defaults=all to kotlin compilations

This causes kotlinc to output default methods
instead of DefaultsImpl inner classes. It's required
for code that depends on other libraries using
@JvmDefault. It will be the default in a future
version of kotlin.

Bug: 236431222
Test: treehugger
Change-Id: I67a7cb3b816b41a441af7ec78cc64bc358c6889d
diff --git a/java/base.go b/java/base.go
index 0900daa..b76dcc9 100644
--- a/java/base.go
+++ b/java/base.go
@@ -1072,6 +1072,13 @@
 		kotlincFlags := j.properties.Kotlincflags
 		CheckKotlincFlags(ctx, kotlincFlags)
 
+		// This is needed for code that depends on libraries that use @JvmDefault
+		// -Xjvm-default=all will be the default in a future version of kotlin
+		// according to https://blog.jetbrains.com/kotlin/2020/07/kotlin-1-4-m3-generating-default-methods-in-interfaces/
+		if flags.javaVersion >= JAVA_VERSION_8 {
+			kotlincFlags = append(kotlincFlags, "-Xjvm-default=all")
+		}
+
 		// Workaround for KT-46512
 		kotlincFlags = append(kotlincFlags, "-Xsam-conversions=class")