Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(17)

Unified Diff: pkg/compiler/lib/src/stats/trusted_types_analysis_result.dart

Issue 1385443003: dart2js: rename folder (stats -> info) (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/compiler/lib/src/stats/naive_analysis_result.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/compiler/lib/src/stats/trusted_types_analysis_result.dart
diff --git a/pkg/compiler/lib/src/stats/trusted_types_analysis_result.dart b/pkg/compiler/lib/src/stats/trusted_types_analysis_result.dart
deleted file mode 100644
index 8de59ae9f5daa801b591150f5fdaba058e19920b..0000000000000000000000000000000000000000
--- a/pkg/compiler/lib/src/stats/trusted_types_analysis_result.dart
+++ /dev/null
@@ -1,104 +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.
-
-/// API to get results from a static analysis of the source program.
-// TODO(sigmund): split out implementations out of this file.
-library compiler.src.stats.trusted_types_analysis_result;
-
-import 'analysis_result.dart';
-import '../tree/tree.dart' show Node;
-import '../universe/selector.dart' show Selector;
-import '../resolution/tree_elements.dart' show TreeElements;
-import '../world.dart' show ClassWorld;
-import '../dart_types.dart' show InterfaceType;
-
-/// An [AnalysisResult] produced by using type-propagation based on
-/// trusted type annotations.
-class TrustTypesAnalysisResult implements AnalysisResult {
- final ClassWorld world;
- final TreeElements elements;
-
- TrustTypesAnalysisResult(this.elements, this.world);
-
- ReceiverInfo infoForReceiver(Node receiver) =>
- new TrustTypesReceiverInfo(receiver, elements.typesCache[receiver], world);
- SelectorInfo infoForSelector(Node receiver, Selector selector) =>
- new TrustTypesSelectorInfo(
- receiver, elements.typesCache[receiver], selector, world);
-}
-
-class _SelectorLookupResult {
- final Boolish exists;
- // TODO(sigmund): implement
- final Boolish usesInterceptor = Boolish.no;
- final int possibleTargets;
-
- _SelectorLookupResult(this.exists, this.possibleTargets);
-
- const _SelectorLookupResult.dontKnow()
- : exists = Boolish.maybe, possibleTargets = -1;
-}
-
-_SelectorLookupResult _lookupSelector(
- String selectorName, InterfaceType type, ClassWorld world) {
- if (type == null) return const _SelectorLookupResult.dontKnow();
- bool isNsm = selectorName == 'noSuchMethod';
- bool notFound = false;
- var uniqueTargets = new Set();
- for (var cls in world.subtypesOf(type.element)) {
- var member = cls.lookupMember(selectorName);
- if (member != null && !member.isAbstract
- // Don't match nsm in Object
- && (!isNsm || !member.enclosingClass.isObject)) {
- uniqueTargets.add(member);
- } else {
- notFound = true;
- }
- }
- Boolish exists = uniqueTargets.length > 0
- ? (notFound ? Boolish.maybe : Boolish.yes)
- : Boolish.no;
- return new _SelectorLookupResult(exists, uniqueTargets.length);
-}
-
-class TrustTypesReceiverInfo implements ReceiverInfo {
- final Node receiver;
- final Boolish hasNoSuchMethod;
- final int possibleNsmTargets;
- final Boolish isNull = Boolish.maybe;
-
- factory TrustTypesReceiverInfo(
- Node receiver, InterfaceType type, ClassWorld world) {
- // TODO(sigmund): refactor, maybe just store nsm as a SelectorInfo
- var res = _lookupSelector('noSuchMethod', type, world);
- return new TrustTypesReceiverInfo._(receiver,
- res.exists, res.possibleTargets);
- }
-
- TrustTypesReceiverInfo._(this.receiver, this.hasNoSuchMethod,
- this.possibleNsmTargets);
-}
-
-class TrustTypesSelectorInfo implements SelectorInfo {
- final Node receiver;
- final Selector selector;
-
- final Boolish exists;
- final Boolish usesInterceptor;
- final int possibleTargets;
- final bool isAccurate;
-
- factory TrustTypesSelectorInfo(Node receiver, InterfaceType type,
- Selector selector, ClassWorld world) {
- var res = _lookupSelector(
- selector != null ? selector.name : null, type, world);
- return new TrustTypesSelectorInfo._(receiver, selector, res.exists,
- res.usesInterceptor, res.possibleTargets,
- res.exists != Boolish.maybe);
- }
- TrustTypesSelectorInfo._(
- this.receiver, this.selector, this.exists, this.usesInterceptor,
- this.possibleTargets, this.isAccurate);
-}
-
« no previous file with comments | « pkg/compiler/lib/src/stats/naive_analysis_result.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698