anchor.diff:  
     @override
     void visitForPartsWithDeclarations(ForPartsWithDeclarations node) {
  -    if (node.condition != null) {
  -      checkBoolean(node.condition!);
  +    var condition = node.condition;
  +    if (condition != null) {
  +      checkBoolean(condition);
       }
       node.visitChildren(this);
     }
   
     @override
     void visitForPartsWithExpression(ForPartsWithExpression node) {
  -    if (node.condition != null) {
  -      checkBoolean(node.condition!);
  +    var condition = node.condition;
  +    if (condition != null) {
  +      checkBoolean(condition);
       }
       node.visitChildren(this);
     }
  
positive.code:   @override
    void visitListLiteral(ListLiteral node) {
      DartType type = DynamicTypeImpl.instance;
      if (node.typeArguments != null) {
        NodeList<TypeAnnotation> targs = node.typeArguments!.arguments;
        if (targs.isNotEmpty) {
          type = targs[0].type!;
        }
      } else {
        DartType staticType = node.typeOrThrow;
  
negative.code: 
    @override
    void visitSetOrMapLiteral(SetOrMapLiteral node) {
      var typeArgumentsList = node.typeArguments;
      if (node.isMap) {
        DartType keyType = DynamicTypeImpl.instance;
        DartType valueType = DynamicTypeImpl.instance;
        if (typeArgumentsList != null) {
          NodeList<TypeAnnotation> typeArguments = typeArgumentsList.arguments;
          if (typeArguments.isNotEmpty) {
            keyType = typeArguments[0].type!;
          }
  