| Index: dart/pkg/compiler/lib/src/resolution/members.dart
|
| diff --git a/dart/pkg/compiler/lib/src/resolution/members.dart b/dart/pkg/compiler/lib/src/resolution/members.dart
|
| index c1d7ff4b5f14c8ea72f09ed0378400029f7b81a5..c55f1f542031074f65a80094f2d1bf4aac41415f 100644
|
| --- a/dart/pkg/compiler/lib/src/resolution/members.dart
|
| +++ b/dart/pkg/compiler/lib/src/resolution/members.dart
|
| @@ -945,9 +945,17 @@ class ResolverTask extends CompilerTask {
|
| void _postProcessClassElement(BaseClassElementX element) {
|
| for (MetadataAnnotation metadata in element.metadata) {
|
| metadata.ensureResolved(compiler);
|
| - if (!element.isProxy &&
|
| - metadata.constant.value == compiler.proxyConstant) {
|
| - element.isProxy = true;
|
| + if (!element.isProxy) {
|
| + ConstantExpression constantExpression = metadata.constant;
|
| + if (constantExpression != null) {
|
| + ConstantValue constant = constantExpression.value;
|
| + if (constant.isConstructedObject) {
|
| + ObjectConstantValue object = constant;
|
| + if (object.type.element == compiler.proxyClass) {
|
| + element.isProxy = true;
|
| + }
|
| + }
|
| + }
|
| }
|
| }
|
|
|
|
|