| Index: pkg/analyzer/lib/src/generated/testing/element_factory.dart
|
| diff --git a/pkg/analyzer/lib/src/generated/testing/element_factory.dart b/pkg/analyzer/lib/src/generated/testing/element_factory.dart
|
| index 44e90c2140bcec114516f0bc3ac9a1554d1a6bd2..a7a52e2be248d874aeecb1c386a66deab7d75b21 100644
|
| --- a/pkg/analyzer/lib/src/generated/testing/element_factory.dart
|
| +++ b/pkg/analyzer/lib/src/generated/testing/element_factory.dart
|
| @@ -28,28 +28,34 @@ class ElementFactory {
|
| */
|
| static ClassElementImpl _objectElement;
|
|
|
| - static ClassElementImpl classElement(String typeName, InterfaceType superclassType, List<String> parameterNames) {
|
| + static ClassElementImpl classElement(String typeName, InterfaceType superclassType, [List<String> parameterNames]) {
|
| ClassElementImpl element = new ClassElementImpl(typeName, 0);
|
| element.supertype = superclassType;
|
| InterfaceTypeImpl type = new InterfaceTypeImpl.con1(element);
|
| element.type = type;
|
| - int count = parameterNames.length;
|
| - if (count > 0) {
|
| - List<TypeParameterElementImpl> typeParameters = new List<TypeParameterElementImpl>(count);
|
| - List<TypeParameterTypeImpl> typeParameterTypes = new List<TypeParameterTypeImpl>(count);
|
| - for (int i = 0; i < count; i++) {
|
| - TypeParameterElementImpl typeParameter = new TypeParameterElementImpl(parameterNames[i], 0);
|
| - typeParameters[i] = typeParameter;
|
| - typeParameterTypes[i] = new TypeParameterTypeImpl(typeParameter);
|
| - typeParameter.type = typeParameterTypes[i];
|
| + if (parameterNames != null) {
|
| + int count = parameterNames.length;
|
| + if (count > 0) {
|
| + List<TypeParameterElementImpl> typeParameters
|
| + = new List<TypeParameterElementImpl>(count);
|
| + List<TypeParameterTypeImpl> typeParameterTypes
|
| + = new List<TypeParameterTypeImpl>(count);
|
| + for (int i = 0; i < count; i++) {
|
| + TypeParameterElementImpl typeParameter
|
| + = new TypeParameterElementImpl(parameterNames[i], 0);
|
| + typeParameters[i] = typeParameter;
|
| + typeParameterTypes[i] = new TypeParameterTypeImpl(typeParameter);
|
| + typeParameter.type = typeParameterTypes[i];
|
| + }
|
| + element.typeParameters = typeParameters;
|
| + type.typeArguments = typeParameterTypes;
|
| }
|
| - element.typeParameters = typeParameters;
|
| - type.typeArguments = typeParameterTypes;
|
| }
|
| return element;
|
| }
|
|
|
| - static ClassElementImpl classElement2(String typeName, List<String> parameterNames) => classElement(typeName, objectType, parameterNames);
|
| + static ClassElementImpl classElement2(String typeName, [List<String> parameterNames])
|
| + => classElement(typeName, objectType, parameterNames);
|
|
|
| static CompilationUnitElementImpl compilationUnit(String fileName) {
|
| Source source = new NonExistingSource(fileName, UriKind.FILE_URI);
|
| @@ -58,28 +64,33 @@ class ElementFactory {
|
| return unit;
|
| }
|
|
|
| - static ConstructorElementImpl constructorElement(ClassElement definingClass, String name, bool isConst, List<DartType> argumentTypes) {
|
| + static ConstructorElementImpl constructorElement(ClassElement definingClass, String name, bool isConst, [List<DartType> argumentTypes]) {
|
| DartType type = definingClass.type;
|
| ConstructorElementImpl constructor = name == null ? new ConstructorElementImpl("", -1) : new ConstructorElementImpl(name, 0);
|
| constructor.const2 = isConst;
|
| - int count = argumentTypes.length;
|
| - List<ParameterElement> parameters = new List<ParameterElement>(count);
|
| - for (int i = 0; i < count; i++) {
|
| - ParameterElementImpl parameter = new ParameterElementImpl("a$i", i);
|
| - parameter.type = argumentTypes[i];
|
| - parameter.parameterKind = ParameterKind.REQUIRED;
|
| - parameters[i] = parameter;
|
| + if (argumentTypes != null) {
|
| + int count = argumentTypes.length;
|
| + List<ParameterElement> parameters = new List<ParameterElement>(count);
|
| + for (int i = 0; i < count; i++) {
|
| + ParameterElementImpl parameter = new ParameterElementImpl("a$i", i);
|
| + parameter.type = argumentTypes[i];
|
| + parameter.parameterKind = ParameterKind.REQUIRED;
|
| + parameters[i] = parameter;
|
| + }
|
| + constructor.parameters = parameters;
|
| + } else {
|
| + constructor.parameters = <ParameterElement>[];
|
| }
|
| - constructor.parameters = parameters;
|
| constructor.returnType = type;
|
| FunctionTypeImpl constructorType = new FunctionTypeImpl.con1(constructor);
|
| constructor.type = constructorType;
|
| return constructor;
|
| }
|
|
|
| - static ConstructorElementImpl constructorElement2(ClassElement definingClass, String name, List<DartType> argumentTypes) => constructorElement(definingClass, name, false, argumentTypes);
|
| + static ConstructorElementImpl constructorElement2(ClassElement definingClass, String name, [List<DartType> argumentTypes])
|
| + => constructorElement(definingClass, name, false, argumentTypes);
|
|
|
| - static ClassElementImpl enumElement(TypeProvider typeProvider, String enumName, List<String> constantNames) {
|
| + static ClassElementImpl enumElement(TypeProvider typeProvider, String enumName, [List<String> constantNames]) {
|
| //
|
| // Build the enum.
|
| //
|
| @@ -111,19 +122,21 @@ class ElementFactory {
|
| //
|
| // Build the enum constants.
|
| //
|
| - int constantCount = constantNames.length;
|
| - for (int i = 0; i < constantCount; i++) {
|
| - String constantName = constantNames[i];
|
| - FieldElementImpl constantElement = new ConstFieldElementImpl.con2(constantName, -1);
|
| - constantElement.static = true;
|
| - constantElement.const3 = true;
|
| - constantElement.type = enumType;
|
| - HashMap<String, DartObjectImpl> fieldMap = new HashMap<String, DartObjectImpl>();
|
| - fieldMap[indexFieldName] = new DartObjectImpl(intType, new IntState(i));
|
| - fieldMap[nameFieldName] = new DartObjectImpl(stringType, new StringState(constantName));
|
| - DartObjectImpl value = new DartObjectImpl(enumType, new GenericState(fieldMap));
|
| - constantElement.evaluationResult = new EvaluationResultImpl.con1(value);
|
| - fields.add(constantElement);
|
| + if (constantNames != null) {
|
| + int constantCount = constantNames.length;
|
| + for (int i = 0; i < constantCount; i++) {
|
| + String constantName = constantNames[i];
|
| + FieldElementImpl constantElement = new ConstFieldElementImpl.con2(constantName, -1);
|
| + constantElement.static = true;
|
| + constantElement.const3 = true;
|
| + constantElement.type = enumType;
|
| + HashMap<String, DartObjectImpl> fieldMap = new HashMap<String, DartObjectImpl>();
|
| + fieldMap[indexFieldName] = new DartObjectImpl(intType, new IntState(i));
|
| + fieldMap[nameFieldName] = new DartObjectImpl(stringType, new StringState(constantName));
|
| + DartObjectImpl value = new DartObjectImpl(enumType, new GenericState(fieldMap));
|
| + constantElement.evaluationResult = new EvaluationResultImpl.con1(value);
|
| + fields.add(constantElement);
|
| + }
|
| }
|
| //
|
| // Finish building the enum.
|
| @@ -133,7 +146,7 @@ class ElementFactory {
|
| return enumElement;
|
| }
|
|
|
| - static ExportElementImpl exportFor(LibraryElement exportedLibrary, List<NamespaceCombinator> combinators) {
|
| + static ExportElementImpl exportFor(LibraryElement exportedLibrary, [List<NamespaceCombinator> combinators = NamespaceCombinator.EMPTY_ARRAY]) {
|
| ExportElementImpl spec = new ExportElementImpl();
|
| spec.exportedLibrary = exportedLibrary;
|
| spec.combinators = combinators;
|
| @@ -258,7 +271,7 @@ class ElementFactory {
|
|
|
| static ClassElementImpl get object {
|
| if (_objectElement == null) {
|
| - _objectElement = classElement("Object", null, []);
|
| + _objectElement = classElement("Object", null);
|
| }
|
| return _objectElement;
|
| }
|
| @@ -287,7 +300,7 @@ class ElementFactory {
|
| return unit;
|
| }
|
|
|
| - static ImportElementImpl importFor(LibraryElement importedLibrary, PrefixElement prefix, List<NamespaceCombinator> combinators) {
|
| + static ImportElementImpl importFor(LibraryElement importedLibrary, PrefixElement prefix, [List<NamespaceCombinator> combinators = NamespaceCombinator.EMPTY_ARRAY]) {
|
| ImportElementImpl spec = new ImportElementImpl(0);
|
| spec.importedLibrary = importedLibrary;
|
| spec.prefix = prefix;
|
| @@ -307,17 +320,21 @@ class ElementFactory {
|
|
|
| static LocalVariableElementImpl localVariableElement2(String name) => new LocalVariableElementImpl(name, 0);
|
|
|
| - static MethodElementImpl methodElement(String methodName, DartType returnType, List<DartType> argumentTypes) {
|
| + static MethodElementImpl methodElement(String methodName, DartType returnType, [List<DartType> argumentTypes]) {
|
| MethodElementImpl method = new MethodElementImpl(methodName, 0);
|
| - int count = argumentTypes.length;
|
| - List<ParameterElement> parameters = new List<ParameterElement>(count);
|
| - for (int i = 0; i < count; i++) {
|
| - ParameterElementImpl parameter = new ParameterElementImpl("a$i", i);
|
| - parameter.type = argumentTypes[i];
|
| - parameter.parameterKind = ParameterKind.REQUIRED;
|
| - parameters[i] = parameter;
|
| + if (argumentTypes == null) {
|
| + method.parameters = ParameterElementImpl.EMPTY_ARRAY;
|
| + } else {
|
| + int count = argumentTypes.length;
|
| + List<ParameterElement> parameters = new List<ParameterElement>(count);
|
| + for (int i = 0; i < count; i++) {
|
| + ParameterElementImpl parameter = new ParameterElementImpl("a$i", i);
|
| + parameter.type = argumentTypes[i];
|
| + parameter.parameterKind = ParameterKind.REQUIRED;
|
| + parameters[i] = parameter;
|
| + }
|
| + method.parameters = parameters;
|
| }
|
| - method.parameters = parameters;
|
| method.returnType = returnType;
|
| FunctionTypeImpl methodType = new FunctionTypeImpl.con1(method);
|
| method.type = methodType;
|
|
|