Having ``` interface EventsDelegatingWidget<D :...
# announcements
a
Having
Copy code
interface EventsDelegatingWidget<D : EventsDelegate> : Widget {
    var eventsDelegate: D?
}
Copy code
interface ArticleWidgetDelegate : EventsDelegate {
    fun something()
}
class ArticleWidget @Inject constructor() : EventsDelegatingWidget<ArticleWidgetDelegate>, ArticleWidgetContract {
    override var eventsDelegate: ArticleWidgetDelegate? = null

    ...
}
When ArticleWidget becomes a
data
in layout with databiding following exception is thrown:
Copy code
Error:cannot generate view binders com.sun.tools.javac.jvm.ClassReader$BadClassFile: bad class file: /Users/.../app/build/tmp/kapt/stageDebug/classFileStubs/.../common/view/EventsDelegatingWidget$DefaultImpls.class
    undeclared type variable: D
    Please remove or make sure it appears in the correct subdirectory of the classpath.
  	at com.sun.tools.javac.jvm.ClassReader.badClassFile(ClassReader.java:357)
  	at com.sun.tools.javac.jvm.ClassReader.findTypeVar(ClassReader.java:948)
  	at com.sun.tools.javac.jvm.ClassReader.sigToType(ClassReader.java:653)
  	at com.sun.tools.javac.jvm.ClassReader.sigToTypes(ClassReader.java:862)
  	at com.sun.tools.javac.jvm.ClassReader.classSigToType(ClassReader.java:778)
  	at com.sun.tools.javac.jvm.ClassReader.sigToType(ClassReader.java:691)
  	at com.sun.tools.javac.jvm.ClassReader.sigToTypes(ClassReader.java:862)
  	at com.sun.tools.javac.jvm.ClassReader.sigToType(ClassReader.java:716)
  	at com.sun.tools.javac.jvm.ClassReader.sigToType(ClassReader.java:639)
  	at com.sun.tools.javac.jvm.ClassReader.readType(ClassReader.java:562)
  	at com.sun.tools.javac.jvm.ClassReader$13.read(ClassReader.java:1158)
  	at com.sun.tools.javac.jvm.ClassReader.readAttrs(ClassReader.java:1381)
  	at com.sun.tools.javac.jvm.ClassReader.readMemberAttrs(ClassReader.java:1371)
  	at com.sun.tools.javac.jvm.ClassReader.readMethod(ClassReader.java:2044)
  	at com.sun.tools.javac.jvm.ClassReader.readClass(ClassReader.java:2252)
  	at com.sun.tools.javac.jvm.ClassReader.readClassFile(ClassReader.java:2324)
  	at com.sun.tools.javac.jvm.ClassReader.fillIn(ClassReader.java:2511)
  	at com.sun.tools.javac.jvm.ClassReader.complete(ClassReader.java:2442)
  	at com.sun.tools.javac.jvm.ClassReader.access$000(ClassReader.java:76)
  	at com.sun.tools.javac.jvm.ClassReader$1.complete(ClassReader.java:240)
  	at com.sun.tools.javac.code.Symbol.complete(Symbol.java:574)
  	at com.sun.tools.javac.code.Symbol$ClassSymbol.complete(Symbol.java:1037)
  	at com.sun.tools.javac.code.Symbol$ClassSymbol.flags(Symbol.java:973)
  	at com.sun.tools.javac.code.Symbol$ClassSymbol.getKind(Symbol.java:1101)
  	at com.sun.tools.javac.model.JavacElements.addMembers(JavacElements.java:389)
  	at com.sun.tools.javac.model.JavacElements.getAllMembers(JavacElements.java:369)
  	at com.sun.tools.javac.model.JavacElements.getAllMembers(JavacElements.java:61)
  	at android.databinding.tool.reflection.annotation.AnnotationClass.getDeclaredMethods(AnnotationClass.java:303)
  	at android.databinding.tool.reflection.ModelClass.getMethods(ModelClass.java:250)