anchor.diff:      }
     }
   }
  +
  +mixin _ContextRoot on ResourceProviderMixin {
  +  ContextRootImpl _newContextRoot(String root) {
  +    root = convertPath(root);
  +    return ContextRootImpl(
  +      resourceProvider,
  +      resourceProvider.getFolder(root),
  +      BasicWorkspace.find(resourceProvider, {}, root),
  +    );
  +  }
  +}
  
positive.code:   }
  
    void test_addContextRoot() {
      var optionsFilePath = '/pkg1/analysis_options.yaml';
      var contextRoot1 = _newContextRoot('/pkg1');
      contextRoot1.optionsFile =
          contextRoot1.resourceProvider.getFile(optionsFilePath);
      var session = PluginSession(plugin);
      var channel = TestServerCommunicationChannel(session);
      plugin.currentSession = session;
  
negative.code: }
  
  @reflectiveTest
  class DiscoveredPluginInfoTest with ResourceProviderMixin, _ContextRoot {
    TestNotificationManager notificationManager;
    String pluginPath = '/pluginDir';
    String executionPath = '/pluginDir/bin/plugin.dart';
  