diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/CompileEnvironmentUtil.java b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/CompileEnvironmentUtil.java index d46ebc5a4db..cce1bd287c7 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/CompileEnvironmentUtil.java +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/CompileEnvironmentUtil.java @@ -33,7 +33,8 @@ import org.jetbrains.kotlin.utils.ExceptionUtilsKt; import org.jetbrains.kotlin.utils.PathUtil; import java.io.*; -import java.util.*; +import java.util.Calendar; +import java.util.GregorianCalendar; import java.util.jar.*; import static org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity.ERROR; @@ -144,11 +145,13 @@ public class CompileEnvironmentUtil { JarEntry e = jis.getNextJarEntry(); if (e == null) break; - if ((!FileUtilRt.extensionEquals(e.getName(), "class") && - !FileUtilRt.extensionEquals(e.getName(), BuiltInSerializerProtocol.BUILTINS_FILE_EXTENSION)) || - StringsKt.substringAfterLast(e.getName(), "/", e.getName()).equals("module-info.class")) { + String name = e.getName(); + if (!FileUtilRt.extensionEquals(name, "class") && + !FileUtilRt.extensionEquals(name, BuiltInSerializerProtocol.BUILTINS_FILE_EXTENSION) && + !name.startsWith("META-INF/services/")) { continue; } + if (StringsKt.substringAfterLast(name, "/", name).equals("module-info.class")) continue; if (resetJarTimestamps) { e.setTime(DOS_EPOCH); } diff --git a/compiler/testData/integration/smoke/reflect/reflect.kt b/compiler/testData/integration/smoke/reflect/reflect.kt index 4fb5c0b80cf..4c402f51d00 100644 --- a/compiler/testData/integration/smoke/reflect/reflect.kt +++ b/compiler/testData/integration/smoke/reflect/reflect.kt @@ -1,5 +1,8 @@ package reflect +import kotlin.reflect.jvm.kotlinFunction + fun main() { String::class.annotations -} \ No newline at end of file + KotlinVersion::class.java.methods.first().kotlinFunction +}