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

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

Issue 712083003: Create fewer unnecessary lists (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 1 month 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.testing.element_factory; 8 library engine.testing.element_factory;
9 9
10 import 'dart:collection'; 10 import 'dart:collection';
(...skipping 10 matching lines...) Expand all
21 * The class `ElementFactory` defines utility methods used to create elements fo r testing 21 * The class `ElementFactory` defines utility methods used to create elements fo r testing
22 * purposes. The elements that are created are complete in the sense that as muc h of the element 22 * purposes. The elements that are created are complete in the sense that as muc h of the element
23 * model as can be created, given the provided information, has been created. 23 * model as can be created, given the provided information, has been created.
24 */ 24 */
25 class ElementFactory { 25 class ElementFactory {
26 /** 26 /**
27 * The element representing the class 'Object'. 27 * The element representing the class 'Object'.
28 */ 28 */
29 static ClassElementImpl _objectElement; 29 static ClassElementImpl _objectElement;
30 30
31 static ClassElementImpl classElement(String typeName, InterfaceType superclass Type, List<String> parameterNames) { 31 static ClassElementImpl classElement(String typeName, InterfaceType superclass Type, [List<String> parameterNames]) {
32 ClassElementImpl element = new ClassElementImpl(typeName, 0); 32 ClassElementImpl element = new ClassElementImpl(typeName, 0);
33 element.supertype = superclassType; 33 element.supertype = superclassType;
34 InterfaceTypeImpl type = new InterfaceTypeImpl.con1(element); 34 InterfaceTypeImpl type = new InterfaceTypeImpl.con1(element);
35 element.type = type; 35 element.type = type;
36 int count = parameterNames.length; 36 if (parameterNames != null) {
37 if (count > 0) { 37 int count = parameterNames.length;
38 List<TypeParameterElementImpl> typeParameters = new List<TypeParameterElem entImpl>(count); 38 if (count > 0) {
39 List<TypeParameterTypeImpl> typeParameterTypes = new List<TypeParameterTyp eImpl>(count); 39 List<TypeParameterElementImpl> typeParameters
40 for (int i = 0; i < count; i++) { 40 = new List<TypeParameterElementImpl>(count);
41 TypeParameterElementImpl typeParameter = new TypeParameterElementImpl(pa rameterNames[i], 0); 41 List<TypeParameterTypeImpl> typeParameterTypes
42 typeParameters[i] = typeParameter; 42 = new List<TypeParameterTypeImpl>(count);
43 typeParameterTypes[i] = new TypeParameterTypeImpl(typeParameter); 43 for (int i = 0; i < count; i++) {
44 typeParameter.type = typeParameterTypes[i]; 44 TypeParameterElementImpl typeParameter
45 = new TypeParameterElementImpl(parameterNames[i], 0);
46 typeParameters[i] = typeParameter;
47 typeParameterTypes[i] = new TypeParameterTypeImpl(typeParameter);
48 typeParameter.type = typeParameterTypes[i];
49 }
50 element.typeParameters = typeParameters;
51 type.typeArguments = typeParameterTypes;
45 } 52 }
46 element.typeParameters = typeParameters;
47 type.typeArguments = typeParameterTypes;
48 } 53 }
49 return element; 54 return element;
50 } 55 }
51 56
52 static ClassElementImpl classElement2(String typeName, List<String> parameterN ames) => classElement(typeName, objectType, parameterNames); 57 static ClassElementImpl classElement2(String typeName, [List<String> parameter Names])
58 => classElement(typeName, objectType, parameterNames);
53 59
54 static CompilationUnitElementImpl compilationUnit(String fileName) { 60 static CompilationUnitElementImpl compilationUnit(String fileName) {
55 Source source = new NonExistingSource(fileName, UriKind.FILE_URI); 61 Source source = new NonExistingSource(fileName, UriKind.FILE_URI);
56 CompilationUnitElementImpl unit = new CompilationUnitElementImpl(fileName); 62 CompilationUnitElementImpl unit = new CompilationUnitElementImpl(fileName);
57 unit.source = source; 63 unit.source = source;
58 return unit; 64 return unit;
59 } 65 }
60 66
61 static ConstructorElementImpl constructorElement(ClassElement definingClass, S tring name, bool isConst, List<DartType> argumentTypes) { 67 static ConstructorElementImpl constructorElement(ClassElement definingClass, S tring name, bool isConst, [List<DartType> argumentTypes]) {
62 DartType type = definingClass.type; 68 DartType type = definingClass.type;
63 ConstructorElementImpl constructor = name == null ? new ConstructorElementIm pl("", -1) : new ConstructorElementImpl(name, 0); 69 ConstructorElementImpl constructor = name == null ? new ConstructorElementIm pl("", -1) : new ConstructorElementImpl(name, 0);
64 constructor.const2 = isConst; 70 constructor.const2 = isConst;
65 int count = argumentTypes.length; 71 if (argumentTypes != null) {
66 List<ParameterElement> parameters = new List<ParameterElement>(count); 72 int count = argumentTypes.length;
67 for (int i = 0; i < count; i++) { 73 List<ParameterElement> parameters = new List<ParameterElement>(count);
68 ParameterElementImpl parameter = new ParameterElementImpl("a$i", i); 74 for (int i = 0; i < count; i++) {
69 parameter.type = argumentTypes[i]; 75 ParameterElementImpl parameter = new ParameterElementImpl("a$i", i);
70 parameter.parameterKind = ParameterKind.REQUIRED; 76 parameter.type = argumentTypes[i];
71 parameters[i] = parameter; 77 parameter.parameterKind = ParameterKind.REQUIRED;
78 parameters[i] = parameter;
79 }
80 constructor.parameters = parameters;
81 } else {
82 constructor.parameters = <ParameterElement>[];
72 } 83 }
73 constructor.parameters = parameters;
74 constructor.returnType = type; 84 constructor.returnType = type;
75 FunctionTypeImpl constructorType = new FunctionTypeImpl.con1(constructor); 85 FunctionTypeImpl constructorType = new FunctionTypeImpl.con1(constructor);
76 constructor.type = constructorType; 86 constructor.type = constructorType;
77 return constructor; 87 return constructor;
78 } 88 }
79 89
80 static ConstructorElementImpl constructorElement2(ClassElement definingClass, String name, List<DartType> argumentTypes) => constructorElement(definingClass, name, false, argumentTypes); 90 static ConstructorElementImpl constructorElement2(ClassElement definingClass, String name, [List<DartType> argumentTypes])
91 => constructorElement(definingClass, name, false, argumentTypes);
81 92
82 static ClassElementImpl enumElement(TypeProvider typeProvider, String enumName , List<String> constantNames) { 93 static ClassElementImpl enumElement(TypeProvider typeProvider, String enumName , [List<String> constantNames]) {
83 // 94 //
84 // Build the enum. 95 // Build the enum.
85 // 96 //
86 ClassElementImpl enumElement = new ClassElementImpl(enumName, -1); 97 ClassElementImpl enumElement = new ClassElementImpl(enumName, -1);
87 InterfaceTypeImpl enumType = new InterfaceTypeImpl.con1(enumElement); 98 InterfaceTypeImpl enumType = new InterfaceTypeImpl.con1(enumElement);
88 enumElement.type = enumType; 99 enumElement.type = enumType;
89 enumElement.supertype = objectType; 100 enumElement.supertype = objectType;
90 // 101 //
91 // Populate the fields. 102 // Populate the fields.
92 // 103 //
(...skipping 11 matching lines...) Expand all
104 nameField.type = stringType; 115 nameField.type = stringType;
105 fields.add(nameField); 116 fields.add(nameField);
106 FieldElementImpl valuesField = new FieldElementImpl("values", -1); 117 FieldElementImpl valuesField = new FieldElementImpl("values", -1);
107 valuesField.static = true; 118 valuesField.static = true;
108 valuesField.const3 = true; 119 valuesField.const3 = true;
109 valuesField.type = typeProvider.listType.substitute4(<DartType> [enumType]); 120 valuesField.type = typeProvider.listType.substitute4(<DartType> [enumType]);
110 fields.add(valuesField); 121 fields.add(valuesField);
111 // 122 //
112 // Build the enum constants. 123 // Build the enum constants.
113 // 124 //
114 int constantCount = constantNames.length; 125 if (constantNames != null) {
115 for (int i = 0; i < constantCount; i++) { 126 int constantCount = constantNames.length;
116 String constantName = constantNames[i]; 127 for (int i = 0; i < constantCount; i++) {
117 FieldElementImpl constantElement = new ConstFieldElementImpl.con2(constant Name, -1); 128 String constantName = constantNames[i];
118 constantElement.static = true; 129 FieldElementImpl constantElement = new ConstFieldElementImpl.con2(consta ntName, -1);
119 constantElement.const3 = true; 130 constantElement.static = true;
120 constantElement.type = enumType; 131 constantElement.const3 = true;
121 HashMap<String, DartObjectImpl> fieldMap = new HashMap<String, DartObjectI mpl>(); 132 constantElement.type = enumType;
122 fieldMap[indexFieldName] = new DartObjectImpl(intType, new IntState(i)); 133 HashMap<String, DartObjectImpl> fieldMap = new HashMap<String, DartObjec tImpl>();
123 fieldMap[nameFieldName] = new DartObjectImpl(stringType, new StringState(c onstantName)); 134 fieldMap[indexFieldName] = new DartObjectImpl(intType, new IntState(i));
124 DartObjectImpl value = new DartObjectImpl(enumType, new GenericState(field Map)); 135 fieldMap[nameFieldName] = new DartObjectImpl(stringType, new StringState (constantName));
125 constantElement.evaluationResult = new EvaluationResultImpl.con1(value); 136 DartObjectImpl value = new DartObjectImpl(enumType, new GenericState(fie ldMap));
126 fields.add(constantElement); 137 constantElement.evaluationResult = new EvaluationResultImpl.con1(value);
138 fields.add(constantElement);
139 }
127 } 140 }
128 // 141 //
129 // Finish building the enum. 142 // Finish building the enum.
130 // 143 //
131 enumElement.fields = fields; 144 enumElement.fields = fields;
132 // Client code isn't allowed to invoke the constructor, so we do not model i t. 145 // Client code isn't allowed to invoke the constructor, so we do not model i t.
133 return enumElement; 146 return enumElement;
134 } 147 }
135 148
136 static ExportElementImpl exportFor(LibraryElement exportedLibrary, List<Namesp aceCombinator> combinators) { 149 static ExportElementImpl exportFor(LibraryElement exportedLibrary, [List<Names paceCombinator> combinators = NamespaceCombinator.EMPTY_ARRAY]) {
137 ExportElementImpl spec = new ExportElementImpl(); 150 ExportElementImpl spec = new ExportElementImpl();
138 spec.exportedLibrary = exportedLibrary; 151 spec.exportedLibrary = exportedLibrary;
139 spec.combinators = combinators; 152 spec.combinators = combinators;
140 return spec; 153 return spec;
141 } 154 }
142 155
143 static FieldElementImpl fieldElement(String name, bool isStatic, bool isFinal, bool isConst, DartType type) { 156 static FieldElementImpl fieldElement(String name, bool isStatic, bool isFinal, bool isConst, DartType type) {
144 FieldElementImpl field = new FieldElementImpl(name, 0); 157 FieldElementImpl field = new FieldElementImpl(name, 0);
145 field.const3 = isConst; 158 field.const3 = isConst;
146 field.final2 = isFinal; 159 field.final2 = isFinal;
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
251 FunctionElementImpl functionElement = new FunctionElementImpl(functionName, 0); 264 FunctionElementImpl functionElement = new FunctionElementImpl(functionName, 0);
252 functionElement.returnType = returnType == null ? VoidTypeImpl.instance : re turnType; 265 functionElement.returnType = returnType == null ? VoidTypeImpl.instance : re turnType;
253 functionElement.parameters = parameters; 266 functionElement.parameters = parameters;
254 FunctionTypeImpl functionType = new FunctionTypeImpl.con1(functionElement); 267 FunctionTypeImpl functionType = new FunctionTypeImpl.con1(functionElement);
255 functionElement.type = functionType; 268 functionElement.type = functionType;
256 return functionElement; 269 return functionElement;
257 } 270 }
258 271
259 static ClassElementImpl get object { 272 static ClassElementImpl get object {
260 if (_objectElement == null) { 273 if (_objectElement == null) {
261 _objectElement = classElement("Object", null, []); 274 _objectElement = classElement("Object", null);
262 } 275 }
263 return _objectElement; 276 return _objectElement;
264 } 277 }
265 278
266 static InterfaceType get objectType => object.type; 279 static InterfaceType get objectType => object.type;
267 280
268 static PropertyAccessorElementImpl getterElement(String name, bool isStatic, D artType type) { 281 static PropertyAccessorElementImpl getterElement(String name, bool isStatic, D artType type) {
269 FieldElementImpl field = new FieldElementImpl(name, -1); 282 FieldElementImpl field = new FieldElementImpl(name, -1);
270 field.static = isStatic; 283 field.static = isStatic;
271 field.synthetic = true; 284 field.synthetic = true;
272 field.type = type; 285 field.type = type;
273 PropertyAccessorElementImpl getter = new PropertyAccessorElementImpl.forVari able(field); 286 PropertyAccessorElementImpl getter = new PropertyAccessorElementImpl.forVari able(field);
274 getter.getter = true; 287 getter.getter = true;
275 getter.variable = field; 288 getter.variable = field;
276 getter.returnType = type; 289 getter.returnType = type;
277 field.getter = getter; 290 field.getter = getter;
278 FunctionTypeImpl getterType = new FunctionTypeImpl.con1(getter); 291 FunctionTypeImpl getterType = new FunctionTypeImpl.con1(getter);
279 getter.type = getterType; 292 getter.type = getterType;
280 return getter; 293 return getter;
281 } 294 }
282 295
283 static HtmlElementImpl htmlUnit(AnalysisContext context, String fileName) { 296 static HtmlElementImpl htmlUnit(AnalysisContext context, String fileName) {
284 Source source = new NonExistingSource(fileName, UriKind.FILE_URI); 297 Source source = new NonExistingSource(fileName, UriKind.FILE_URI);
285 HtmlElementImpl unit = new HtmlElementImpl(context, fileName); 298 HtmlElementImpl unit = new HtmlElementImpl(context, fileName);
286 unit.source = source; 299 unit.source = source;
287 return unit; 300 return unit;
288 } 301 }
289 302
290 static ImportElementImpl importFor(LibraryElement importedLibrary, PrefixEleme nt prefix, List<NamespaceCombinator> combinators) { 303 static ImportElementImpl importFor(LibraryElement importedLibrary, PrefixEleme nt prefix, [List<NamespaceCombinator> combinators = NamespaceCombinator.EMPTY_AR RAY]) {
291 ImportElementImpl spec = new ImportElementImpl(0); 304 ImportElementImpl spec = new ImportElementImpl(0);
292 spec.importedLibrary = importedLibrary; 305 spec.importedLibrary = importedLibrary;
293 spec.prefix = prefix; 306 spec.prefix = prefix;
294 spec.combinators = combinators; 307 spec.combinators = combinators;
295 return spec; 308 return spec;
296 } 309 }
297 310
298 static LibraryElementImpl library(AnalysisContext context, String libraryName) { 311 static LibraryElementImpl library(AnalysisContext context, String libraryName) {
299 String fileName = "/$libraryName.dart"; 312 String fileName = "/$libraryName.dart";
300 CompilationUnitElementImpl unit = compilationUnit(fileName); 313 CompilationUnitElementImpl unit = compilationUnit(fileName);
301 LibraryElementImpl library = new LibraryElementImpl(context, libraryName, 0) ; 314 LibraryElementImpl library = new LibraryElementImpl(context, libraryName, 0) ;
302 library.definingCompilationUnit = unit; 315 library.definingCompilationUnit = unit;
303 return library; 316 return library;
304 } 317 }
305 318
306 static LocalVariableElementImpl localVariableElement(Identifier name) => new L ocalVariableElementImpl.forNode(name); 319 static LocalVariableElementImpl localVariableElement(Identifier name) => new L ocalVariableElementImpl.forNode(name);
307 320
308 static LocalVariableElementImpl localVariableElement2(String name) => new Loca lVariableElementImpl(name, 0); 321 static LocalVariableElementImpl localVariableElement2(String name) => new Loca lVariableElementImpl(name, 0);
309 322
310 static MethodElementImpl methodElement(String methodName, DartType returnType, List<DartType> argumentTypes) { 323 static MethodElementImpl methodElement(String methodName, DartType returnType, [List<DartType> argumentTypes]) {
311 MethodElementImpl method = new MethodElementImpl(methodName, 0); 324 MethodElementImpl method = new MethodElementImpl(methodName, 0);
312 int count = argumentTypes.length; 325 if (argumentTypes == null) {
313 List<ParameterElement> parameters = new List<ParameterElement>(count); 326 method.parameters = ParameterElementImpl.EMPTY_ARRAY;
314 for (int i = 0; i < count; i++) { 327 } else {
315 ParameterElementImpl parameter = new ParameterElementImpl("a$i", i); 328 int count = argumentTypes.length;
316 parameter.type = argumentTypes[i]; 329 List<ParameterElement> parameters = new List<ParameterElement>(count);
317 parameter.parameterKind = ParameterKind.REQUIRED; 330 for (int i = 0; i < count; i++) {
318 parameters[i] = parameter; 331 ParameterElementImpl parameter = new ParameterElementImpl("a$i", i);
332 parameter.type = argumentTypes[i];
333 parameter.parameterKind = ParameterKind.REQUIRED;
334 parameters[i] = parameter;
335 }
336 method.parameters = parameters;
319 } 337 }
320 method.parameters = parameters;
321 method.returnType = returnType; 338 method.returnType = returnType;
322 FunctionTypeImpl methodType = new FunctionTypeImpl.con1(method); 339 FunctionTypeImpl methodType = new FunctionTypeImpl.con1(method);
323 method.type = methodType; 340 method.type = methodType;
324 return method; 341 return method;
325 } 342 }
326 343
327 static MethodElementImpl methodElementWithParameters(String methodName, List<D artType> typeArguments, DartType returnType, List<ParameterElement> parameters) { 344 static MethodElementImpl methodElementWithParameters(String methodName, List<D artType> typeArguments, DartType returnType, List<ParameterElement> parameters) {
328 MethodElementImpl method = new MethodElementImpl(methodName, 0); 345 MethodElementImpl method = new MethodElementImpl(methodName, 0);
329 method.parameters = parameters; 346 method.parameters = parameters;
330 method.returnType = returnType; 347 method.returnType = returnType;
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
423 setter.synthetic = true; 440 setter.synthetic = true;
424 setter.variable = variable; 441 setter.variable = variable;
425 setter.parameters = <ParameterElement> [requiredParameter2("_$name", type) ]; 442 setter.parameters = <ParameterElement> [requiredParameter2("_$name", type) ];
426 setter.returnType = VoidTypeImpl.instance; 443 setter.returnType = VoidTypeImpl.instance;
427 setter.type = new FunctionTypeImpl.con1(setter); 444 setter.type = new FunctionTypeImpl.con1(setter);
428 variable.setter = setter; 445 variable.setter = setter;
429 } 446 }
430 return variable; 447 return variable;
431 } 448 }
432 } 449 }
OLDNEW
« no previous file with comments | « pkg/analyzer/lib/src/generated/testing/ast_factory.dart ('k') | pkg/analyzer/lib/src/generated/testing/html_factory.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698