Also, callingtoStringon aFutureis probably always a mistake. It might make sense in a debug-print, but you shouldn't have those in your production code. (If for no other reason than that it may retain moretoStringimplementations than necessary after tree-shaking.) We could perhaps warn if ...
A more aggressive diagnostic might say that a getter call, a setter call, or an operator call do not constitute "use." And neither do these 900 methods on core Dart classes. But I am 100% in favor of the unused-after-assignment diagnostic proposed, including with the compound assignment....
(177)) The full description of the crossover operator process was presented in [49] and presented in a grapThhiecafluwll addyeesincriFpigtiuornesof5t–h7e(cfororsPsoarvteIr).oTphereavtoarlupersocweistshwthaes mpraetsreinxtRedEMin [a4r9e]aadnddepdrteosetnhteedmiantraaix gDraIpVh.iAcasl...