| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 elements.modelx; | 5 library elements.modelx; |
| 6 | 6 |
| 7 import 'elements.dart'; | 7 import 'elements.dart'; |
| 8 import '../constants/expressions.dart'; | 8 import '../constants/expressions.dart'; |
| 9 import '../helpers/helpers.dart'; // Included for debug helpers. | 9 import '../helpers/helpers.dart'; // Included for debug helpers. |
| 10 import '../tree/tree.dart'; | 10 import '../tree/tree.dart'; |
| (...skipping 1895 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1906 /// This field is set by the post process queue when checking for cycles. | 1906 /// This field is set by the post process queue when checking for cycles. |
| 1907 ConstructorElement internalEffectiveTarget; | 1907 ConstructorElement internalEffectiveTarget; |
| 1908 DartType effectiveTargetType; | 1908 DartType effectiveTargetType; |
| 1909 | 1909 |
| 1910 void set effectiveTarget(ConstructorElement constructor) { | 1910 void set effectiveTarget(ConstructorElement constructor) { |
| 1911 assert(constructor != null && internalEffectiveTarget == null); | 1911 assert(constructor != null && internalEffectiveTarget == null); |
| 1912 internalEffectiveTarget = constructor; | 1912 internalEffectiveTarget = constructor; |
| 1913 } | 1913 } |
| 1914 | 1914 |
| 1915 ConstructorElement get effectiveTarget { | 1915 ConstructorElement get effectiveTarget { |
| 1916 if (Elements.isErroneousElement(immediateRedirectionTarget)) { | 1916 if (Elements.isErroneous(immediateRedirectionTarget)) { |
| 1917 return immediateRedirectionTarget; | 1917 return immediateRedirectionTarget; |
| 1918 } | 1918 } |
| 1919 assert(!isRedirectingFactory || internalEffectiveTarget != null); | 1919 assert(!isRedirectingFactory || internalEffectiveTarget != null); |
| 1920 return isRedirectingFactory ? internalEffectiveTarget : this; | 1920 return isRedirectingFactory ? internalEffectiveTarget : this; |
| 1921 } | 1921 } |
| 1922 | 1922 |
| 1923 InterfaceType computeEffectiveTargetType(InterfaceType newType) { | 1923 InterfaceType computeEffectiveTargetType(InterfaceType newType) { |
| 1924 if (!isRedirectingFactory) return newType; | 1924 if (!isRedirectingFactory) return newType; |
| 1925 assert(invariant(this, effectiveTargetType != null, | 1925 assert(invariant(this, effectiveTargetType != null, |
| 1926 message: 'Redirection target type has not yet been computed for ' | 1926 message: 'Redirection target type has not yet been computed for ' |
| (...skipping 1115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3042 AstElement get definingElement; | 3042 AstElement get definingElement; |
| 3043 | 3043 |
| 3044 bool get hasResolvedAst => definingElement.hasTreeElements; | 3044 bool get hasResolvedAst => definingElement.hasTreeElements; |
| 3045 | 3045 |
| 3046 ResolvedAst get resolvedAst { | 3046 ResolvedAst get resolvedAst { |
| 3047 return new ResolvedAst(declaration, | 3047 return new ResolvedAst(declaration, |
| 3048 definingElement.node, definingElement.treeElements); | 3048 definingElement.node, definingElement.treeElements); |
| 3049 } | 3049 } |
| 3050 | 3050 |
| 3051 } | 3051 } |
| OLD | NEW |