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

Unified Diff: pkg/compiler/lib/src/info/send_info.dart

Issue 1383483006: Extract DiagnosticReporter implementation from Compiler. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Fixes after rebase. 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/inferrer/type_graph_inferrer.dart ('k') | pkg/compiler/lib/src/js/js.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/compiler/lib/src/info/send_info.dart
diff --git a/pkg/compiler/lib/src/info/send_info.dart b/pkg/compiler/lib/src/info/send_info.dart
index 0beba58416d30bebb4079550204210515bc21c93..02991421ca3aa8dc7bc75abb44b590753ee7c295 100644
--- a/pkg/compiler/lib/src/info/send_info.dart
+++ b/pkg/compiler/lib/src/info/send_info.dart
@@ -9,6 +9,7 @@ import 'dart:convert';
import 'package:dart2js_info/src/measurements.dart';
import 'package:dart2js_info/src/util.dart' show recursiveDiagnosticString;
+import '../diagnostics/diagnostic_listener.dart' show DiagnosticReporter;
import '../diagnostics/messages.dart' show MessageKind;
import '../compiler.dart' show Compiler;
import '../common/tasks.dart' show CompilerTask;
@@ -32,8 +33,10 @@ import 'trusted_types_analysis_result.dart';
/// Collects a set of [Measurements] about send expressions in the function [f].
// TODO(sigmund): collect information on initializers too.
-Measurements collectSendMeasurements(FunctionElement f, Compiler compiler) {
- return compiler.withCurrentElement(f, () {
+Measurements collectSendMeasurements(FunctionElement f,
+ Compiler compiler) {
+ DiagnosticReporter reporter = compiler.reporter;
+ return reporter.withCurrentElement(f, () {
// TODO(sigmund): enable for platform too.
if (f.library.isPlatformLibrary) return null;
var name = _qualifiedName(f);
@@ -61,7 +64,7 @@ Measurements collectSendMeasurements(FunctionElement f, Compiler compiler) {
var visitor = new _StatsTraversalVisitor(
compiler, resolvedAst.elements,
- compiler.spanFromNode(resolvedAst.node).uri);
+ reporter.spanFromSpannable(resolvedAst.node).uri);
resolvedAst.node.accept(visitor);
return visitor.measurements;
});
@@ -85,12 +88,12 @@ class _StatsVisitor<T> extends Visitor
/// Results from this function.
final Measurements measurements;
- final Compiler compiler;
+ final DiagnosticReporter reporter;
final TreeElements elements;
SemanticSendVisitor<dynamic, T> get sendVisitor => this;
- _StatsVisitor(this.compiler, this.elements, this.info, Uri sourceUri)
+ _StatsVisitor(this.reporter, this.elements, this.info, Uri sourceUri)
: measurements = new Measurements.reachableFunction(sourceUri);
visitNode(Node node) => throw "unhandled ${node.runtimeType}: $node";
@@ -99,7 +102,7 @@ class _StatsVisitor<T> extends Visitor
visitSend(Send node) {
_checkInvariant(node, 'before');
- var span = compiler.spanFromNode(node);
+ var span = reporter.spanFromSpannable(node);
measurements.record(Metric.send, span.begin, span.end);
if (node is SendSet) {
if ((node.assignmentOperator != null &&
@@ -121,7 +124,7 @@ class _StatsVisitor<T> extends Visitor
visitNewExpression(NewExpression node) {
_checkInvariant(node, 'before');
- var span = compiler.spanFromNode(node);
+ var span = reporter.spanFromSpannable(node);
measurements.record(Metric.send, span.begin, span.end);
super.visitNewExpression(node);
_checkInvariant(node, 'after ');
@@ -131,7 +134,7 @@ class _StatsVisitor<T> extends Visitor
///
/// See [Metric.send] for a full categorization of sends.
handleLocal(Node node) {
- var span = compiler.spanFromNode(node);
+ var span = reporter.spanFromSpannable(node);
measurements.record(Metric.monomorphicSend, span.begin, span.end);
measurements.record(Metric.localSend, span.begin, span.end);
}
@@ -142,7 +145,7 @@ class _StatsVisitor<T> extends Visitor
///
/// See [Metric.send] for a full categorization of sends.
handleSingleInstance(Node node) {
- var span = compiler.spanFromNode(node);
+ var span = reporter.spanFromSpannable(node);
measurements.record(Metric.monomorphicSend, span.begin, span.end);
measurements.record(Metric.instanceSend, span.begin, span.end);
}
@@ -154,7 +157,7 @@ class _StatsVisitor<T> extends Visitor
///
/// See [Metric.send] for a full categorization of sends.
handleSingleInterceptor(Node node) {
- var span = compiler.spanFromNode(node);
+ var span = reporter.spanFromSpannable(node);
measurements.record(Metric.monomorphicSend, span.begin, span.end);
measurements.record(Metric.interceptorSend, span.begin, span.end);
}
@@ -163,37 +166,37 @@ class _StatsVisitor<T> extends Visitor
///
/// See [Metric.send] for a full categorization of sends.
handleMultiInterceptor(Node node) {
- var span = compiler.spanFromNode(node);
+ var span = reporter.spanFromSpannable(node);
measurements.record(Metric.polymorphicSend, span.begin, span.end);
measurements.record(Metric.multiInterceptorSend, span.begin, span.end);
}
handleConstructor(Node node) {
- var span = compiler.spanFromNode(node);
+ var span = reporter.spanFromSpannable(node);
measurements.record(Metric.monomorphicSend, span.begin, span.end);
measurements.record(Metric.constructorSend, span.begin, span.end);
}
handleDynamic(Node node) {
- var span = compiler.spanFromNode(node);
+ var span = reporter.spanFromSpannable(node);
measurements.record(Metric.polymorphicSend, span.begin, span.end);
measurements.record(Metric.dynamicSend, span.begin, span.end);
}
handleVirtual(Node node) {
- var span = compiler.spanFromNode(node);
+ var span = reporter.spanFromSpannable(node);
measurements.record(Metric.polymorphicSend, span.begin, span.end);
measurements.record(Metric.virtualSend, span.begin, span.end);
}
handleNSMError(Node node) {
- var span = compiler.spanFromNode(node);
+ var span = reporter.spanFromSpannable(node);
measurements.record(Metric.monomorphicSend, span.begin, span.end);
measurements.record(Metric.nsmErrorSend, span.begin, span.end);
}
handleNSMSingle(Node node) {
- var span = compiler.spanFromNode(node);
+ var span = reporter.spanFromSpannable(node);
measurements.record(Metric.monomorphicSend, span.begin, span.end);
measurements.record(Metric.singleNsmCallSend, span.begin, span.end);
}
@@ -209,23 +212,23 @@ class _StatsVisitor<T> extends Visitor
}
handleNSMAny(Node node) {
- var span = compiler.spanFromNode(node);
+ var span = reporter.spanFromSpannable(node);
measurements.record(Metric.polymorphicSend, span.begin, span.end);
measurements.record(Metric.multiNsmCallSend, span.begin, span.end);
}
handleSuper(Node node) {
- var span = compiler.spanFromNode(node);
+ var span = reporter.spanFromSpannable(node);
measurements.record(Metric.monomorphicSend, span.begin, span.end);
measurements.record(Metric.superSend, span.begin, span.end);
}
handleTypeVariable(Node node) {
- var span = compiler.spanFromNode(node);
+ var span = reporter.spanFromSpannable(node);
measurements.record(Metric.monomorphicSend, span.begin, span.end);
measurements.record(Metric.typeVariableSend, span.begin, span.end);
}
handleStatic(Node node) {
- var span = compiler.spanFromNode(node);
+ var span = reporter.spanFromSpannable(node);
measurements.record(Metric.monomorphicSend, span.begin, span.end);
measurements.record(Metric.staticSend, span.begin, span.end);
}
@@ -2246,7 +2249,7 @@ class _StatsVisitor<T> extends Visitor
if (!measurements.checkInvariant(Metric.send) ||
!measurements.checkInvariant(Metric.monomorphicSend) ||
!measurements.checkInvariant(Metric.polymorphicSend)) {
- compiler.reportErrorMessage(node,
+ reporter.reportErrorMessage(node,
MessageKind.GENERIC, {'text': 'bad\n-- $msg\nlast:\n-- $last\n'});
last = msg;
} else {
@@ -2258,13 +2261,13 @@ class _StatsVisitor<T> extends Visitor
/// Visitor that collects statistics for a single function.
class _StatsTraversalVisitor<T> extends TraversalVisitor<dynamic, T>
implements SemanticSendVisitor<dynamic, T> {
- final Compiler compiler;
+ final DiagnosticReporter reporter;
final _StatsVisitor statsVisitor;
Measurements get measurements => statsVisitor.measurements;
_StatsTraversalVisitor(
Compiler compiler, TreeElements elements, Uri sourceUri)
- : compiler = compiler,
- statsVisitor = new _StatsVisitor(compiler, elements,
+ : reporter = compiler.reporter,
+ statsVisitor = new _StatsVisitor(compiler.reporter, elements,
// TODO(sigmund): accept a list of analyses, so we can compare them
// together.
true
@@ -2277,7 +2280,7 @@ class _StatsTraversalVisitor<T> extends TraversalVisitor<dynamic, T>
try {
node.accept(statsVisitor);
} catch (e, t) {
- compiler.reportErrorMessage(
+ reporter.reportErrorMessage(
node, MessageKind.GENERIC, {'text': '$e\n$t'});
}
super.visitSend(node);
@@ -2287,7 +2290,7 @@ class _StatsTraversalVisitor<T> extends TraversalVisitor<dynamic, T>
try {
node.accept(statsVisitor);
} catch (e, t) {
- compiler.reportErrorMessage(
+ reporter.reportErrorMessage(
node, MessageKind.GENERIC, {'text': '$e\n$t'});
}
super.visitNewExpression(node);
« no previous file with comments | « pkg/compiler/lib/src/inferrer/type_graph_inferrer.dart ('k') | pkg/compiler/lib/src/js/js.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698