| 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 library mirrors_dart2js; | 5 library mirrors_dart2js; |
| 6 | 6 |
| 7 import 'dart:io'; | 7 import 'dart:io'; |
| 8 import 'dart:uri'; | 8 import 'dart:uri'; |
| 9 | 9 |
| 10 import '../../../../../lib/compiler/compiler.dart' as diagnostics; | 10 import '../../../../../lib/compiler/compiler.dart' as diagnostics; |
| (...skipping 473 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 484 Map<String, ClassMirror> _types; | 484 Map<String, ClassMirror> _types; |
| 485 Map<String, MemberMirror> _members; | 485 Map<String, MemberMirror> _members; |
| 486 | 486 |
| 487 Dart2JsLibraryMirror(Dart2JsMirrorSystem system, LibraryElement library) | 487 Dart2JsLibraryMirror(Dart2JsMirrorSystem system, LibraryElement library) |
| 488 : super(system, library); | 488 : super(system, library); |
| 489 | 489 |
| 490 LibraryElement get _library => _element; | 490 LibraryElement get _library => _element; |
| 491 | 491 |
| 492 Uri get uri => _library.uri; | 492 Uri get uri => _library.uri; |
| 493 | 493 |
| 494 DeclarationMirror get owner => null; |
| 495 |
| 494 LibraryMirror library() => this; | 496 LibraryMirror library() => this; |
| 495 | 497 |
| 496 /** | 498 /** |
| 497 * Returns the library name (for libraries with a #library tag) or the script | 499 * Returns the library name (for libraries with a #library tag) or the script |
| 498 * file name (for scripts without a #library tag). The latter case is used to | 500 * file name (for scripts without a #library tag). The latter case is used to |
| 499 * provide a 'library name' for scripts, to use for instance in dartdoc. | 501 * provide a 'library name' for scripts, to use for instance in dartdoc. |
| 500 */ | 502 */ |
| 501 String get simpleName { | 503 String get simpleName { |
| 502 if (_library.libraryTag !== null) { | 504 if (_library.libraryTag !== null) { |
| 503 // TODO(ahe): Remove StringNode check when old syntax is removed. | 505 // TODO(ahe): Remove StringNode check when old syntax is removed. |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 612 return new Dart2JsParameterMirror._normal(system, | 614 return new Dart2JsParameterMirror._normal(system, |
| 613 method, element, isOptional); | 615 method, element, isOptional); |
| 614 } | 616 } |
| 615 | 617 |
| 616 Dart2JsParameterMirror._normal(Dart2JsMirrorSystem system, | 618 Dart2JsParameterMirror._normal(Dart2JsMirrorSystem system, |
| 617 this._method, | 619 this._method, |
| 618 VariableElement element, | 620 VariableElement element, |
| 619 this.isOptional) | 621 this.isOptional) |
| 620 : super(system, element); | 622 : super(system, element); |
| 621 | 623 |
| 624 DeclarationMirror get owner => _method; |
| 625 |
| 622 VariableElement get _variableElement => _element; | 626 VariableElement get _variableElement => _element; |
| 623 | 627 |
| 624 String get qualifiedName => '${_method.qualifiedName}#${simpleName}'; | 628 String get qualifiedName => '${_method.qualifiedName}#${simpleName}'; |
| 625 | 629 |
| 626 TypeMirror get type => _convertTypeToTypeMirror(system, | 630 TypeMirror get type => _convertTypeToTypeMirror(system, |
| 627 _variableElement.computeType(system.compiler), | 631 _variableElement.computeType(system.compiler), |
| 628 system.compiler.types.dynamicType, | 632 system.compiler.types.dynamicType, |
| 629 _variableElement.variables.functionSignature); | 633 _variableElement.variables.functionSignature); |
| 630 | 634 |
| 631 String get defaultValue { | 635 String get defaultValue { |
| (...skipping 29 matching lines...) Expand all Loading... |
| 661 } | 665 } |
| 662 return _convertTypeToTypeMirror(system, | 666 return _convertTypeToTypeMirror(system, |
| 663 _fieldParameterElement.fieldElement.computeType(system.compiler), | 667 _fieldParameterElement.fieldElement.computeType(system.compiler), |
| 664 system.compiler.types.dynamicType, | 668 system.compiler.types.dynamicType, |
| 665 _variableElement.variables.functionSignature); | 669 _variableElement.variables.functionSignature); |
| 666 } | 670 } |
| 667 | 671 |
| 668 bool get isInitializingFormal => true; | 672 bool get isInitializingFormal => true; |
| 669 | 673 |
| 670 FieldMirror get initializedField => new Dart2JsFieldMirror( | 674 FieldMirror get initializedField => new Dart2JsFieldMirror( |
| 671 _method.surroundingDeclaration, _fieldParameterElement.fieldElement); | 675 _method.owner, _fieldParameterElement.fieldElement); |
| 672 } | 676 } |
| 673 | 677 |
| 674 //------------------------------------------------------------------------------ | 678 //------------------------------------------------------------------------------ |
| 675 // Declarations | 679 // Declarations |
| 676 //------------------------------------------------------------------------------ | 680 //------------------------------------------------------------------------------ |
| 677 class Dart2JsClassMirror extends Dart2JsObjectMirror | 681 class Dart2JsClassMirror extends Dart2JsObjectMirror |
| 678 implements Dart2JsTypeMirror, ClassMirror { | 682 implements Dart2JsTypeMirror, ClassMirror { |
| 679 final Dart2JsLibraryMirror library; | 683 final Dart2JsLibraryMirror library; |
| 680 Map<String, Dart2JsMemberMirror> _members; | 684 Map<String, Dart2JsMemberMirror> _members; |
| 681 List<TypeVariableMirror> _typeVariables; | 685 List<TypeVariableMirror> _typeVariables; |
| 682 | 686 |
| 683 Dart2JsClassMirror(Dart2JsMirrorSystem system, ClassElement _class) | 687 Dart2JsClassMirror(Dart2JsMirrorSystem system, ClassElement _class) |
| 684 : this.library = system.getLibrary(_class.getLibrary()), | 688 : this.library = system.getLibrary(_class.getLibrary()), |
| 685 super(system, _class); | 689 super(system, _class); |
| 686 | 690 |
| 687 ClassElement get _class => _element; | 691 ClassElement get _class => _element; |
| 688 | 692 |
| 689 Dart2JsClassMirror.fromLibrary(Dart2JsLibraryMirror library, | 693 Dart2JsClassMirror.fromLibrary(Dart2JsLibraryMirror library, |
| 690 ClassElement _class) | 694 ClassElement _class) |
| 691 : this.library = library, | 695 : this.library = library, |
| 692 super(library.system, _class); | 696 super(library.system, _class); |
| 693 | 697 |
| 698 DeclarationMirror get owner => library; |
| 699 |
| 694 String get qualifiedName => '${library.qualifiedName}.${simpleName}'; | 700 String get qualifiedName => '${library.qualifiedName}.${simpleName}'; |
| 695 | 701 |
| 696 SourceLocation get location { | 702 SourceLocation get location { |
| 697 if (_class is PartialClassElement) { | 703 if (_class is PartialClassElement) { |
| 698 var node = _class.parseNode(system.compiler); | 704 var node = _class.parseNode(system.compiler); |
| 699 if (node !== null) { | 705 if (node !== null) { |
| 700 var script = _class.getCompilationUnit().script; | 706 var script = _class.getCompilationUnit().script; |
| 701 var span = system.compiler.spanFromNode(node, script.uri); | 707 var span = system.compiler.spanFromNode(node, script.uri); |
| 702 return new Dart2JsLocation(script, span); | 708 return new Dart2JsLocation(script, span); |
| 703 } | 709 } |
| (...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 968 : super(system); | 974 : super(system); |
| 969 | 975 |
| 970 String get simpleName => _type.name.slowToString(); | 976 String get simpleName => _type.name.slowToString(); |
| 971 | 977 |
| 972 SourceLocation get location { | 978 SourceLocation get location { |
| 973 var script = _type.element.getCompilationUnit().script; | 979 var script = _type.element.getCompilationUnit().script; |
| 974 return new Dart2JsLocation(script, | 980 return new Dart2JsLocation(script, |
| 975 system.compiler.spanFromElement(_type.element)); | 981 system.compiler.spanFromElement(_type.element)); |
| 976 } | 982 } |
| 977 | 983 |
| 984 DeclarationMirror get owner => library; |
| 985 |
| 978 LibraryMirror get library { | 986 LibraryMirror get library { |
| 979 return system.getLibrary(_type.element.getLibrary()); | 987 return system.getLibrary(_type.element.getLibrary()); |
| 980 } | 988 } |
| 981 | 989 |
| 982 bool get isObject => false; | 990 bool get isObject => false; |
| 983 | 991 |
| 984 bool get isVoid => false; | 992 bool get isVoid => false; |
| 985 | 993 |
| 986 bool get isDynamic => false; | 994 bool get isDynamic => false; |
| 987 | 995 |
| (...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1294 } | 1302 } |
| 1295 } | 1303 } |
| 1296 | 1304 |
| 1297 FunctionElement get _function => _element; | 1305 FunctionElement get _function => _element; |
| 1298 | 1306 |
| 1299 String get simpleName => _simpleName; | 1307 String get simpleName => _simpleName; |
| 1300 | 1308 |
| 1301 String get displayName => _displayName; | 1309 String get displayName => _displayName; |
| 1302 | 1310 |
| 1303 String get qualifiedName | 1311 String get qualifiedName |
| 1304 => '${surroundingDeclaration.qualifiedName}.$simpleName'; | 1312 => '${owner.qualifiedName}.$simpleName'; |
| 1305 | 1313 |
| 1306 ObjectMirror get surroundingDeclaration => _objectMirror; | 1314 DeclarationMirror get owner => _objectMirror; |
| 1307 | 1315 |
| 1308 bool get isTopLevel => _objectMirror is LibraryMirror; | 1316 bool get isTopLevel => _objectMirror is LibraryMirror; |
| 1309 | 1317 |
| 1310 bool get isConstructor | 1318 bool get isConstructor |
| 1311 => _kind == Dart2JsMethodKind.CONSTRUCTOR || isConst || isFactory; | 1319 => _kind == Dart2JsMethodKind.CONSTRUCTOR || isConst || isFactory; |
| 1312 | 1320 |
| 1313 bool get isField => false; | 1321 bool get isField => false; |
| 1314 | 1322 |
| 1315 bool get isMethod => !isConstructor; | 1323 bool get isMethod => !isConstructor; |
| 1316 | 1324 |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1361 Dart2JsObjectMirror _objectMirror; | 1369 Dart2JsObjectMirror _objectMirror; |
| 1362 VariableElement _variable; | 1370 VariableElement _variable; |
| 1363 | 1371 |
| 1364 Dart2JsFieldMirror(Dart2JsObjectMirror objectMirror, | 1372 Dart2JsFieldMirror(Dart2JsObjectMirror objectMirror, |
| 1365 VariableElement variable) | 1373 VariableElement variable) |
| 1366 : this._objectMirror = objectMirror, | 1374 : this._objectMirror = objectMirror, |
| 1367 this._variable = variable, | 1375 this._variable = variable, |
| 1368 super(objectMirror.system, variable); | 1376 super(objectMirror.system, variable); |
| 1369 | 1377 |
| 1370 String get qualifiedName | 1378 String get qualifiedName |
| 1371 => '${surroundingDeclaration.qualifiedName}.$simpleName'; | 1379 => '${owner.qualifiedName}.$simpleName'; |
| 1372 | 1380 |
| 1373 ObjectMirror get surroundingDeclaration => _objectMirror; | 1381 DeclarationMirror get owner => _objectMirror; |
| 1374 | 1382 |
| 1375 bool get isTopLevel => _objectMirror is LibraryMirror; | 1383 bool get isTopLevel => _objectMirror is LibraryMirror; |
| 1376 | 1384 |
| 1377 bool get isConstructor => false; | 1385 bool get isConstructor => false; |
| 1378 | 1386 |
| 1379 bool get isField => true; | 1387 bool get isField => true; |
| 1380 | 1388 |
| 1381 bool get isMethod => false; | 1389 bool get isMethod => false; |
| 1382 | 1390 |
| 1383 bool get isPrivate => _isPrivate(simpleName); | 1391 bool get isPrivate => _isPrivate(simpleName); |
| (...skipping 14 matching lines...) Expand all Loading... |
| 1398 if (node !== null) { | 1406 if (node !== null) { |
| 1399 var span = system.compiler.spanFromNode(node, script.uri); | 1407 var span = system.compiler.spanFromNode(node, script.uri); |
| 1400 return new Dart2JsLocation(script, span); | 1408 return new Dart2JsLocation(script, span); |
| 1401 } else { | 1409 } else { |
| 1402 var span = system.compiler.spanFromElement(_variable); | 1410 var span = system.compiler.spanFromElement(_variable); |
| 1403 return new Dart2JsLocation(script, span); | 1411 return new Dart2JsLocation(script, span); |
| 1404 } | 1412 } |
| 1405 } | 1413 } |
| 1406 } | 1414 } |
| 1407 | 1415 |
| OLD | NEW |