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

Side by Side Diff: pkg/analyzer/lib/src/generated/element.dart

Issue 267293006: New analyzer snapshot. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 7 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, 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 // This code was auto-generated, is not intended to be edited, and is subject to 5 // This code was auto-generated, is not intended to be edited, and is subject to
6 // significant change. Please see the README file for more information. 6 // significant change. Please see the README file for more information.
7 7
8 library engine.element; 8 library engine.element;
9 9
10 import 'dart:collection'; 10 import 'dart:collection';
(...skipping 1044 matching lines...) Expand 10 before | Expand all | Expand 10 after
1055 * </blockquote> 1055 * </blockquote>
1056 * 1056 *
1057 * @param getterName the name of the getter being looked up 1057 * @param getterName the name of the getter being looked up
1058 * @param library the library with respect to which the lookup is being perfor med 1058 * @param library the library with respect to which the lookup is being perfor med
1059 * @return the result of looking up the given getter in this class with respec t to the given 1059 * @return the result of looking up the given getter in this class with respec t to the given
1060 * library 1060 * library
1061 */ 1061 */
1062 PropertyAccessorElement lookUpGetter(String getterName, LibraryElement library ); 1062 PropertyAccessorElement lookUpGetter(String getterName, LibraryElement library );
1063 1063
1064 /** 1064 /**
1065 * Return the element representing the method that results from looking up the given method in the
1066 * superclass of this class with respect to the given library, or `null` if th e look up
1067 * fails. The behavior of this method is defined by the Dart Language Specific ation in section
1068 * 12.15.1: <blockquote> The result of looking up method <i>m</i> in class <i> C</i> with respect
1069 * to library <i>L</i> is:
1070 * * If <i>C</i> declares an instance method named <i>m</i> that is accessible to <i>L</i>, then
1071 * that method is the result of the lookup. Otherwise, if <i>C</i> has a super class <i>S</i>, then
1072 * the result of the lookup is the result of looking up method <i>m</i> in <i> S</i> with respect
1073 * to <i>L</i>. Otherwise, we say that the lookup has failed.
1074 * </blockquote>
1075 *
1076 * @param methodName the name of the method being looked up
1077 * @param library the library with respect to which the lookup is being perfor med
1078 * @return the result of looking up the given method in the superclass of this class with respect
1079 * to the given library
1080 */
1081 MethodElement lookUpInheritedMethod(String methodName, LibraryElement library) ;
1082
1083 /**
1065 * Return the element representing the method that results from looking up the given method in 1084 * Return the element representing the method that results from looking up the given method in
1066 * this class with respect to the given library, or `null` if the look up fail s. The 1085 * this class with respect to the given library, or `null` if the look up fail s. The
1067 * behavior of this method is defined by the Dart Language Specification in se ction 12.15.1: 1086 * behavior of this method is defined by the Dart Language Specification in se ction 12.15.1:
1068 * <blockquote> The result of looking up method <i>m</i> in class <i>C</i> wit h respect to library 1087 * <blockquote> The result of looking up method <i>m</i> in class <i>C</i> wit h respect to library
1069 * <i>L</i> is: 1088 * <i>L</i> is:
1070 * * If <i>C</i> declares an instance method named <i>m</i> that is accessible to <i>L</i>, then 1089 * * If <i>C</i> declares an instance method named <i>m</i> that is accessible to <i>L</i>, then
1071 * that method is the result of the lookup. Otherwise, if <i>C</i> has a super class <i>S</i>, then 1090 * that method is the result of the lookup. Otherwise, if <i>C</i> has a super class <i>S</i>, then
1072 * the result of the lookup is the result of looking up method <i>m</i> in <i> S</i> with respect 1091 * the result of the lookup is the result of looking up method <i>m</i> in <i> S</i> with respect
1073 * to <i>L</i>. Otherwise, we say that the lookup has failed. 1092 * to <i>L</i>. Otherwise, we say that the lookup has failed.
1074 * </blockquote> 1093 * </blockquote>
(...skipping 333 matching lines...) Expand 10 before | Expand all | Expand 10 after
1408 InterfaceType supertype = currentElement.supertype; 1427 InterfaceType supertype = currentElement.supertype;
1409 if (supertype == null) { 1428 if (supertype == null) {
1410 return null; 1429 return null;
1411 } 1430 }
1412 currentElement = supertype.element; 1431 currentElement = supertype.element;
1413 } 1432 }
1414 return null; 1433 return null;
1415 } 1434 }
1416 1435
1417 @override 1436 @override
1418 MethodElement lookUpMethod(String methodName, LibraryElement library) { 1437 MethodElement lookUpInheritedMethod(String methodName, LibraryElement library) => _internalLookUpMethod(methodName, library, false);
1419 Set<ClassElement> visitedClasses = new Set<ClassElement>(); 1438
1420 ClassElement currentElement = this; 1439 @override
1421 while (currentElement != null && !visitedClasses.contains(currentElement)) { 1440 MethodElement lookUpMethod(String methodName, LibraryElement library) => _inte rnalLookUpMethod(methodName, library, true);
1422 visitedClasses.add(currentElement);
1423 MethodElement element = currentElement.getMethod(methodName);
1424 if (element != null && element.isAccessibleIn(library)) {
1425 return element;
1426 }
1427 for (InterfaceType mixin in currentElement.mixins) {
1428 ClassElement mixinElement = mixin.element;
1429 if (mixinElement != null) {
1430 element = mixinElement.getMethod(methodName);
1431 if (element != null && element.isAccessibleIn(library)) {
1432 return element;
1433 }
1434 }
1435 }
1436 InterfaceType supertype = currentElement.supertype;
1437 if (supertype == null) {
1438 return null;
1439 }
1440 currentElement = supertype.element;
1441 }
1442 return null;
1443 }
1444 1441
1445 @override 1442 @override
1446 PropertyAccessorElement lookUpSetter(String setterName, LibraryElement library ) { 1443 PropertyAccessorElement lookUpSetter(String setterName, LibraryElement library ) {
1447 Set<ClassElement> visitedClasses = new Set<ClassElement>(); 1444 Set<ClassElement> visitedClasses = new Set<ClassElement>();
1448 ClassElement currentElement = this; 1445 ClassElement currentElement = this;
1449 while (currentElement != null && !visitedClasses.contains(currentElement)) { 1446 while (currentElement != null && !visitedClasses.contains(currentElement)) {
1450 visitedClasses.add(currentElement); 1447 visitedClasses.add(currentElement);
1451 PropertyAccessorElement element = currentElement.getSetter(setterName); 1448 PropertyAccessorElement element = currentElement.getSetter(setterName);
1452 if (element != null && element.isAccessibleIn(library)) { 1449 if (element != null && element.isAccessibleIn(library)) {
1453 return element; 1450 return element;
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
1620 for (InterfaceType type in currentElement.mixins) { 1617 for (InterfaceType type in currentElement.mixins) {
1621 ClassElement element = type.element; 1618 ClassElement element = type.element;
1622 if (!visitedClasses.contains(element)) { 1619 if (!visitedClasses.contains(element)) {
1623 supertypes.add(type); 1620 supertypes.add(type);
1624 } 1621 }
1625 } 1622 }
1626 } 1623 }
1627 } 1624 }
1628 } 1625 }
1629 1626
1627 MethodElement _internalLookUpMethod(String methodName, LibraryElement library, bool includeThisClass) {
1628 Set<ClassElement> visitedClasses = new Set<ClassElement>();
1629 ClassElement currentElement = this;
1630 if (includeThisClass) {
1631 MethodElement element = currentElement.getMethod(methodName);
1632 if (element != null && element.isAccessibleIn(library)) {
1633 return element;
1634 }
1635 }
1636 while (currentElement != null && visitedClasses.add(currentElement)) {
1637 for (InterfaceType mixin in currentElement.mixins) {
1638 ClassElement mixinElement = mixin.element;
1639 if (mixinElement != null) {
1640 MethodElement element = mixinElement.getMethod(methodName);
1641 if (element != null && element.isAccessibleIn(library)) {
1642 return element;
1643 }
1644 }
1645 }
1646 InterfaceType supertype = currentElement.supertype;
1647 if (supertype == null) {
1648 return null;
1649 }
1650 currentElement = supertype.element;
1651 MethodElement element = currentElement.getMethod(methodName);
1652 if (element != null && element.isAccessibleIn(library)) {
1653 return element;
1654 }
1655 }
1656 return null;
1657 }
1658
1630 bool _safeIsOrInheritsProxy(ClassElement classElt, Set<ClassElement> visitedCl assElts) { 1659 bool _safeIsOrInheritsProxy(ClassElement classElt, Set<ClassElement> visitedCl assElts) {
1631 if (visitedClassElts.contains(classElt)) { 1660 if (visitedClassElts.contains(classElt)) {
1632 return false; 1661 return false;
1633 } 1662 }
1634 visitedClassElts.add(classElt); 1663 visitedClassElts.add(classElt);
1635 if (classElt.isProxy) { 1664 if (classElt.isProxy) {
1636 return true; 1665 return true;
1637 } else if (classElt.supertype != null && _safeIsOrInheritsProxy(classElt.sup ertype.element, visitedClassElts)) { 1666 } else if (classElt.supertype != null && _safeIsOrInheritsProxy(classElt.sup ertype.element, visitedClassElts)) {
1638 return true; 1667 return true;
1639 } 1668 }
(...skipping 6163 matching lines...) Expand 10 before | Expand all | Expand 10 after
7803 * @return the toolkit objects attached to this variable 7832 * @return the toolkit objects attached to this variable
7804 */ 7833 */
7805 List<ToolkitObjectElement> get toolkitObjects; 7834 List<ToolkitObjectElement> get toolkitObjects;
7806 } 7835 }
7807 7836
7808 /** 7837 /**
7809 * Instances of the class `LocalVariableElementImpl` implement a `LocalVariableE lement`. 7838 * Instances of the class `LocalVariableElementImpl` implement a `LocalVariableE lement`.
7810 */ 7839 */
7811 class LocalVariableElementImpl extends VariableElementImpl implements LocalVaria bleElement { 7840 class LocalVariableElementImpl extends VariableElementImpl implements LocalVaria bleElement {
7812 /** 7841 /**
7813 * Is `true` if this variable is potentially mutated somewhere in its scope.
7814 */
7815 bool _potentiallyMutatedInScope = false;
7816
7817 /**
7818 * Is `true` if this variable is potentially mutated somewhere in closure.
7819 */
7820 bool _potentiallyMutatedInClosure = false;
7821
7822 /**
7823 * The offset to the beginning of the visible range for this element. 7842 * The offset to the beginning of the visible range for this element.
7824 */ 7843 */
7825 int _visibleRangeOffset = 0; 7844 int _visibleRangeOffset = 0;
7826 7845
7827 /** 7846 /**
7828 * The length of the visible range for this element, or `-1` if this element d oes not have a 7847 * The length of the visible range for this element, or `-1` if this element d oes not have a
7829 * visible range. 7848 * visible range.
7830 */ 7849 */
7831 int _visibleRangeLength = -1; 7850 int _visibleRangeLength = -1;
7832 7851
(...skipping 26 matching lines...) Expand all
7859 7878
7860 @override 7879 @override
7861 SourceRange get visibleRange { 7880 SourceRange get visibleRange {
7862 if (_visibleRangeLength < 0) { 7881 if (_visibleRangeLength < 0) {
7863 return null; 7882 return null;
7864 } 7883 }
7865 return new SourceRange(_visibleRangeOffset, _visibleRangeLength); 7884 return new SourceRange(_visibleRangeOffset, _visibleRangeLength);
7866 } 7885 }
7867 7886
7868 @override 7887 @override
7869 bool get isPotentiallyMutatedInClosure => _potentiallyMutatedInClosure; 7888 bool get isPotentiallyMutatedInClosure => hasModifier(Modifier.POTENTIALLY_MUT ATED_IN_CONTEXT);
7870 7889
7871 @override 7890 @override
7872 bool get isPotentiallyMutatedInScope => _potentiallyMutatedInScope; 7891 bool get isPotentiallyMutatedInScope => hasModifier(Modifier.POTENTIALLY_MUTAT ED_IN_SCOPE);
7873 7892
7874 /** 7893 /**
7875 * Specifies that this variable is potentially mutated somewhere in closure. 7894 * Specifies that this variable is potentially mutated somewhere in closure.
7876 */ 7895 */
7877 void markPotentiallyMutatedInClosure() { 7896 void markPotentiallyMutatedInClosure() {
7878 _potentiallyMutatedInClosure = true; 7897 setModifier(Modifier.POTENTIALLY_MUTATED_IN_CONTEXT, true);
7879 } 7898 }
7880 7899
7881 /** 7900 /**
7882 * Specifies that this variable is potentially mutated somewhere in its scope. 7901 * Specifies that this variable is potentially mutated somewhere in its scope.
7883 */ 7902 */
7884 void markPotentiallyMutatedInScope() { 7903 void markPotentiallyMutatedInScope() {
7885 _potentiallyMutatedInScope = true; 7904 setModifier(Modifier.POTENTIALLY_MUTATED_IN_SCOPE, true);
7886 } 7905 }
7887 7906
7888 /** 7907 /**
7889 * Set the toolkit specific information objects attached to this variable. 7908 * Set the toolkit specific information objects attached to this variable.
7890 * 7909 *
7891 * @param toolkitObjects the toolkit objects attached to this variable 7910 * @param toolkitObjects the toolkit objects attached to this variable
7892 */ 7911 */
7893 void set toolkitObjects(List<ToolkitObjectElement> toolkitObjects) { 7912 void set toolkitObjects(List<ToolkitObjectElement> toolkitObjects) {
7894 CompilationUnitElementImpl unit = getAncestor((element) => element is Compil ationUnitElementImpl); 7913 CompilationUnitElementImpl unit = getAncestor((element) => element is Compil ationUnitElementImpl);
7895 if (unit == null) { 7914 if (unit == null) {
(...skipping 425 matching lines...) Expand 10 before | Expand all | Expand 10 after
8321 static const Modifier GETTER = const Modifier('GETTER', 5); 8340 static const Modifier GETTER = const Modifier('GETTER', 5);
8322 8341
8323 /** 8342 /**
8324 * A flag used for libraries indicating that the defining compilation unit con tains at least one 8343 * A flag used for libraries indicating that the defining compilation unit con tains at least one
8325 * import directive whose URI uses the "dart-ext" scheme. 8344 * import directive whose URI uses the "dart-ext" scheme.
8326 */ 8345 */
8327 static const Modifier HAS_EXT_URI = const Modifier('HAS_EXT_URI', 6); 8346 static const Modifier HAS_EXT_URI = const Modifier('HAS_EXT_URI', 6);
8328 8347
8329 static const Modifier MIXIN = const Modifier('MIXIN', 7); 8348 static const Modifier MIXIN = const Modifier('MIXIN', 7);
8330 8349
8331 static const Modifier REFERENCES_SUPER = const Modifier('REFERENCES_SUPER', 8) ; 8350 /**
8351 * Indicates that the value of a parameter or local variable might be mutated within the context.
8352 */
8353 static const Modifier POTENTIALLY_MUTATED_IN_CONTEXT = const Modifier('POTENTI ALLY_MUTATED_IN_CONTEXT', 8);
8354
8355 /**
8356 * Indicates that the value of a parameter or local variable might be mutated within the scope.
8357 */
8358 static const Modifier POTENTIALLY_MUTATED_IN_SCOPE = const Modifier('POTENTIAL LY_MUTATED_IN_SCOPE', 9);
8359
8360 static const Modifier REFERENCES_SUPER = const Modifier('REFERENCES_SUPER', 10 );
8332 8361
8333 /** 8362 /**
8334 * Indicates that the pseudo-modifier 'set' was applied to the element. 8363 * Indicates that the pseudo-modifier 'set' was applied to the element.
8335 */ 8364 */
8336 static const Modifier SETTER = const Modifier('SETTER', 9); 8365 static const Modifier SETTER = const Modifier('SETTER', 11);
8337 8366
8338 /** 8367 /**
8339 * Indicates that the modifier 'static' was applied to the element. 8368 * Indicates that the modifier 'static' was applied to the element.
8340 */ 8369 */
8341 static const Modifier STATIC = const Modifier('STATIC', 10); 8370 static const Modifier STATIC = const Modifier('STATIC', 12);
8342 8371
8343 /** 8372 /**
8344 * Indicates that the element does not appear in the source code but was impli citly created. For 8373 * Indicates that the element does not appear in the source code but was impli citly created. For
8345 * example, if a class does not define any constructors, an implicit zero-argu ment constructor 8374 * example, if a class does not define any constructors, an implicit zero-argu ment constructor
8346 * will be created and it will be marked as being synthetic. 8375 * will be created and it will be marked as being synthetic.
8347 */ 8376 */
8348 static const Modifier SYNTHETIC = const Modifier('SYNTHETIC', 11); 8377 static const Modifier SYNTHETIC = const Modifier('SYNTHETIC', 13);
8349 8378
8350 static const Modifier TYPEDEF = const Modifier('TYPEDEF', 12); 8379 static const Modifier TYPEDEF = const Modifier('TYPEDEF', 14);
8351 8380
8352 static const List<Modifier> values = const [ 8381 static const List<Modifier> values = const [
8353 ABSTRACT, 8382 ABSTRACT,
8354 CONST, 8383 CONST,
8355 DEFERRED, 8384 DEFERRED,
8356 FACTORY, 8385 FACTORY,
8357 FINAL, 8386 FINAL,
8358 GETTER, 8387 GETTER,
8359 HAS_EXT_URI, 8388 HAS_EXT_URI,
8360 MIXIN, 8389 MIXIN,
8390 POTENTIALLY_MUTATED_IN_CONTEXT,
8391 POTENTIALLY_MUTATED_IN_SCOPE,
8361 REFERENCES_SUPER, 8392 REFERENCES_SUPER,
8362 SETTER, 8393 SETTER,
8363 STATIC, 8394 STATIC,
8364 SYNTHETIC, 8395 SYNTHETIC,
8365 TYPEDEF]; 8396 TYPEDEF];
8366 8397
8367 const Modifier(String name, int ordinal) : super(name, ordinal); 8398 const Modifier(String name, int ordinal) : super(name, ordinal);
8368 } 8399 }
8369 8400
8370 /** 8401 /**
(...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after
8677 * @return `true` if this parameter is an initializing formal parameter 8708 * @return `true` if this parameter is an initializing formal parameter
8678 */ 8709 */
8679 bool get isInitializingFormal; 8710 bool get isInitializingFormal;
8680 } 8711 }
8681 8712
8682 /** 8713 /**
8683 * Instances of the class `ParameterElementImpl` implement a `ParameterElement`. 8714 * Instances of the class `ParameterElementImpl` implement a `ParameterElement`.
8684 */ 8715 */
8685 class ParameterElementImpl extends VariableElementImpl implements ParameterEleme nt { 8716 class ParameterElementImpl extends VariableElementImpl implements ParameterEleme nt {
8686 /** 8717 /**
8687 * Is `true` if this variable is potentially mutated somewhere in its scope.
8688 */
8689 bool _potentiallyMutatedInScope = false;
8690
8691 /**
8692 * Is `true` if this variable is potentially mutated somewhere in closure.
8693 */
8694 bool _potentiallyMutatedInClosure = false;
8695
8696 /**
8697 * An array containing all of the parameters defined by this parameter element . There will only be 8718 * An array containing all of the parameters defined by this parameter element . There will only be
8698 * parameters if this parameter is a function typed parameter. 8719 * parameters if this parameter is a function typed parameter.
8699 */ 8720 */
8700 List<ParameterElement> _parameters = ParameterElementImpl.EMPTY_ARRAY; 8721 List<ParameterElement> _parameters = ParameterElementImpl.EMPTY_ARRAY;
8701 8722
8702 /** 8723 /**
8703 * The kind of this parameter. 8724 * The kind of this parameter.
8704 */ 8725 */
8705 ParameterKind parameterKind; 8726 ParameterKind parameterKind;
8706 8727
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
8769 if (_visibleRangeLength < 0) { 8790 if (_visibleRangeLength < 0) {
8770 return null; 8791 return null;
8771 } 8792 }
8772 return new SourceRange(_visibleRangeOffset, _visibleRangeLength); 8793 return new SourceRange(_visibleRangeOffset, _visibleRangeLength);
8773 } 8794 }
8774 8795
8775 @override 8796 @override
8776 bool get isInitializingFormal => false; 8797 bool get isInitializingFormal => false;
8777 8798
8778 @override 8799 @override
8779 bool get isPotentiallyMutatedInClosure => _potentiallyMutatedInClosure; 8800 bool get isPotentiallyMutatedInClosure => hasModifier(Modifier.POTENTIALLY_MUT ATED_IN_CONTEXT);
8780 8801
8781 @override 8802 @override
8782 bool get isPotentiallyMutatedInScope => _potentiallyMutatedInScope; 8803 bool get isPotentiallyMutatedInScope => hasModifier(Modifier.POTENTIALLY_MUTAT ED_IN_SCOPE);
8783 8804
8784 /** 8805 /**
8785 * Specifies that this variable is potentially mutated somewhere in closure. 8806 * Specifies that this variable is potentially mutated somewhere in closure.
8786 */ 8807 */
8787 void markPotentiallyMutatedInClosure() { 8808 void markPotentiallyMutatedInClosure() {
8788 _potentiallyMutatedInClosure = true; 8809 setModifier(Modifier.POTENTIALLY_MUTATED_IN_CONTEXT, true);
8789 } 8810 }
8790 8811
8791 /** 8812 /**
8792 * Specifies that this variable is potentially mutated somewhere in its scope. 8813 * Specifies that this variable is potentially mutated somewhere in its scope.
8793 */ 8814 */
8794 void markPotentiallyMutatedInScope() { 8815 void markPotentiallyMutatedInScope() {
8795 _potentiallyMutatedInScope = true; 8816 setModifier(Modifier.POTENTIALLY_MUTATED_IN_SCOPE, true);
8796 } 8817 }
8797 8818
8798 /** 8819 /**
8799 * Set the range of the default value for this parameter to the range starting at the given offset 8820 * Set the range of the default value for this parameter to the range starting at the given offset
8800 * with the given length. 8821 * with the given length.
8801 * 8822 *
8802 * @param offset the offset to the beginning of the default value range for th is element 8823 * @param offset the offset to the beginning of the default value range for th is element
8803 * @param length the length of the default value range for this element, or `- 1` if this 8824 * @param length the length of the default value range for this element, or `- 1` if this
8804 * element does not have a default value 8825 * element does not have a default value
8805 */ 8826 */
(...skipping 2118 matching lines...) Expand 10 before | Expand all | Expand 10 after
10924 10945
10925 @override 10946 @override
10926 bool internalEquals(Object object, Set<ElementPair> visitedElementPairs) => id entical(object, this); 10947 bool internalEquals(Object object, Set<ElementPair> visitedElementPairs) => id entical(object, this);
10927 10948
10928 @override 10949 @override
10929 bool internalIsMoreSpecificThan(DartType type, bool withDynamic, Set<TypeImpl_ TypePair> visitedTypePairs) => isSubtypeOf(type); 10950 bool internalIsMoreSpecificThan(DartType type, bool withDynamic, Set<TypeImpl_ TypePair> visitedTypePairs) => isSubtypeOf(type);
10930 10951
10931 @override 10952 @override
10932 bool internalIsSubtypeOf(DartType type, Set<TypeImpl_TypePair> visitedTypePair s) => identical(type, this) || identical(type, DynamicTypeImpl.instance); 10953 bool internalIsSubtypeOf(DartType type, Set<TypeImpl_TypePair> visitedTypePair s) => identical(type, this) || identical(type, DynamicTypeImpl.instance);
10933 } 10954 }
OLDNEW
« no previous file with comments | « pkg/analyzer/lib/src/generated/constant.dart ('k') | pkg/analyzer/lib/src/generated/engine.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698