resolveUnitAt method

Future<ResolvedUnitResult?> resolveUnitAt(
  1. Uri? uri
)

Implementation

Future<ResolvedUnitResult?> resolveUnitAt(Uri? uri) async {
  for (var ctx in contexts.contexts) {
    final path = getPath(uri);
    if (_resolvedAsts.containsKey(path)) {
      return _resolvedAsts[path];
    }

    final output =
        await ctx.currentSession.getResolvedUnit2(path) as ResolvedUnitResult;
    if (output.state == ResultState.VALID) {
      _resolvedAsts[path] = output;
      return output;
    }
  }

  throw ArgumentError("'uri' could not be resolved (contexts: "
      "${contexts.contexts.map((c) => c.contextRoot.root.toUri()).join(", ")})");
}