only stub default constructor when compiling against .java source files

This commit is contained in:
Kevin Bierhoff
2020-03-09 11:33:20 -07:00
committed by Alexander Udalov
parent c83860187c
commit 7448761dfd
19 changed files with 90 additions and 2 deletions
@@ -619,7 +619,7 @@ class LazyJavaClassMemberScope(
private fun createDefaultConstructor(): ClassConstructorDescriptor? {
val isAnnotation: Boolean = jClass.isAnnotationType
if (jClass.isInterface && !isAnnotation)
if ((jClass.isInterface || !jClass.hasDefaultConstructor()) && !isAnnotation)
return null
val classDescriptor = ownerDescriptor
@@ -90,6 +90,7 @@ interface JavaClass : JavaClassifier, JavaTypeParameterListOwner, JavaModifierLi
val methods: Collection<JavaMethod>
val fields: Collection<JavaField>
val constructors: Collection<JavaConstructor>
fun hasDefaultConstructor(): Boolean
}
val JavaClass.classId: ClassId?
@@ -96,6 +96,8 @@ class ReflectJavaClass(
.map(::ReflectJavaConstructor)
.toList()
override fun hasDefaultConstructor() = false // any default constructor is returned by constructors
override val lightClassOriginKind: LightClassOriginKind?
get() = null