anchor.diff:    }
   
     @override
  -  Future<LibraryElement> readDart(Uri uri) {
  -    // TODO: implement readDart
  -    throw UnimplementedError();
  +  Future<LibraryElement> readDart(Uri uri) async {
  +    await ensureHasDartAnalyzer();
  +    final result =
  +        await _dartContext!.currentSession.getLibraryByUri(uri.toString());
  +
  +    return (result as LibraryElementResult).element;
     }
   
     @override
  
positive.code: import 'package:drift_dev/src/analysis/driver/state.dart';
  import 'package:drift_dev/src/analyzer/options.dart';
  import 'package:logging/logging.dart';
  import 'package:test/expect.dart';
  import 'package:test/scaffolding.dart';
  
  class TestBackend extends DriftBackend {
    final Map<String, String> sourceContents;
  
    late final DriftAnalysisDriver driver;
  
    TestBackend(Map<String, String> sourceContents, DriftOptions options)
        : sourceContents = {
            for (final entry in sourceContents.entries)
              AssetId.parse(entry.key).uri.toString(): entry.value,
          } {
      driver = DriftAnalysisDriver(this, options);
    }
  
negative.code: import 'dart:io';
  import 'dart:isolate';
  
  import 'package:analyzer/dart/analysis/analysis_context.dart';
  import 'package:analyzer/dart/analysis/analysis_context_collection.dart';
  import 'package:analyzer/dart/analysis/results.dart';
  import 'package:analyzer/dart/ast/ast.dart';
  import 'package:analyzer/dart/element/element.dart';
  import 'package:analyzer/file_system/overlay_file_system.dart';
  import 'package:analyzer/file_system/physical_file_system.dart';
  import 'package:build/build.dart';
  import 'package:drift_dev/src/analysis/backend.dart';
  import 'package:drift_dev/src/analysis/driver/driver.dart';
  