You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm seeing some invocations of the nullness checker take significantly longer on versions of the checker framework after 3.34.0.
I minimized an example below. The invocation time more than doubles between 3.34.0 and 3.35.0. The performance for newer versions seems roughly consistent with 3.35.0.
$ time ./checker-framework-3.34.0/checker/bin/javac -processor nullness X.java
real 0m42.137s
user 1m9.228s
sys 0m2.893s
$ time ./checker-framework-3.35.0/checker/bin/javac -processor nullness X.java
real 1m56.321s
user 2m25.035s
sys 0m3.416s
publicclassX {
abstractstaticclassC1<
CextendsC1<C, Q, B, D, CR>,
QextendsC2<C, Q, B, D, CR>,
BextendsC3<C, Q, B, D, CR>,
DextendsC4<C, Q, B, D, CR>,
CRextendsC5<CR>>
extendsC6 {}
staticclassC6 {}
abstractstaticclassC2<
CextendsC1<C, Q, B, D, RT>,
QextendsC2<C, Q, B, D, RT>,
BextendsC3<C, Q, B, D, RT>,
DextendsC4<C, Q, B, D, RT>,
RTextendsC5<RT>>
implementsC7 {}
abstractstaticclassC3<
CextendsC1<C, Q, B, D, R>,
QextendsC2<C, Q, B, D, R>,
BextendsC3<C, Q, B, D, R>,
DextendsC4<C, Q, B, D, R>,
RextendsC5<R>> {}
abstractstaticclassC4<
CextendsC1<C, Q, B, D, R>,
QextendsC2<C, Q, B, D, R>,
BextendsC3<C, Q, B, D, R>,
DextendsC4<C, Q, B, D, R>,
RextendsC5<R>> {
interfaceI<T> {}
}
abstractstaticclassC5<R2extendsC5<R2>> implementsC7 {}
interfaceC7 {}
abstractstaticclassC8<
CextendsC1<C, Q, B, D, CR>,
QextendsC2<C, Q, B, D, CR>,
BextendsC3<C, Q, B, D, CR>,
DextendsC4<C, Q, B, D, CR>,
CRextendsC5<CR>,
RpTextendsC5<RpT>> {
publicstatic <
CextendsC1<C, Q, B, D, CR>,
QextendsC2<C, Q, B, D, CR>,
BextendsC3<C, Q, B, D, CR>,
DextendsC4<C, Q, B, D, CR>,
CRextendsC5<CR>,
RpTextendsC5<RpT>>
Builder<C, Q, B, D, CR, RpT> n(Qq) {
thrownewAssertionError();
}
abstractstaticclassBuilder<
CextendsC1<C, Q, B, D, CR>,
QextendsC2<C, Q, B, D, CR>,
BextendsC3<C, Q, B, D, CR>,
DextendsC4<C, Q, B, D, CR>,
CRextendsC5<CR>,
RpTextendsC5<RpT>> {
publicabstractBuilder<C, Q, B, D, CR, RpT> f(C9<?> x);
publicC8<C, Q, B, D, CR, RpT> b() {
thrownewAssertionError();
}
}
}
abstractstaticclassC9<WextendsC9<W>> {}
staticfinalclassC10extendsC9<C10> {}
abstractstaticclassC11<WextendsC9<W>, BextendsC11<W, B>> {}
staticfinalclassC12extendsC11<C10, C12> {
publicC10b() {
thrownewAssertionError();
}
}
staticclassC13 {
publicstaticfinalC12n() {
returnnewC12();
}
staticfinalclassC14extendsC1<C14, C15, C16, C17, C18> {}
staticfinalclassC15extendsC2<C14, C15, C16, C17, C18> {}
staticfinalclassC18extendsC5<C18> {}
staticclassC17extendsC4<C14, C15, C16, C17, C18> implementsC4.I<Long>, C19 {}
staticfinalclassC16extendsC3<C14, C15, C16, C17, C18> {
publicC15b() {
thrownewAssertionError();
}
}
staticfinalC16q() {
thrownewAssertionError();
}
}
interfaceC19 {}
voidf() {
varx = C8.n(C13.q().b()).f(C13.n().b()).b();
}
}
The text was updated successfully, but these errors were encountered:
I'm seeing some invocations of the nullness checker take significantly longer on versions of the checker framework after 3.34.0.
I minimized an example below. The invocation time more than doubles between 3.34.0 and 3.35.0. The performance for newer versions seems roughly consistent with 3.35.0.
The text was updated successfully, but these errors were encountered: