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 dart2js.compiler_base; | 5 library dart2js.compiler_base; |
6 | 6 |
7 import 'dart:async' show EventSink, Future; | 7 import 'dart:async' show EventSink, Future; |
8 | 8 |
9 import '../compiler_new.dart' as api; | 9 import '../compiler_new.dart' as api; |
10 import 'closure.dart' as closureMapping show ClosureTask; | 10 import 'closure.dart' as closureMapping show ClosureTask; |
(...skipping 1984 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1995 void forEachClassMember( | 1995 void forEachClassMember( |
1996 ClassElement cls, void f(ClassElement declarer, MemberElement member)) { | 1996 ClassElement cls, void f(ClassElement declarer, MemberElement member)) { |
1997 cls.ensureResolved(_resolution); | 1997 cls.ensureResolved(_resolution); |
1998 cls.forEachMember((ClassElement declarer, MemberElement member) { | 1998 cls.forEachMember((ClassElement declarer, MemberElement member) { |
1999 if (member.isSynthesized) return; | 1999 if (member.isSynthesized) return; |
2000 f(declarer, member); | 2000 f(declarer, member); |
2001 }, includeSuperAndInjectedMembers: true); | 2001 }, includeSuperAndInjectedMembers: true); |
2002 } | 2002 } |
2003 | 2003 |
2004 @override | 2004 @override |
| 2005 ClassEntity getSuperClass(ClassElement cls) { |
| 2006 cls = cls.superclass; |
| 2007 while (cls != null && cls.isUnnamedMixinApplication) { |
| 2008 cls = cls.superclass; |
| 2009 } |
| 2010 return cls; |
| 2011 } |
| 2012 |
| 2013 @override |
2005 void forEachMixin(ClassElement cls, void f(ClassElement mixin)) { | 2014 void forEachMixin(ClassElement cls, void f(ClassElement mixin)) { |
2006 for (; cls != null; cls = cls.superclass) { | 2015 for (; cls != null; cls = cls.superclass) { |
2007 if (cls.isMixinApplication) { | 2016 if (cls.isMixinApplication) { |
2008 MixinApplicationElement mixinApplication = cls; | 2017 MixinApplicationElement mixinApplication = cls; |
2009 f(mixinApplication.mixin); | 2018 f(mixinApplication.mixin); |
2010 } | 2019 } |
2011 } | 2020 } |
2012 } | 2021 } |
2013 | 2022 |
2014 @override | 2023 @override |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2057 if (library != null && library.isSynthesized) { | 2066 if (library != null && library.isSynthesized) { |
2058 return null; | 2067 return null; |
2059 } | 2068 } |
2060 if (library == null && required) { | 2069 if (library == null && required) { |
2061 throw new SpannableAssertionFailure( | 2070 throw new SpannableAssertionFailure( |
2062 library, "The library '${uri}' was not found."); | 2071 library, "The library '${uri}' was not found."); |
2063 } | 2072 } |
2064 return library; | 2073 return library; |
2065 } | 2074 } |
2066 } | 2075 } |
OLD | NEW |