anchor.diff:      visitMemberMetadata(node.metadata);
       modifier(node.keyword);
       
  -    if (isGenericType && KEEP_GENERIC_TYPES) {
  -      visitNode(node.type, followedBy: space);
  -    } else if (node.type != null && node.keyword == null) {
  +    if (!(isGenericType && KEEP_GENERIC_TYPES)) printTokens = false;
  +
  +    visitNode(node.type, followedBy: space);
  +    printTokens = true;
  +      
  +    
  +    if (!(isGenericType && KEEP_GENERIC_TYPES) && node.type != null && node.keyword == null) {
         Identifier ident = new SimpleIdentifier(new KeywordToken(Keyword.VAR, node.type.offset));
         visitNode(ident, followedBy: space);
       }
  
positive.code:   if (OUTPUT_DIR != null) dir = new Directory(OUTPUT_DIR);
    
    for (String arg in files) {
      StripCodeFormatterImpl cf = new StripCodeFormatterImpl(const FormatterOptions());
      CodeFormatter finisher = new CodeFormatter();
      File file = new File(arg);
      var src = file.readAsStringSync();
      FormattedSource fs = cf.format(CodeKind.COMPILATION_UNIT, src);
      fs = finisher.format(CodeKind.COMPILATION_UNIT, fs.source);
      if (dir != null){
        new File(dir.absolute.path + Platform.pathSeparator + basename(file.path)).writeAsStringSync(fs.source);  
      } else {
        print(fs.source);
      }
    }
  }
  
  class StripCodeFormatterImpl extends CodeFormatterImpl {
    
    StripCodeFormatterImpl(options):super(options);
    
    @override
    FormattedSource format(CodeKind kind, String source, {int offset, int end,
        int indentationLevel: 0, Selection selection: null}) {
  
  
negative.code: #!/usr/bin/env dart
  
  import 'dart:io';
  import 'dart:math';
  import 'package:analyzer/src/services/formatter_impl.dart';
  import 'package:analyzer/src/generated/ast.dart';
  import 'package:analyzer/src/generated/scanner.dart';
  