| Index: lib/src/sdk.dart
|
| diff --git a/lib/src/sdk.dart b/lib/src/sdk.dart
|
| deleted file mode 100644
|
| index 2904637b292376c2aa8f61dfe7fcbb53aecd3a40..0000000000000000000000000000000000000000
|
| --- a/lib/src/sdk.dart
|
| +++ /dev/null
|
| @@ -1,386 +0,0 @@
|
| -// Copyright (c) 2015, 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.
|
| -
|
| -library linter.src.sdk;
|
| -
|
| -import 'package:analyzer/file_system/file_system.dart' as resource;
|
| -import 'package:analyzer/file_system/memory_file_system.dart' as resource;
|
| -import 'package:analyzer/src/context/cache.dart'
|
| - show AnalysisCache, CachePartition;
|
| -import 'package:analyzer/src/context/context.dart' show AnalysisContextImpl;
|
| -import 'package:analyzer/src/generated/engine.dart'
|
| - show AnalysisEngine, ChangeSet;
|
| -import 'package:analyzer/src/generated/sdk.dart' show DartSdk, SdkLibrary;
|
| -import 'package:analyzer/src/generated/source.dart'
|
| - show DartUriResolver, Source, SourceFactory;
|
| -import 'package:analyzer/src/summary/idl.dart';
|
| -
|
| -/// Mock SDK for testing purposes.
|
| -class MockSdk implements DartSdk {
|
| - static const _MockSdkLibrary LIB_CORE = const _MockSdkLibrary(
|
| - 'dart:core',
|
| - '/lib/core/core.dart',
|
| - '''
|
| -library dart.core;
|
| -
|
| -import 'dart:async';
|
| -
|
| -class Object {
|
| - bool operator ==(other) => identical(this, other);
|
| - String toString() => 'a string';
|
| - int get hashCode => 0;
|
| -}
|
| -
|
| -class Function {}
|
| -class StackTrace {}
|
| -class Symbol {}
|
| -class Type {}
|
| -
|
| -abstract class Comparable<T> {
|
| - int compareTo(T other);
|
| -}
|
| -
|
| -abstract class String implements Comparable<String> {
|
| - external factory String.fromCharCodes(Iterable<int> charCodes,
|
| - [int start = 0, int end]);
|
| - bool get isEmpty => false;
|
| - bool get isNotEmpty => false;
|
| - int get length => 0;
|
| - String toUpperCase();
|
| - List<int> get codeUnits;
|
| -}
|
| -
|
| -class bool extends Object {}
|
| -abstract class num implements Comparable<num> {
|
| - bool operator <(num other);
|
| - bool operator <=(num other);
|
| - bool operator >(num other);
|
| - bool operator >=(num other);
|
| - num operator +(num other);
|
| - num operator -(num other);
|
| - num operator *(num other);
|
| - num operator /(num other);
|
| - int toInt();
|
| - num abs();
|
| - int round();
|
| -}
|
| -abstract class int extends num {
|
| - bool get isEven => false;
|
| - int operator -();
|
| - external static int parse(String source,
|
| - { int radix,
|
| - int onError(String source) });
|
| -}
|
| -class double extends num {}
|
| -class DateTime extends Object {}
|
| -class Null extends Object {}
|
| -
|
| -class Deprecated extends Object {
|
| - final String expires;
|
| - const Deprecated(this.expires);
|
| -}
|
| -const Object deprecated = const Deprecated("next release");
|
| -
|
| -class Iterator<E> {
|
| - bool moveNext();
|
| - E get current;
|
| -}
|
| -
|
| -abstract class Iterable<E> {
|
| - Iterator<E> get iterator;
|
| - bool get isEmpty;
|
| - bool get isNotEmpty;
|
| -}
|
| -
|
| -abstract class List<E> implements Iterable<E> {
|
| - void add(E value);
|
| - E operator [](int index);
|
| - void operator []=(int index, E value);
|
| - Iterator<E> get iterator => null;
|
| - void clear();
|
| - bool get isEmpty;
|
| - bool get isNotEmpty;
|
| -}
|
| -
|
| -abstract class Map<K, V> extends Object {
|
| - Iterable<K> get keys;
|
| - bool get isEmpty;
|
| - bool get isNotEmpty;
|
| -}
|
| -
|
| -external bool identical(Object a, Object b);
|
| -
|
| -void print(Object object) {}
|
| -
|
| -class _Override {
|
| - const _Override();
|
| -}
|
| -const Object override = const _Override();
|
| -
|
| -
|
| -abstract class RegExp {
|
| - external factory RegExp(String source, {bool multiLine: false,
|
| - bool caseSensitive: true});
|
| -''');
|
| -
|
| - static const _MockSdkLibrary LIB_ASYNC = const _MockSdkLibrary(
|
| - 'dart:async',
|
| - '/lib/async/async.dart',
|
| - '''
|
| -library dart.async;
|
| -
|
| -import 'dart:math';
|
| -
|
| -part 'stream.dart';
|
| -
|
| -class Future<T> {
|
| - factory Future.delayed(Duration duration, [T computation()]) => null;
|
| - factory Future.value([value]) => null;
|
| - static Future wait(List<Future> futures) => null;
|
| -}
|
| -''',
|
| - const <_MockSdkFile>[
|
| - const _MockSdkFile(
|
| - '/lib/async/stream.dart',
|
| - r'''
|
| -part of dart.async;
|
| -class Stream<T> {}
|
| -abstract class StreamTransformer<S, T> {}
|
| -''')
|
| - ]);
|
| -
|
| - static const _MockSdkLibrary LIB_COLLECTION = const _MockSdkLibrary(
|
| - 'dart:collection',
|
| - '/lib/collection/collection.dart',
|
| - '''
|
| -library dart.collection;
|
| -
|
| -abstract class HashMap<K, V> implements Map<K, V> {}
|
| -''');
|
| -
|
| - static const _MockSdkLibrary LIB_CONVERT = const _MockSdkLibrary(
|
| - 'dart:convert',
|
| - '/lib/convert/convert.dart',
|
| - '''
|
| -library dart.convert;
|
| -
|
| -import 'dart:async';
|
| -
|
| -abstract class Converter<S, T> implements StreamTransformer {}
|
| -class JsonDecoder extends Converter<String, Object> {}
|
| -''');
|
| -
|
| - static const _MockSdkLibrary LIB_MATH = const _MockSdkLibrary(
|
| - 'dart:math',
|
| - '/lib/math/math.dart',
|
| - '''
|
| -library dart.math;
|
| -const double E = 2.718281828459045;
|
| -const double PI = 3.1415926535897932;
|
| -const double LN10 = 2.302585092994046;
|
| -num min(num a, num b) => 0;
|
| -num max(num a, num b) => 0;
|
| -external double cos(num x);
|
| -external double sin(num x);
|
| -external double sqrt(num x);
|
| -class Random {
|
| - bool nextBool() => true;
|
| - double nextDouble() => 2.0;
|
| - int nextInt() => 1;
|
| -}
|
| -''');
|
| -
|
| - static const _MockSdkLibrary LIB_HTML = const _MockSdkLibrary(
|
| - 'dart:html',
|
| - '/lib/html/dartium/html_dartium.dart',
|
| - '''
|
| -library dart.html;
|
| -class HtmlElement {}
|
| -''');
|
| -
|
| - static const List<SdkLibrary> LIBRARIES = const [
|
| - LIB_CORE,
|
| - LIB_ASYNC,
|
| - LIB_COLLECTION,
|
| - LIB_CONVERT,
|
| - LIB_MATH,
|
| - LIB_HTML,
|
| - ];
|
| -
|
| - final resource.MemoryResourceProvider provider =
|
| - new resource.MemoryResourceProvider();
|
| -
|
| - /// The [AnalysisContextImpl] which is used for all of the sources.
|
| - AnalysisContextImpl _analysisContext;
|
| -
|
| - MockSdk() {
|
| - LIBRARIES.forEach((SdkLibrary library) {
|
| - if (library is _MockSdkLibrary) {
|
| - provider.newFile(library.path, library.content);
|
| - library.parts.forEach((file) {
|
| - provider.newFile(file.path, file.content);
|
| - });
|
| - }
|
| - });
|
| - }
|
| -
|
| - @override
|
| - AnalysisContextImpl get context {
|
| - if (_analysisContext == null) {
|
| - _analysisContext = new _SdkAnalysisContext(this);
|
| - SourceFactory factory = new SourceFactory([new DartUriResolver(this)]);
|
| - _analysisContext.sourceFactory = factory;
|
| - ChangeSet changeSet = new ChangeSet();
|
| - for (String uri in uris) {
|
| - Source source = factory.forUri(uri);
|
| - changeSet.addedSource(source);
|
| - }
|
| - _analysisContext.applyChanges(changeSet);
|
| - }
|
| - return _analysisContext;
|
| - }
|
| -
|
| - @override
|
| - List<SdkLibrary> get sdkLibraries => LIBRARIES;
|
| -
|
| - @override
|
| - String get sdkVersion => throw unimplemented;
|
| -
|
| - UnimplementedError get unimplemented => new UnimplementedError();
|
| -
|
| - @override
|
| - List<String> get uris {
|
| - List<String> uris = <String>[];
|
| - for (SdkLibrary library in LIBRARIES) {
|
| - uris.add(library.shortName);
|
| - }
|
| - return uris;
|
| - }
|
| -
|
| - @override
|
| - Source fromFileUri(Uri uri) {
|
| - String filePath = uri.path;
|
| - String libPath = '/lib';
|
| - if (!filePath.startsWith("$libPath/")) {
|
| - return null;
|
| - }
|
| - for (SdkLibrary library in LIBRARIES) {
|
| - String libraryPath = library.path;
|
| - if (filePath.replaceAll('\\', '/') == libraryPath) {
|
| - try {
|
| - resource.File file = provider.getResource(uri.path);
|
| - Uri dartUri = Uri.parse(library.shortName);
|
| - return file.createSource(dartUri);
|
| - } catch (exception) {
|
| - return null;
|
| - }
|
| - }
|
| - if (filePath.startsWith("$libraryPath/")) {
|
| - String pathInLibrary = filePath.substring(libraryPath.length + 1);
|
| - String path = '${library.shortName}/$pathInLibrary';
|
| - try {
|
| - resource.File file = provider.getResource(uri.path);
|
| - Uri dartUri = new Uri(scheme: 'dart', path: path);
|
| - return file.createSource(dartUri);
|
| - } catch (exception) {
|
| - return null;
|
| - }
|
| - }
|
| - }
|
| - return null;
|
| - }
|
| -
|
| - @override
|
| - PackageBundle getLinkedBundle() => null;
|
| -
|
| - @override
|
| - SdkLibrary getSdkLibrary(String dartUri) {
|
| - // getSdkLibrary() is only used to determine whether a library is internal
|
| - // to the SDK. The mock SDK doesn't have any internals, so it's safe to
|
| - // return null.
|
| - return null;
|
| - }
|
| -
|
| - @override
|
| - Source mapDartUri(String dartUri) {
|
| - const Map<String, String> uriToPath = const {
|
| - "dart:core": "/lib/core/core.dart",
|
| - "dart:html": "/lib/html/dartium/html_dartium.dart",
|
| - "dart:async": "/lib/async/async.dart",
|
| - "dart:async/stream.dart": "/lib/async/stream.dart",
|
| - "dart:collection": "/lib/collection/collection.dart",
|
| - "dart:convert": "/lib/convert/convert.dart",
|
| - "dart:math": "/lib/math/math.dart"
|
| - };
|
| -
|
| - String path = uriToPath[dartUri];
|
| - if (path != null) {
|
| - resource.File file = provider.getResource(path);
|
| - Uri uri = new Uri(scheme: 'dart', path: dartUri.substring(5));
|
| - return file.createSource(uri);
|
| - }
|
| -
|
| - // If we reach here then we tried to use a dartUri that's not in the
|
| - // table above.
|
| - return null;
|
| - }
|
| -}
|
| -
|
| -class _MockSdkFile {
|
| - final String path;
|
| - final String content;
|
| -
|
| - const _MockSdkFile(this.path, this.content);
|
| -}
|
| -
|
| -class _MockSdkLibrary implements SdkLibrary {
|
| - @override
|
| - final String shortName;
|
| - @override
|
| - final String path;
|
| - final String content;
|
| - final List<_MockSdkFile> parts;
|
| -
|
| - const _MockSdkLibrary(this.shortName, this.path, this.content,
|
| - [this.parts = const <_MockSdkFile>[]]);
|
| -
|
| - @override
|
| - String get category => throw unimplemented;
|
| -
|
| - @override
|
| - bool get isDart2JsLibrary => throw unimplemented;
|
| -
|
| - @override
|
| - bool get isDocumented => throw unimplemented;
|
| -
|
| - @override
|
| - bool get isImplementation => throw unimplemented;
|
| -
|
| - @override
|
| - bool get isInternal => throw unimplemented;
|
| -
|
| - @override
|
| - bool get isShared => throw unimplemented;
|
| -
|
| - @override
|
| - bool get isVmLibrary => throw unimplemented;
|
| -
|
| - UnimplementedError get unimplemented => new UnimplementedError();
|
| -}
|
| -
|
| -/// An [AnalysisContextImpl] that only contains sources for a Dart SDK.
|
| -class _SdkAnalysisContext extends AnalysisContextImpl {
|
| - final DartSdk sdk;
|
| -
|
| - _SdkAnalysisContext(this.sdk);
|
| -
|
| - @override
|
| - AnalysisCache createCacheFromSourceFactory(SourceFactory factory) {
|
| - if (factory == null) {
|
| - return super.createCacheFromSourceFactory(factory);
|
| - }
|
| - return new AnalysisCache(
|
| - <CachePartition>[AnalysisEngine.instance.partitionManager.forSdk(sdk)]);
|
| - }
|
| -}
|
|
|