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

Unified Diff: dart/sdk/lib/mirrors/mirrors.dart

Issue 14173005: Update dart:mirrors to use Symbol. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge
Patch Set: Also use _symbol_dev.Symbol.getName in dart2js Created 7 years, 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « dart/sdk/lib/core/symbol.dart ('k') | dart/tests/corelib/symbol_test.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: dart/sdk/lib/mirrors/mirrors.dart
diff --git a/dart/sdk/lib/mirrors/mirrors.dart b/dart/sdk/lib/mirrors/mirrors.dart
index 9813a0d9a74d553c33f4e6a4fbed692fcbaf84cb..b5b971aaafbe98343ca1f1cab4686aac4e95af0b 100644
--- a/dart/sdk/lib/mirrors/mirrors.dart
+++ b/dart/sdk/lib/mirrors/mirrors.dart
@@ -34,7 +34,8 @@ abstract class MirrorSystem {
* An immutable map from from library names to mirrors for all
* libraries known to this mirror system.
*/
- Map<String, LibraryMirror> get libraries;
+ // TODO(ahe): [libraries] should be Map<Uri, LibraryMirror>.
+ Map<Symbol, LibraryMirror> get libraries;
/**
* A mirror on the isolate associated with this [MirrorSystem].
@@ -51,6 +52,8 @@ abstract class MirrorSystem {
* A mirror on the [:void:] type.
*/
TypeMirror get voidType;
+
+ external static String getName(Symbol symbol);
}
/**
@@ -115,7 +118,7 @@ abstract class DeclarationMirror implements Mirror {
* entity, such as 'method' for a method [:void method() {...}:] or
* 'mylibrary' for a [:#library('mylibrary');:] declaration.
*/
- String get simpleName;
+ Symbol get simpleName;
/**
* The fully-qualified name for this Dart language entity.
@@ -128,7 +131,7 @@ abstract class DeclarationMirror implements Mirror {
* this is a gray area due to lack of clarity over whether library
* names are unique.
*/
- String get qualifiedName;
+ Symbol get qualifiedName;
/**
* A mirror on the owner of this function. This is the declaration
@@ -174,16 +177,16 @@ abstract class DeclarationMirror implements Mirror {
abstract class ObjectMirror implements Mirror {
/**
* Invokes the named function and returns a mirror on the result.
- * The arguments must be instances of [InstanceMirror], [num],
- * [String] or [bool].
+ * The arguments must be instances of [InstanceMirror], [num],
+ * [String], or [bool].
*/
/* TODO(turnidge): Properly document.
* TODO(turnidge): Handle ambiguous names.
* TODO(turnidge): Handle optional & named arguments.
*/
- Future<InstanceMirror> invokeAsync(String memberName,
+ Future<InstanceMirror> invokeAsync(Symbol memberName,
List<Object> positionalArguments,
- [Map<String,Object> namedArguments]);
+ [Map<Symbol, Object> namedArguments]);
/**
* Invokes a getter and returns a mirror on the result. The getter
@@ -191,17 +194,17 @@ abstract class ObjectMirror implements Mirror {
* method.
*/
/* TODO(turnidge): Handle ambiguous names.*/
- Future<InstanceMirror> getFieldAsync(String fieldName);
+ Future<InstanceMirror> getFieldAsync(Symbol fieldName);
/**
* Invokes a setter and returns a mirror on the result. The setter
* may be either the implicit setter for a non-final field or a
* user-defined setter method.
- * The argument must be an instance of either [InstanceMirror], [num],
- * [String] or [bool].
+ * The argument must be an instance of either [InstanceMirror], [num],
+ * [String], or [bool].
*/
/* TODO(turnidge): Handle ambiguous names.*/
- Future<InstanceMirror> setFieldAsync(String fieldName, Object value);
+ Future<InstanceMirror> setFieldAsync(Symbol fieldName, Object value);
}
/**
@@ -259,17 +262,17 @@ abstract class ClosureMirror implements InstanceMirror {
/**
* Executes the closure.
- * The arguments must be instances of [InstanceMirror], [num],
- * [String] or [bool].
+ * The arguments must be instances of [InstanceMirror], [num],
+ * [String], or [bool].
*/
Future<InstanceMirror> applyAsync(List<Object> positionalArguments,
- [Map<String,Object> namedArguments]);
+ [Map<Symbol, Object> namedArguments]);
/**
* Looks up the value of a name in the scope of the closure. The
* result is a mirror on that value.
*/
- Future<InstanceMirror> findInContext(String name);
+ Future<InstanceMirror> findInContext(Symbol name);
}
/**
@@ -284,6 +287,7 @@ abstract class LibraryMirror implements DeclarationMirror, ObjectMirror {
* TODO(turnidge): Document where this url comes from. Will this
* value be sensible?
*/
+ // TODO(ahe): Change type to [Uri], rename to "uri"?
String get url;
/**
@@ -293,41 +297,41 @@ abstract class LibraryMirror implements DeclarationMirror, ObjectMirror {
* The members of a library are its top-level classes,
* functions, variables, getters, and setters.
*/
- Map<String, Mirror> get members;
+ Map<Symbol, Mirror> get members;
/**
* An immutable map from names to mirrors for all class
* declarations in this library.
*/
- Map<String, ClassMirror> get classes;
+ Map<Symbol, ClassMirror> get classes;
/**
* An immutable map from names to mirrors for all function, getter,
* and setter declarations in this library.
*/
- Map<String, MethodMirror> get functions;
+ Map<Symbol, MethodMirror> get functions;
/**
* An immutable map from names to mirrors for all getter
* declarations in this library.
*/
- Map<String, MethodMirror> get getters;
+ Map<Symbol, MethodMirror> get getters;
/**
* An immutable map from names to mirrors for all setter
* declarations in this library.
*/
- Map<String, MethodMirror> get setters;
+ Map<Symbol, MethodMirror> get setters;
/**
* An immutable map from names to mirrors for all variable
* declarations in this library.
*/
- Map<String, VariableMirror> get variables;
+ Map<Symbol, VariableMirror> get variables;
}
/**
- * A [TypeMirror] reflects a Dart language class, typedef
+ * A [TypeMirror] reflects a Dart language class, typedef,
* or type variable.
*/
abstract class TypeMirror implements DeclarationMirror {
@@ -360,38 +364,38 @@ abstract class ClassMirror implements TypeMirror, ObjectMirror {
*
* This does not include inherited members.
*/
- Map<String, Mirror> get members;
+ Map<Symbol, Mirror> get members;
/**
* An immutable map from names to mirrors for all method,
* declarations for this type. This does not include getters and
* setters.
*/
- Map<String, MethodMirror> get methods;
+ Map<Symbol, MethodMirror> get methods;
/**
* An immutable map from names to mirrors for all getter
* declarations for this type.
*/
- Map<String, MethodMirror> get getters;
+ Map<Symbol, MethodMirror> get getters;
/**
* An immutable map from names to mirrors for all setter
* declarations for this type.
*/
- Map<String, MethodMirror> get setters;
+ Map<Symbol, MethodMirror> get setters;
/**
* An immutable map from names to mirrors for all variable
* declarations for this type.
*/
- Map<String, VariableMirror> get variables;
+ Map<Symbol, VariableMirror> get variables;
/**
* An immutable map from names to mirrors for all constructor
* declarations for this type.
*/
- Map<String, MethodMirror> get constructors;
+ Map<Symbol, MethodMirror> get constructors;
/**
* An immutable map from names to mirrors for all type variables for
@@ -399,7 +403,7 @@ abstract class ClassMirror implements TypeMirror, ObjectMirror {
*
* This map preserves the order of declaration of the type variables.
*/
- Map<String, TypeVariableMirror> get typeVariables;
+ Map<Symbol, TypeVariableMirror> get typeVariables;
/**
* An immutable map from names to mirrors for all type arguments for
@@ -407,7 +411,7 @@ abstract class ClassMirror implements TypeMirror, ObjectMirror {
*
* This map preserves the order of declaration of the type variables.
*/
- Map<String, TypeMirror> get typeArguments;
+ Map<Symbol, TypeMirror> get typeArguments;
/**
* Is this the original declaration of this type?
@@ -433,12 +437,13 @@ abstract class ClassMirror implements TypeMirror, ObjectMirror {
/**
* Invokes the named constructor and returns a mirror on the result.
- * The arguments must be instances of [InstanceMirror], [num],
+ * The arguments must be instances of [InstanceMirror], [num],
+ * [String], or [bool].
*/
/* TODO(turnidge): Properly document.*/
- Future<InstanceMirror> newInstanceAsync(String constructorName,
+ Future<InstanceMirror> newInstanceAsync(Symbol constructorName,
List<Object> positionalArguments,
- [Map<String,Object> namedArguments]);
+ [Map<Symbol, Object> namedArguments]);
/**
* Does this mirror represent a class?
@@ -569,7 +574,7 @@ abstract class MethodMirror implements DeclarationMirror {
* For example, [:'bar':] is the constructor name for constructor
* [:Foo.bar:] of type [:Foo:].
*/
- String get constructorName;
+ Symbol get constructorName;
/**
* Is the reflectee a const constructor?
@@ -641,10 +646,8 @@ abstract class ParameterMirror implements VariableMirror {
/**
* A mirror on the default value for this parameter, if it exists.
- *
- * TODO(turnidge): String may not be a good representation of this
- * at runtime.
*/
+ // TODO(ahe): This should return an InstanceMirror.
String get defaultValue;
}
« no previous file with comments | « dart/sdk/lib/core/symbol.dart ('k') | dart/tests/corelib/symbol_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698