anchor.diff:    });
   }
   
  -class TestResourceProvider implements file_system.ResourceProvider {
  +class TestResourceProvider extends PhysicalResourceProvider {
     MemoryResourceProvider memoryResourceProvider;
   
  -  TestResourceProvider(this.memoryResourceProvider);
  -
  -  PhysicalResourceProvider get physicalResourceProvider =>
  -      PhysicalResourceProvider.INSTANCE;
  -
  -  @override
  -  AbsolutePathContext get absolutePathContext =>
  -      physicalResourceProvider.absolutePathContext;
  +  TestResourceProvider(this.memoryResourceProvider) : super(null);
   
     @override
     file_system.File getFile(String path) {
       file_system.File file = memoryResourceProvider.getFile(path);
  -    return file.exists ? file : physicalResourceProvider.getFile(path);
  +    return file.exists ? file : super.getFile(path);
     }
   
     @override
     file_system.Folder getFolder(String path) {
       file_system.Folder folder = memoryResourceProvider.getFolder(path);
  -    return folder.exists ? folder : physicalResourceProvider.getFolder(path);
  -  }
  -
  -  @override
  -  Future<List<int>> getModificationTimes(List<Source> sources) {
  -    //If this gets tripped, we know to implement it! :)
  -    throw new StateError('Unexpected call to getModificationTimes');
  +    return folder.exists ? folder : super.getFolder(path);
     }
   
     @override
     file_system.Resource getResource(String path) {
       file_system.Resource resource = memoryResourceProvider.getResource(path);
  -    return resource.exists
  -        ? resource
  -        : physicalResourceProvider.getResource(path);
  -  }
  -
  -  @override
  -  file_system.Folder getStateLocation(String pluginId) {
  -    file_system.Folder folder =
  -        memoryResourceProvider.getStateLocation(pluginId);
  -    return folder.exists
  -        ? folder
  -        : physicalResourceProvider.getStateLocation(pluginId);
  -  }
  -
  -  @override
  -  p.Context get pathContext => physicalResourceProvider.pathContext;
  +    return resource.exists ? resource : super.getResource(path);
  +  }
   }
   
   class Annotation implements Comparable<Annotation> {
  
positive.code: import 'package:analyzer/src/lint/io.dart';
  import 'package:analyzer/src/lint/linter.dart';
  import 'package:analyzer/src/lint/registry.dart';
  import 'package:analyzer/src/util/absolute_path.dart';
  import 'package:linter/src/analyzer.dart';
  import 'package:linter/src/ast.dart';
  import 'package:linter/src/formatter.dart';
  
negative.code: // for details. All rights reserved. Use of this source code is governed by a
  // BSD-style license that can be found in the LICENSE file.
  
  import 'dart:io';
  
  import 'package:analyzer/error/error.dart';
  