anchor.diff:              _unimplemented(typeName,
                   'No decorated type for type argument ${typeArguments[i]} ($i)');
             }
  -          _checkAssignment(bound, argumentType, null, hard: true);
  +          _checkAssignment(null,
  +              source: argumentType, destination: bound, hard: true);
           }
         }
       }
  
positive.code:       targetType = target.accept(this);
      } else {
        _checkNonObjectMember(propertyName.name); // TODO(paulberry)
        targetType = _handleAssignment(_notNullType, target);
      }
      var callee = propertyName.staticElement;
      if (callee == null) {
  
negative.code:       return _nonNullableBoolType;
      } else if (operatorType == TokenType.AMPERSAND_AMPERSAND ||
          operatorType == TokenType.BAR_BAR) {
        _handleAssignment(node.leftOperand, _notNullType);
        _handleAssignment(node.rightOperand, _notNullType);
        return _nonNullableBoolType;
      } else if (operatorType == TokenType.QUESTION_QUESTION) {
        DecoratedType expressionType;
  