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

Side by Side Diff: pkg/analysis_server/tool/spec/codegen_dart_protocol.dart

Issue 1246573002: Improve error messages for invalid requests (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Address comments Created 5 years, 5 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 | « pkg/analysis_server/lib/src/protocol.dart ('k') | no next file » | 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) 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 library codegen.protocol; 5 library codegen.protocol;
6 6
7 import 'dart:convert'; 7 import 'dart:convert';
8 8
9 import 'package:html/dom.dart' as dom; 9 import 'package:html/dom.dart' as dom;
10 10
(...skipping 331 matching lines...) Expand 10 before | Expand all | Expand 10 after
342 writeln('} catch(_) {'); 342 writeln('} catch(_) {');
343 indent(() { 343 indent(() {
344 writeln('// Fall through'); 344 writeln('// Fall through');
345 }); 345 });
346 writeln('}'); 346 writeln('}');
347 }); 347 });
348 writeln('}'); 348 writeln('}');
349 String humanReadableNameString = 349 String humanReadableNameString =
350 literalString(impliedType.humanReadableName); 350 literalString(impliedType.humanReadableName);
351 writeln( 351 writeln(
352 'throw jsonDecoder.mismatch(jsonPath, $humanReadableNameString);'); 352 'throw jsonDecoder.mismatch(jsonPath, $humanReadableNameString, json); ');
353 }); 353 });
354 writeln('}'); 354 writeln('}');
355 } 355 }
356 356
357 /** 357 /**
358 * Emit the class to encapsulate an object type. 358 * Emit the class to encapsulate an object type.
359 */ 359 */
360 void emitObjectClass( 360 void emitObjectClass(
361 String className, TypeObject type, ImpliedType impliedType) { 361 String className, TypeObject type, ImpliedType impliedType) {
362 docComment(toHtmlVisitor.collectHtml(() { 362 docComment(toHtmlVisitor.collectHtml(() {
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after
583 List<String> optionalArgs = <String>[]; 583 List<String> optionalArgs = <String>[];
584 for (TypeObjectField field in type.fields) { 584 for (TypeObjectField field in type.fields) {
585 String fieldNameString = literalString(field.name); 585 String fieldNameString = literalString(field.name);
586 String fieldAccessor = 'json[$fieldNameString]'; 586 String fieldAccessor = 'json[$fieldNameString]';
587 String jsonPath = 'jsonPath + ${literalString('.${field.name}')}'; 587 String jsonPath = 'jsonPath + ${literalString('.${field.name}')}';
588 if (field.value != null) { 588 if (field.value != null) {
589 String valueString = literalString(field.value); 589 String valueString = literalString(field.value);
590 writeln('if ($fieldAccessor != $valueString) {'); 590 writeln('if ($fieldAccessor != $valueString) {');
591 indent(() { 591 indent(() {
592 writeln( 592 writeln(
593 'throw jsonDecoder.mismatch(jsonPath, "equal " + $valueString) ;'); 593 'throw jsonDecoder.mismatch(jsonPath, "equal " + $valueString, json);');
594 }); 594 });
595 writeln('}'); 595 writeln('}');
596 continue; 596 continue;
597 } 597 }
598 if (isOptionalConstructorArg(className, field)) { 598 if (isOptionalConstructorArg(className, field)) {
599 optionalArgs.add('${field.name}: ${field.name}'); 599 optionalArgs.add('${field.name}: ${field.name}');
600 } else { 600 } else {
601 args.add(field.name); 601 args.add(field.name);
602 } 602 }
603 TypeDecl fieldType = field.type; 603 TypeDecl fieldType = field.type;
(...skipping 16 matching lines...) Expand all
620 } else { 620 } else {
621 writeln(); 621 writeln();
622 } 622 }
623 } 623 }
624 args.addAll(optionalArgs); 624 args.addAll(optionalArgs);
625 writeln('return new $className(${args.join(', ')});'); 625 writeln('return new $className(${args.join(', ')});');
626 }); 626 });
627 writeln('} else {'); 627 writeln('} else {');
628 indent(() { 628 indent(() {
629 writeln( 629 writeln(
630 'throw jsonDecoder.mismatch(jsonPath, $humanReadableNameString);'); 630 'throw jsonDecoder.mismatch(jsonPath, $humanReadableNameString, json );');
631 }); 631 });
632 writeln('}'); 632 writeln('}');
633 }); 633 });
634 writeln('}'); 634 writeln('}');
635 } 635 }
636 636
637 /** 637 /**
638 * Emit the hashCode getter for an object class. 638 * Emit the hashCode getter for an object class.
639 */ 639 */
640 void emitObjectHashCode(TypeObject type, String className) { 640 void emitObjectHashCode(TypeObject type, String className) {
(...skipping 582 matching lines...) Expand 10 before | Expand all | Expand 10 after
1223 1223
1224 @override 1224 @override
1225 String get asClosure => '($type value) => ${callback('value')}'; 1225 String get asClosure => '($type value) => ${callback('value')}';
1226 1226
1227 @override 1227 @override
1228 bool get isIdentity => false; 1228 bool get isIdentity => false;
1229 1229
1230 @override 1230 @override
1231 String asSnippet(String value) => callback(value); 1231 String asSnippet(String value) => callback(value);
1232 } 1232 }
OLDNEW
« no previous file with comments | « pkg/analysis_server/lib/src/protocol.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698