anchor.diff:  import '../../../../generator.dart';
   
  -mixin VectorProjection on WinRTMethodProjection {
  -  String get vectorType {
  +mixin _VectorProjection on WinRTMethodProjection {
  +  /// The type argument of `IVector` and `IVectorView`, as represented in the
  +  /// [returnType]'s [TypeIdentifier] (e.g. `int`, `String`, `StorageFile`).
  +  String get vectorTypeArg {
       final typeProjection = TypeProjection(returnType.typeIdentifier.typeArg!);
       if (typeProjection.isString) return 'String';
       if (typeProjection.isWinRT &&
  
positive.code:     return typeProjection.dartType;
    }
  
    String get vectorArgs {
      final typeProjection = TypeProjection(returnType.typeIdentifier.typeArg!);
      final creator = typeProjection.isWinRT &&
              (typeProjection.isClass || typeProjection.isInterface)
          ? '${lastComponent(typeProjection.typeIdentifier.name)}.fromRawPointer'
          : null;
      final enumCreator = typeProjection.isWinRTEnum
          ? '${lastComponent(typeProjection.typeIdentifier.name)}.from'
          : null;
      final intType = typeProjection.isWinRTEnum || vectorType == 'int'
          ? typeProjection.nativeType
          : null;
  
  
negative.code: }
  
  class WinRTMethodReturningVectorProjection extends WinRTMethodProjection
      with _VectorProjection {
    WinRTMethodReturningVectorProjection(super.method, super.vtableOffset);
  
    @override
    String toString() => '''
        IVector<$vectorTypeArg> $camelCasedName($methodParams) {
          final retValuePtr = calloc<COMObject>();
          $parametersPreamble
          ${ffiCall()}
          $parametersPostamble
          return IVector.fromRawPointer(retValuePtr$vectorConstructorArgs);
        }
    ''';
  }
  
  class WinRTGetPropertyReturningVectorProjection
      extends WinRTGetPropertyProjection with _VectorProjection {
    WinRTGetPropertyReturningVectorProjection(super.method, super.vtableOffset);
  
    @override
    String toString() => '''
        IVector<$vectorTypeArg> get $exposedMethodName {
          final retValuePtr = calloc<COMObject>();
  
          ${ffiCall()}
  
          return IVector.fromRawPointer(retValuePtr$vectorConstructorArgs);
        }
    ''';
  }
  
  class WinRTMethodReturningVectorViewProjection extends WinRTMethodProjection
      with _VectorProjection {
    WinRTMethodReturningVectorViewProjection(super.method, super.vtableOffset);
  
    @override
    String toString() => '''
        List<$vectorTypeArg> $camelCasedName($methodParams) {
          final retValuePtr = calloc<COMObject>();
          $parametersPreamble
          ${ffiCall()}
  
          try {
            return IVectorView<$vectorTypeArg>.fromRawPointer(retValuePtr$vectorConstructorArgs).toList();
          } finally {
            $parametersPostamble
            free(retValuePtr);
  