blob: b6a954a59d8b0ee07bc8fe58ba3a0963ba4b74ca [file] [log] [blame]
// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
// 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 'dart:async';
import '../../../../sdk/lib/_internal/compiler/implementation/mirrors/source_mirrors.dart';
import '../../../../sdk/lib/_internal/compiler/implementation/mirrors/analyze.dart' as source_mirrors;
import '../../../../sdk/lib/_internal/compiler/implementation/source_file_provider.dart';
TypeMirror createInstantiation(TypeSourceMirror type,
List<TypeMirror> typeArguments) {
return type.createInstantiation(typeArguments);
}
Future<MirrorSystem> analyze(String test) {
Uri repository = Platform.script.resolve('../../../../');
Uri testUri = repository.resolve('tests/lib/mirrors/$test');
return analyzeUri(testUri);
}
Future<MirrorSystem> analyzeUri(Uri testUri) {
Uri repository = Platform.script.resolve('../../../../');
Uri libraryRoot = repository.resolve('sdk/');
Uri packageRoot = Uri.base.resolve('${Platform.packageRoot}/');
var provider = new CompilerSourceFileProvider();
var handler = new FormattingDiagnosticHandler(provider);
return source_mirrors.analyze(
[testUri],
libraryRoot,
packageRoot,
provider,
handler);
}