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

Unified Diff: runtime/lib/mirrors_impl.dart

Issue 132133003: Extend the immutable collections test to the new API. Make *Members return immutable collections. A… (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 11 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 | « no previous file | tests/lib/mirrors/immutable_collections_test.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/lib/mirrors_impl.dart
diff --git a/runtime/lib/mirrors_impl.dart b/runtime/lib/mirrors_impl.dart
index 81bd6bcde4505a2b5e0d0bce6118c596f2f224cd..a0e7c8abd92806ad9ea9af127e9f5a9961625dd5 100644
--- a/runtime/lib/mirrors_impl.dart
+++ b/runtime/lib/mirrors_impl.dart
@@ -222,6 +222,7 @@ class _SyntheticSetterParameter implements ParameterMirror {
bool get isPrivate => false;
bool get hasDefaultValue => false;
InstanceMirror get defaultValue => null;
+ List<InstanceMirror> get metadata => emptyList;
}
abstract class _LocalObjectMirror extends _LocalMirror implements ObjectMirror {
@@ -581,7 +582,8 @@ class _LocalClassMirror extends _LocalObjectMirror
}
}
});
- _cachedStaticMembers = result;
+ _cachedStaticMembers =
+ new _UnmodifiableMapView<Symbol, MethodMirror>(result);
}
return _cachedStaticMembers;
}
@@ -609,7 +611,8 @@ class _LocalClassMirror extends _LocalObjectMirror
}
}
});
- _cachedInstanceMembers = result;
+ _cachedInstanceMembers =
+ new _UnmodifiableMapView<Symbol, MethodMirror>(result);
}
return _cachedInstanceMembers;
}
@@ -1080,28 +1083,32 @@ class _LocalLibraryMirror extends _LocalObjectMirror implements LibraryMirror {
var _cachedTopLevelMembers;
Map<Symbol, MethodMirror> get topLevelMembers {
- if (_cachedTopLevelMembers != null) return _cachedTopLevelMembers;
- var result = new Map<Symbol, MethodMirror>();
- declarations.values.forEach((decl) {
- if (decl is MethodMirror && !decl.isAbstract) {
- result[decl.simpleName] = decl;
- }
- if (decl is VariableMirror) {
- var getterName = decl.simpleName;
- result[getterName] =
- new _SyntheticAccessor(this, getterName, true, true, true, decl);
- if (!decl.isFinal) {
- var setterName = _asSetter(decl.simpleName, this);
- result[setterName] = new _SyntheticAccessor(
- this, setterName, false, true, true, decl);
+ if (_cachedTopLevelMembers == null) {
+ var result = new Map<Symbol, MethodMirror>();
+ declarations.values.forEach((decl) {
+ if (decl is MethodMirror && !decl.isAbstract) {
+ result[decl.simpleName] = decl;
}
- }
- // if (decl is TypeMirror) {
- // var getterName = decl.simpleName;
- // result[getterName] = new _SyntheticTypeGetter(this, getterName, decl);
- // }
- });
- return _cachedTopLevelMembers = result;
+ if (decl is VariableMirror) {
+ var getterName = decl.simpleName;
+ result[getterName] =
+ new _SyntheticAccessor(this, getterName, true, true, true, decl);
+ if (!decl.isFinal) {
+ var setterName = _asSetter(decl.simpleName, this);
+ result[setterName] = new _SyntheticAccessor(
+ this, setterName, false, true, true, decl);
+ }
+ }
+ // if (decl is TypeMirror) {
+ // var getterName = decl.simpleName;
+ // result[getterName] =
+ // new _SyntheticTypeGetter(this, getterName, decl);
+ // }
siva 2014/01/09 19:29:49 Why are we carrying this commented out code? Mayb
rmacnak 2014/01/09 20:38:07 This was for behavior that wasn't agreed to. I'll
+ });
+ _cachedTopLevelMembers =
+ new _UnmodifiableMapView<Symbol, MethodMirror>(result);
+ }
+ return _cachedTopLevelMembers;
}
« no previous file with comments | « no previous file | tests/lib/mirrors/immutable_collections_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698