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

Side by Side Diff: pkg/dev_compiler/tool/input_sdk/private/ddc_runtime/types.dart

Issue 2852723002: dart:mirrors workaround for generic methods (Closed)
Patch Set: Created 3 years, 7 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) 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 /// This library defines the representation of runtime types. 5 /// This library defines the representation of runtime types.
6 part of dart._runtime; 6 part of dart._runtime;
7 7
8 final metadata = JS('', 'Symbol("metadata")'); 8 final metadata = JS('', 'Symbol("metadata")');
9 9
10 /// The symbol used to store the cached `Type` object associated with a class. 10 /// The symbol used to store the cached `Type` object associated with a class.
(...skipping 494 matching lines...) Expand 10 before | Expand all | Expand 10 after
505 functionType(returnType, args, extra) => 505 functionType(returnType, args, extra) =>
506 _functionType(false, returnType, args, extra); 506 _functionType(false, returnType, args, extra);
507 507
508 /// 508 ///
509 /// Create a definite function type. No substitution of dynamic for 509 /// Create a definite function type. No substitution of dynamic for
510 /// bottom occurs. 510 /// bottom occurs.
511 /// 511 ///
512 definiteFunctionType(returnType, args, extra) => 512 definiteFunctionType(returnType, args, extra) =>
513 _functionType(true, returnType, args, extra); 513 _functionType(true, returnType, args, extra);
514 514
515 ///
516 /// TODO(vsm): Remove when mirrors is deprecated.
517 /// This is a temporary workaround to support dart:mirrors, which doesn't
518 /// understand generic methods.
519 ///
520 getFunctionTypeMirror(AbstractFunctionType type) {
521 if (type is GenericFunctionType) {
522 var typeArgs = new List.filled(type.formalCount, dynamic);
523 return type.instantiate(typeArgs);
524 }
525 return type;
526 }
527
515 bool isType(obj) => JS( 528 bool isType(obj) => JS(
516 '', 529 '',
517 '''(() => { 530 '''(() => {
518 return $_getRuntimeType($obj) === $Type; 531 return $_getRuntimeType($obj) === $Type;
519 })()'''); 532 })()''');
520 533
521 String typeName(type) => JS( 534 String typeName(type) => JS(
522 '', 535 '',
523 '''(() => { 536 '''(() => {
524 if ($type === void 0) return "undefined type"; 537 if ($type === void 0) return "undefined type";
(...skipping 387 matching lines...) Expand 10 before | Expand all | Expand 10 after
912 return true; 925 return true;
913 } 926 }
914 927
915 let typeArgs = $getGenericArgs($type); 928 let typeArgs = $getGenericArgs($type);
916 if (!typeArgs) return true; 929 if (!typeArgs) return true;
917 for (let t of typeArgs) { 930 for (let t of typeArgs) {
918 if (t != $Object && t != $dynamic) return false; 931 if (t != $Object && t != $dynamic) return false;
919 } 932 }
920 return true; 933 return true;
921 })()'''); 934 })()''');
OLDNEW
« no previous file with comments | « pkg/dev_compiler/lib/sdk/ddc_sdk.sum ('k') | pkg/dev_compiler/tool/input_sdk/private/js_mirrors.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698