R8 Optimization: Null Data Flow Analysis (Part 2)
[]
Jake Wharton
The string constant load and Intrinsics method call which started the method body in the D8 output above has been replaced with a standard null check via the if-eqz bytecode. The first half of this part showed R8 raise inlining thresholds to ignore null checks and replace Kotlin's Intrinsic method with standard null check bytecodes. Java doesn't put defensive null checks on public method arguments and so data flow analysis can use other patterns for nullability signals even without inlining.