Chromium Code Reviews| 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 /* patch */ StackTrace get stackTrace => _stackTrace; | 10 /* patch */ StackTrace get stackTrace => _stackTrace; |
| (...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 205 | 205 |
| 206 | 206 |
| 207 String _developerMessage(args_mismatch) { | 207 String _developerMessage(args_mismatch) { |
| 208 if (_invocation_type < 0) { | 208 if (_invocation_type < 0) { |
| 209 return ""; | 209 return ""; |
| 210 } | 210 } |
| 211 var type = _invocation_type & _InvocationMirror._TYPE_MASK; | 211 var type = _invocation_type & _InvocationMirror._TYPE_MASK; |
| 212 var level = (_invocation_type >> _InvocationMirror._CALL_SHIFT) & | 212 var level = (_invocation_type >> _InvocationMirror._CALL_SHIFT) & |
| 213 _InvocationMirror._CALL_MASK; | 213 _InvocationMirror._CALL_MASK; |
| 214 var type_str = | 214 var type_str = |
| 215 (const ["method", "getter", "setter", "getter or setter"])[type]; | 215 (const ["method", "getter", "setter", "getter or setter", "variable"])[t ype]; |
| 216 var args_message = args_mismatch ? " with matching arguments" : ""; | 216 var args_message = args_mismatch ? " with matching arguments" : ""; |
| 217 var msg; | 217 var msg; |
| 218 var memberName = | 218 var memberName = |
| 219 (_memberName == null) ? "" : internal.Symbol.getName(_memberName); | 219 (_memberName == null) ? "" : internal.Symbol.getName(_memberName); |
| 220 | |
| 221 if (type == _InvocationMirror._LOCAL_VAR) { | |
| 222 return "cannot assign to final variable '$memberName'.\n\n"; | |
|
Ivan Posva
2014/02/25 07:10:07
How about just assigning to msg here and let the r
hausner
2014/02/25 18:47:05
I'm not sure what massaging you mean. Adding the t
| |
| 223 } | |
| 220 switch (level) { | 224 switch (level) { |
| 221 case _InvocationMirror._DYNAMIC: { | 225 case _InvocationMirror._DYNAMIC: { |
| 222 if (_receiver == null) { | 226 if (_receiver == null) { |
| 223 msg = "The null object does not have a $type_str '$memberName'" | 227 msg = "The null object does not have a $type_str '$memberName'" |
| 224 "$args_message."; | 228 "$args_message."; |
| 225 } else { | 229 } else { |
| 226 if (_receiver is Function) { | 230 if (_receiver is Function) { |
| 227 msg = "Closure call with mismatched arguments: " | 231 msg = "Closure call with mismatched arguments: " |
| 228 "function '$memberName'"; | 232 "function '$memberName'"; |
| 229 } else { | 233 } else { |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 287 String receiver_str; | 291 String receiver_str; |
| 288 var level = (_invocation_type >> _InvocationMirror._CALL_SHIFT) & | 292 var level = (_invocation_type >> _InvocationMirror._CALL_SHIFT) & |
| 289 _InvocationMirror._CALL_MASK; | 293 _InvocationMirror._CALL_MASK; |
| 290 if ( level == _InvocationMirror._TOP_LEVEL) { | 294 if ( level == _InvocationMirror._TOP_LEVEL) { |
| 291 receiver_str = "top-level"; | 295 receiver_str = "top-level"; |
| 292 } else { | 296 } else { |
| 293 receiver_str = Error.safeToString(_receiver); | 297 receiver_str = Error.safeToString(_receiver); |
| 294 } | 298 } |
| 295 var memberName = | 299 var memberName = |
| 296 (_memberName == null) ? "" : internal.Symbol.getName(_memberName); | 300 (_memberName == null) ? "" : internal.Symbol.getName(_memberName); |
| 297 if (!args_mismatch) { | 301 var type = _invocation_type & _InvocationMirror._TYPE_MASK; |
| 302 if (type == _InvocationMirror._LOCAL_VAR) { | |
| 298 msg_buf.write( | 303 msg_buf.write( |
| 299 "NoSuchMethodError : method not found: '$memberName'\n" | 304 "NoSuchMethodError: cannot assign to final variable '$memberName'"); |
| 305 } else if (!args_mismatch) { | |
| 306 msg_buf.write( | |
| 307 "NoSuchMethodError: method not found: '$memberName'\n" | |
| 300 "Receiver: $receiver_str\n" | 308 "Receiver: $receiver_str\n" |
| 301 "Arguments: [$actual_buf]"); | 309 "Arguments: [$actual_buf]"); |
| 302 } else { | 310 } else { |
| 303 String actualParameters = actual_buf.toString(); | 311 String actualParameters = actual_buf.toString(); |
| 304 StringBuffer formal_buf = new StringBuffer(); | 312 StringBuffer formal_buf = new StringBuffer(); |
| 305 for (int i = 0; i < _existingArgumentNames.length; i++) { | 313 for (int i = 0; i < _existingArgumentNames.length; i++) { |
| 306 if (i > 0) { | 314 if (i > 0) { |
| 307 formal_buf.write(", "); | 315 formal_buf.write(", "); |
| 308 } | 316 } |
| 309 formal_buf.write(_existingArgumentNames[i]); | 317 formal_buf.write(_existingArgumentNames[i]); |
| 310 } | 318 } |
| 311 String formalParameters = formal_buf.toString(); | 319 String formalParameters = formal_buf.toString(); |
| 312 msg_buf.write( | 320 msg_buf.write( |
| 313 "NoSuchMethodError: incorrect number of arguments passed to " | 321 "NoSuchMethodError: incorrect number of arguments passed to " |
| 314 "method named '$memberName'\n" | 322 "method named '$memberName'\n" |
| 315 "Receiver: $receiver_str\n" | 323 "Receiver: $receiver_str\n" |
| 316 "Tried calling: $memberName($actualParameters)\n" | 324 "Tried calling: $memberName($actualParameters)\n" |
| 317 "Found: $memberName($formalParameters)"); | 325 "Found: $memberName($formalParameters)"); |
| 318 } | 326 } |
| 319 return msg_buf.toString(); | 327 return msg_buf.toString(); |
| 320 } | 328 } |
| 321 } | 329 } |
| 322 | 330 |
| 323 class _JavascriptIntegerOverflowError extends Error { | 331 class _JavascriptIntegerOverflowError extends Error { |
| 324 final Object _value; | 332 final Object _value; |
| 325 | 333 |
| 326 _JavascriptIntegerOverflowError(this._value); | 334 _JavascriptIntegerOverflowError(this._value); |
| 327 String toString() => "Javascript Integer Overflow: $_value"; | 335 String toString() => "Javascript Integer Overflow: $_value"; |
| 328 } | 336 } |
| OLD | NEW |