| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 patch class Error { | 5 patch class Error { |
| 6 /* patch */ static String _objectToString(Object object) { | 6 /* patch */ static String _objectToString(Object object) { |
| 7 return Object._toString(object); | 7 return Object._toString(object); |
| 8 } | 8 } |
| 9 } | 9 } |
| 10 | 10 |
| 11 patch class NoSuchMethodError { | 11 patch class NoSuchMethodError { |
| 12 // The compiler emits a call to _throwNew when it cannot resolve a static | 12 // The compiler emits a call to _throwNew when it cannot resolve a static |
| 13 // method at compile time. The receiver is actually the literal class of the | 13 // method at compile time. The receiver is actually the literal class of the |
| 14 // unresolved method. | 14 // unresolved method. |
| 15 static void _throwNew(Object receiver, | 15 static void _throwNew(Object receiver, |
| 16 String memberName, | 16 String memberName, |
| 17 int invocation_type, | 17 int invocation_type, |
| 18 List arguments, | 18 List arguments, |
| 19 List argumentNames, | 19 List argumentNames, |
| 20 List existingArgumentNames) { | 20 List existingArgumentNames) { |
| 21 int numNamedArguments = argumentNames == null ? 0 : argumentNames.length; | 21 int numNamedArguments = argumentNames == null ? 0 : argumentNames.length; |
| 22 int numPositionalArguments = arguments == null ? 0 : arguments.length; | 22 int numPositionalArguments = arguments == null ? 0 : arguments.length; |
| 23 numPositionalArguments -= numNamedArguments; | 23 numPositionalArguments -= numNamedArguments; |
| 24 List positionalArguments; | 24 List positionalArguments; |
| 25 if (numPositionalArguments == 0) { | 25 if (numPositionalArguments == 0) { |
| 26 positionalArguments = []; | 26 positionalArguments = []; |
| 27 } else { | 27 } else { |
| 28 positionalArguments = arguments.getRange(0, numPositionalArguments); | 28 positionalArguments = arguments.sublist(0, numPositionalArguments); |
| 29 } | 29 } |
| 30 Map<String, dynamic> namedArguments = new Map<String, dynamic>(); | 30 Map<String, dynamic> namedArguments = new Map<String, dynamic>(); |
| 31 for (int i = 0; i < numNamedArguments; i++) { | 31 for (int i = 0; i < numNamedArguments; i++) { |
| 32 var arg_value = arguments[numPositionalArguments + i]; | 32 var arg_value = arguments[numPositionalArguments + i]; |
| 33 namedArguments[argumentNames[i]] = arg_value; | 33 namedArguments[argumentNames[i]] = arg_value; |
| 34 } | 34 } |
| 35 throw new NoSuchMethodError._withType(receiver, | 35 throw new NoSuchMethodError._withType(receiver, |
| 36 memberName, | 36 memberName, |
| 37 invocation_type, | 37 invocation_type, |
| 38 positionalArguments, | 38 positionalArguments, |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 143 msg_buf.write( | 143 msg_buf.write( |
| 144 "NoSuchMethodError: incorrect number of arguments passed to " | 144 "NoSuchMethodError: incorrect number of arguments passed to " |
| 145 "method named '$_memberName'\n" | 145 "method named '$_memberName'\n" |
| 146 "Receiver: ${Error.safeToString(_receiver)}\n" | 146 "Receiver: ${Error.safeToString(_receiver)}\n" |
| 147 "Tried calling: $_memberName($actualParameters)\n" | 147 "Tried calling: $_memberName($actualParameters)\n" |
| 148 "Found: $_memberName($formalParameters)"); | 148 "Found: $_memberName($formalParameters)"); |
| 149 } | 149 } |
| 150 return msg_buf.toString(); | 150 return msg_buf.toString(); |
| 151 } | 151 } |
| 152 } | 152 } |
| OLD | NEW |