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

Side by Side Diff: pkg/compiler/lib/src/helpers/trace.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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 part of dart2js.helpers; 5 part of dart2js.helpers;
6 6
7 /// Function signature for [trace]. 7 /// Function signature for [trace].
8 typedef void Trace(String message, 8 typedef void Trace(String message,
9 {bool condition(String stackTrace), 9 {bool condition(String stackTrace),
10 int limit, 10 int limit,
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 } 53 }
54 } 54 }
55 55
56 /// Creates a function to use as an `condition` argument in [trace] that filters 56 /// Creates a function to use as an `condition` argument in [trace] that filters
57 /// stack traces that contains any of the [exceptions]. 57 /// stack traces that contains any of the [exceptions].
58 traceExceptions(List<String> exceptions) { 58 traceExceptions(List<String> exceptions) {
59 return (String stackTrace) => !exceptions.any(stackTrace.contains); 59 return (String stackTrace) => !exceptions.any(stackTrace.contains);
60 } 60 }
61 61
62 /// Function signature of [traceAndReport]. 62 /// Function signature of [traceAndReport].
63 typedef void TraceAndReport(Compiler compiler, Spannable node, String message, 63 typedef void TraceAndReport(DiagnosticReporter reporter,
64 {bool condition(String stackTrace), int limit, 64 Spannable node,
65 String message,
66 {bool condition(String stackTrace),
67 int limit,
65 bool throwOnPrint}); 68 bool throwOnPrint});
66 69
67 /// Calls [reportHere] and [trace] with the same message. 70 /// Calls [reportHere] and [trace] with the same message.
68 TraceAndReport get traceAndReport { 71 TraceAndReport get traceAndReport {
69 enableDebugMode(); 72 enableDebugMode();
70 return _traceAndReport; 73 return _traceAndReport;
71 } 74 }
72 75
73 /// Calls [reportHere] and [trace] with the same message. 76 /// Calls [reportHere] and [trace] with the same message.
74 TraceAndReport get reportAndTrace => traceAndReport; 77 TraceAndReport get reportAndTrace => traceAndReport;
75 78
76 /// Implementation of [traceAndReport]. 79 /// Implementation of [traceAndReport].
77 void _traceAndReport(Compiler compiler, Spannable node, String message, 80 void _traceAndReport(DiagnosticReporter reporter,
81 Spannable node,
82 String message,
78 {bool condition(String stackTrace), int limit, 83 {bool condition(String stackTrace), int limit,
79 bool throwOnPrint: false}) { 84 bool throwOnPrint: false}) {
80 85
81 trace(message, limit: limit, throwOnPrint: throwOnPrint, 86 trace(message, limit: limit, throwOnPrint: throwOnPrint,
82 condition: (String stackTrace) { 87 condition: (String stackTrace) {
83 bool result = condition != null ? condition(stackTrace) : true; 88 bool result = condition != null ? condition(stackTrace) : true;
84 if (result) { 89 if (result) {
85 reportHere(compiler, node, message); 90 reportHere(reporter, node, message);
86 } 91 }
87 return result; 92 return result;
88 }); 93 });
89 } 94 }
90 95
91 /// Returns the [StackTraceLines] for the current call stack. 96 /// Returns the [StackTraceLines] for the current call stack.
92 /// 97 ///
93 /// Use [offset] to discard the first [offset] calls of the call stack. Defaults 98 /// Use [offset] to discard the first [offset] calls of the call stack. Defaults
94 /// to `1`, that is, discard the call to [stackTrace] itself. Use [limit] to 99 /// to `1`, that is, discard the call to [stackTrace] itself. Use [limit] to
95 /// limit the length of the stack trace lines. 100 /// limit the length of the stack trace lines.
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after
348 } 353 }
349 for (int index = text.length ; index < intendedLength ; index ++) { 354 for (int index = text.length ; index < intendedLength ; index ++) {
350 int dotsIndex = index % dotsLength; 355 int dotsIndex = index % dotsLength;
351 sb.write(dots.substring(dotsIndex, dotsIndex + 1)); 356 sb.write(dots.substring(dotsIndex, dotsIndex + 1));
352 } 357 }
353 if (padLeft) { 358 if (padLeft) {
354 sb.write(text); 359 sb.write(text);
355 } 360 }
356 return sb.toString(); 361 return sb.toString();
357 } 362 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/helpers/helpers.dart ('k') | pkg/compiler/lib/src/inferrer/inferrer_visitor.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698