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

Side by Side Diff: lib/src/line_splitting/solve_state.dart

Issue 1258203006: Handle function arguments inside function calls. (Closed) Base URL: https://github.com/dart-lang/dart_style.git@master
Patch Set: Reformat self. Created 5 years, 4 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
« no previous file with comments | « lib/src/argument_list_visitor.dart ('k') | lib/src/rule/argument.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, 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 library dart_style.src.line_splitting.solve_state; 5 library dart_style.src.line_splitting.solve_state;
6 6
7 import '../debug.dart' as debug; 7 import '../debug.dart' as debug;
8 import '../rule/rule.dart'; 8 import '../rule/rule.dart';
9 import 'line_splitter.dart'; 9 import 'line_splitter.dart';
10 import 'rule_set.dart'; 10 import 'rule_set.dart';
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 } 211 }
212 212
213 /// Returns `true` if [other] overlaps this state. 213 /// Returns `true` if [other] overlaps this state.
214 bool _isOverlapping(SolveState other) { 214 bool _isOverlapping(SolveState other) {
215 _ensureOverlapFields(); 215 _ensureOverlapFields();
216 other._ensureOverlapFields(); 216 other._ensureOverlapFields();
217 217
218 // Lines that contain both bound and unbound rules must have the same 218 // Lines that contain both bound and unbound rules must have the same
219 // bound values. 219 // bound values.
220 if (_boundRulesInUnboundLines.length != 220 if (_boundRulesInUnboundLines.length !=
221 other._boundRulesInUnboundLines.length) { 221 other._boundRulesInUnboundLines.length) {
222 return false; 222 return false;
223 } 223 }
224 224
225 for (var rule in _boundRulesInUnboundLines) { 225 for (var rule in _boundRulesInUnboundLines) {
226 if (!other._boundRulesInUnboundLines.contains(rule)) return false; 226 if (!other._boundRulesInUnboundLines.contains(rule)) return false;
227 if (_ruleValues.getValue(rule) != other._ruleValues.getValue(rule)) { 227 if (_ruleValues.getValue(rule) != other._ruleValues.getValue(rule)) {
228 return false; 228 return false;
229 } 229 }
230 } 230 }
231 231
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after
408 } 408 }
409 } 409 }
410 410
411 void _calculateBoundRulesInUnboundLines() { 411 void _calculateBoundRulesInUnboundLines() {
412 _boundRulesInUnboundLines = new Set(); 412 _boundRulesInUnboundLines = new Set();
413 413
414 var boundInLine = new Set(); 414 var boundInLine = new Set();
415 var hasUnbound = false; 415 var hasUnbound = false;
416 416
417 for (var i = 0; i < _splitter.chunks.length - 1; i++) { 417 for (var i = 0; i < _splitter.chunks.length - 1; i++) {
418
419 if (splits.shouldSplitAt(i)) { 418 if (splits.shouldSplitAt(i)) {
420 if (hasUnbound) _boundRulesInUnboundLines.addAll(boundInLine); 419 if (hasUnbound) _boundRulesInUnboundLines.addAll(boundInLine);
421 420
422 boundInLine.clear(); 421 boundInLine.clear();
423 hasUnbound = false; 422 hasUnbound = false;
424 } 423 }
425 424
426 var rule = _splitter.chunks[i].rule; 425 var rule = _splitter.chunks[i].rule;
427 if (rule != null && rule is! HardSplitRule) { 426 if (rule != null && rule is! HardSplitRule) {
428 if (_ruleValues.contains(rule)) { 427 if (_ruleValues.contains(rule)) {
429 boundInLine.add(rule); 428 boundInLine.add(rule);
430 } else { 429 } else {
431 hasUnbound = true; 430 hasUnbound = true;
432 } 431 }
433 } 432 }
434 } 433 }
435 434
436 if (hasUnbound) _boundRulesInUnboundLines.addAll(boundInLine); 435 if (hasUnbound) _boundRulesInUnboundLines.addAll(boundInLine);
437 } 436 }
438 437
439 String toString() { 438 String toString() {
440 var buffer = new StringBuffer(); 439 var buffer = new StringBuffer();
441 440
442 buffer.writeAll( 441 buffer.writeAll(_splitter.rules.map((rule) {
443 _splitter.rules.map((rule) { 442 var valueLength = "${rule.fullySplitValue}".length;
444 var valueLength = "${rule.fullySplitValue}".length;
445 443
446 var value = "?"; 444 var value = "?";
447 if (_ruleValues.contains(rule)) { 445 if (_ruleValues.contains(rule)) {
448 value = "${_ruleValues.getValue(rule)}"; 446 value = "${_ruleValues.getValue(rule)}";
449 } 447 }
450 448
451 value = value.padLeft(valueLength); 449 value = value.padLeft(valueLength);
452 if (_liveRules.contains(rule)) { 450 if (_liveRules.contains(rule)) {
453 value = debug.bold(value); 451 value = debug.bold(value);
454 } else { 452 } else {
455 value = debug.gray(value); 453 value = debug.gray(value);
456 } 454 }
457 455
458 return value; 456 return value;
459 }), 457 }), " ");
460 " ");
461 458
462 buffer.write(" \$${splits.cost}"); 459 buffer.write(" \$${splits.cost}");
463 460
464 if (overflowChars > 0) buffer.write(" (${overflowChars} over)"); 461 if (overflowChars > 0) buffer.write(" (${overflowChars} over)");
465 if (!_isComplete) buffer.write(" (incomplete)"); 462 if (!_isComplete) buffer.write(" (incomplete)");
466 if (splits == null) buffer.write(" invalid"); 463 if (splits == null) buffer.write(" invalid");
467 464
468 return buffer.toString(); 465 return buffer.toString();
469 } 466 }
470 } 467 }
OLDNEW
« no previous file with comments | « lib/src/argument_list_visitor.dart ('k') | lib/src/rule/argument.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698