In case of using self-referenced condition like this:
@ConditionExpression("!@BeforePie", imports = [BeforePie::class])
annotation class BeforePie
We've got build failure without any problem explanation:
* What went wrong:
Execution failed for task ':app:kaptDebugKotlin'.
> A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptWithoutKotlincTask$KaptExecutionWorkAction
With --stacktrace option:
Caused by: java.lang.StackOverflowError
at jdk.compiler/com.sun.tools.javac.code.Attribute$Class.accept(Attribute.java:139)
at com.yandex.yatagan.lang.jap.JavaxAnnotationImpl$ValueImpl.accept(JavaxAnnotationImpl.kt:73)
at com.yandex.yatagan.lang.compiled.CtAnnotationBase$Companion$AsTypes.visitArray(CtAnnotationBase.kt:81)
at com.yandex.yatagan.lang.compiled.CtAnnotationBase$Companion$AsTypes.visitArray(CtAnnotationBase.kt:79)
at com.yandex.yatagan.lang.jap.JavaxAnnotationImpl$ValueImpl$accept$1.visitArray(JavaxAnnotationImpl.kt:100)
at com.yandex.yatagan.lang.jap.JavaxAnnotationImpl$ValueImpl$accept$1.visitArray(JavaxAnnotationImpl.kt:73)
at jdk.compiler/com.sun.tools.javac.code.Attribute$Array.accept(Attribute.java:347)
at com.yandex.yatagan.lang.jap.JavaxAnnotationImpl$ValueImpl.accept(JavaxAnnotationImpl.kt:73)
at com.yandex.yatagan.lang.compiled.CtAnnotationBase.getTypes(CtAnnotationBase.kt:38)
at com.yandex.yatagan.lang.compiled.CtConditionExpressionAnnotationImpl.getImports(builtinAnnotationImpls.kt:66)
at com.yandex.yatagan.core.model.impl.ConditionExpressionHolder.<init>(ConditionExpressionHolder.kt:43)
at com.yandex.yatagan.core.model.impl.FeatureModelImpl$conditionExpressionHolder$2.invoke(FeatureModelImpl.kt:78)
at com.yandex.yatagan.core.model.impl.FeatureModelImpl$conditionExpressionHolder$2.invoke(FeatureModelImpl.kt:77)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:86)
at com.yandex.yatagan.core.model.impl.FeatureModelImpl.getConditionExpressionHolder(FeatureModelImpl.kt:77)
at com.yandex.yatagan.core.model.impl.FeatureModelImpl.getConditionScope(FeatureModelImpl.kt:39)
at com.yandex.yatagan.core.model.impl.parsing.ExpressionFactoryForParsing.parseVariable(ExpressionFactoryForParsing.kt:43)
at com.yandex.yatagan.core.model.impl.parsing.BooleanExpressionParser.buildExpressionTree(BooleanExpressionParser.kt:234)
at com.yandex.yatagan.core.model.impl.parsing.BooleanExpressionParser.parse(BooleanExpressionParser.kt:59)
at com.yandex.yatagan.core.model.impl.ConditionExpressionHolder.<init>(ConditionExpressionHolder.kt:55)
at com.yandex.yatagan.core.model.impl.FeatureModelImpl$conditionExpressionHolder$2.invoke(FeatureModelImpl.kt:78)
at com.yandex.yatagan.core.model.impl.FeatureModelImpl$conditionExpressionHolder$2.invoke(FeatureModelImpl.kt:77)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:86)
...
Build failure itself is correct behavior, but it's hard to understand that the problem is with condition.
In case of using self-referenced condition like this:
We've got build failure without any problem explanation:
With
--stacktraceoption:Build failure itself is correct behavior, but it's hard to understand that the problem is with condition.