| OLD | NEW |
| 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 library analyzer.src.dart.element.builder; | 5 library analyzer.src.dart.element.builder; |
| 6 | 6 |
| 7 import 'dart:collection'; | 7 import 'dart:collection'; |
| 8 | 8 |
| 9 import 'package:analyzer/dart/ast/ast.dart'; | 9 import 'package:analyzer/dart/ast/ast.dart'; |
| 10 import 'package:analyzer/dart/ast/token.dart'; | 10 import 'package:analyzer/dart/ast/token.dart'; |
| (...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 147 element.metadata = _createElementAnnotations(node.metadata); | 147 element.metadata = _createElementAnnotations(node.metadata); |
| 148 setElementDocumentationComment(element, node); | 148 setElementDocumentationComment(element, node); |
| 149 if (node.externalKeyword != null) { | 149 if (node.externalKeyword != null) { |
| 150 element.external = true; | 150 element.external = true; |
| 151 } | 151 } |
| 152 if (node.factoryKeyword != null) { | 152 if (node.factoryKeyword != null) { |
| 153 element.factory = true; | 153 element.factory = true; |
| 154 } | 154 } |
| 155 element.functions = holder.functions; | 155 element.functions = holder.functions; |
| 156 element.labels = holder.labels; | 156 element.labels = holder.labels; |
| 157 element.localVariables = holder.localVariables; | 157 element.encloseElements(holder.localVariables); |
| 158 element.parameters = holder.parameters; | 158 element.parameters = holder.parameters; |
| 159 element.isConst = node.constKeyword != null; | 159 element.isConst = node.constKeyword != null; |
| 160 element.isCycleFree = element.isConst; | 160 element.isCycleFree = element.isConst; |
| 161 if (body.isAsynchronous) { | 161 if (body.isAsynchronous) { |
| 162 element.asynchronous = true; | 162 element.asynchronous = true; |
| 163 } | 163 } |
| 164 if (body.isGenerator) { | 164 if (body.isGenerator) { |
| 165 element.generator = true; | 165 element.generator = true; |
| 166 } | 166 } |
| 167 _currentHolder.addConstructor(element); | 167 _currentHolder.addConstructor(element); |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 241 FunctionElementImpl element = | 241 FunctionElementImpl element = |
| 242 new FunctionElementImpl.forNode(functionName); | 242 new FunctionElementImpl.forNode(functionName); |
| 243 _setCodeRange(element, node); | 243 _setCodeRange(element, node); |
| 244 element.metadata = _createElementAnnotations(node.metadata); | 244 element.metadata = _createElementAnnotations(node.metadata); |
| 245 setElementDocumentationComment(element, node); | 245 setElementDocumentationComment(element, node); |
| 246 if (node.externalKeyword != null || body is NativeFunctionBody) { | 246 if (node.externalKeyword != null || body is NativeFunctionBody) { |
| 247 element.external = true; | 247 element.external = true; |
| 248 } | 248 } |
| 249 element.functions = holder.functions; | 249 element.functions = holder.functions; |
| 250 element.labels = holder.labels; | 250 element.labels = holder.labels; |
| 251 element.localVariables = holder.localVariables; | 251 element.encloseElements(holder.localVariables); |
| 252 element.parameters = holder.parameters; | 252 element.parameters = holder.parameters; |
| 253 element.typeParameters = holder.typeParameters; | 253 element.typeParameters = holder.typeParameters; |
| 254 if (body.isAsynchronous) { | 254 if (body.isAsynchronous) { |
| 255 element.asynchronous = true; | 255 element.asynchronous = true; |
| 256 } | 256 } |
| 257 if (body.isGenerator) { | 257 if (body.isGenerator) { |
| 258 element.generator = true; | 258 element.generator = true; |
| 259 } | 259 } |
| 260 if (node.returnType == null) { | 260 if (node.returnType == null) { |
| 261 element.hasImplicitReturnType = true; | 261 element.hasImplicitReturnType = true; |
| (...skipping 20 matching lines...) Expand all Loading... |
| 282 PropertyAccessorElementImpl getter = | 282 PropertyAccessorElementImpl getter = |
| 283 new PropertyAccessorElementImpl.forNode(propertyNameNode); | 283 new PropertyAccessorElementImpl.forNode(propertyNameNode); |
| 284 _setCodeRange(getter, node); | 284 _setCodeRange(getter, node); |
| 285 getter.metadata = _createElementAnnotations(node.metadata); | 285 getter.metadata = _createElementAnnotations(node.metadata); |
| 286 setElementDocumentationComment(getter, node); | 286 setElementDocumentationComment(getter, node); |
| 287 if (node.externalKeyword != null || body is NativeFunctionBody) { | 287 if (node.externalKeyword != null || body is NativeFunctionBody) { |
| 288 getter.external = true; | 288 getter.external = true; |
| 289 } | 289 } |
| 290 getter.functions = holder.functions; | 290 getter.functions = holder.functions; |
| 291 getter.labels = holder.labels; | 291 getter.labels = holder.labels; |
| 292 getter.localVariables = holder.localVariables; | 292 getter.encloseElements(holder.localVariables); |
| 293 if (body.isAsynchronous) { | 293 if (body.isAsynchronous) { |
| 294 getter.asynchronous = true; | 294 getter.asynchronous = true; |
| 295 } | 295 } |
| 296 if (body.isGenerator) { | 296 if (body.isGenerator) { |
| 297 getter.generator = true; | 297 getter.generator = true; |
| 298 } | 298 } |
| 299 getter.variable = variable; | 299 getter.variable = variable; |
| 300 getter.getter = true; | 300 getter.getter = true; |
| 301 getter.isStatic = true; | 301 getter.isStatic = true; |
| 302 variable.getter = getter; | 302 variable.getter = getter; |
| 303 if (node.returnType == null) { | 303 if (node.returnType == null) { |
| 304 getter.hasImplicitReturnType = true; | 304 getter.hasImplicitReturnType = true; |
| 305 } | 305 } |
| 306 _currentHolder.addAccessor(getter); | 306 _currentHolder.addAccessor(getter); |
| 307 expression.element = getter; | 307 expression.element = getter; |
| 308 propertyNameNode.staticElement = getter; | 308 propertyNameNode.staticElement = getter; |
| 309 } else { | 309 } else { |
| 310 PropertyAccessorElementImpl setter = | 310 PropertyAccessorElementImpl setter = |
| 311 new PropertyAccessorElementImpl.forNode(propertyNameNode); | 311 new PropertyAccessorElementImpl.forNode(propertyNameNode); |
| 312 _setCodeRange(setter, node); | 312 _setCodeRange(setter, node); |
| 313 setter.metadata = _createElementAnnotations(node.metadata); | 313 setter.metadata = _createElementAnnotations(node.metadata); |
| 314 setElementDocumentationComment(setter, node); | 314 setElementDocumentationComment(setter, node); |
| 315 if (node.externalKeyword != null || body is NativeFunctionBody) { | 315 if (node.externalKeyword != null || body is NativeFunctionBody) { |
| 316 setter.external = true; | 316 setter.external = true; |
| 317 } | 317 } |
| 318 setter.functions = holder.functions; | 318 setter.functions = holder.functions; |
| 319 setter.labels = holder.labels; | 319 setter.labels = holder.labels; |
| 320 setter.localVariables = holder.localVariables; | 320 setter.encloseElements(holder.localVariables); |
| 321 setter.parameters = holder.parameters; | 321 setter.parameters = holder.parameters; |
| 322 if (body.isAsynchronous) { | 322 if (body.isAsynchronous) { |
| 323 setter.asynchronous = true; | 323 setter.asynchronous = true; |
| 324 } | 324 } |
| 325 if (body.isGenerator) { | 325 if (body.isGenerator) { |
| 326 setter.generator = true; | 326 setter.generator = true; |
| 327 } | 327 } |
| 328 setter.variable = variable; | 328 setter.variable = variable; |
| 329 setter.setter = true; | 329 setter.setter = true; |
| 330 setter.isStatic = true; | 330 setter.isStatic = true; |
| (...skipping 20 matching lines...) Expand all Loading... |
| 351 return super.visitFunctionExpression(node); | 351 return super.visitFunctionExpression(node); |
| 352 } | 352 } |
| 353 ElementHolder holder = new ElementHolder(); | 353 ElementHolder holder = new ElementHolder(); |
| 354 _visitChildren(holder, node); | 354 _visitChildren(holder, node); |
| 355 FunctionBody body = node.body; | 355 FunctionBody body = node.body; |
| 356 FunctionElementImpl element = | 356 FunctionElementImpl element = |
| 357 new FunctionElementImpl.forOffset(node.beginToken.offset); | 357 new FunctionElementImpl.forOffset(node.beginToken.offset); |
| 358 _setCodeRange(element, node); | 358 _setCodeRange(element, node); |
| 359 element.functions = holder.functions; | 359 element.functions = holder.functions; |
| 360 element.labels = holder.labels; | 360 element.labels = holder.labels; |
| 361 element.localVariables = holder.localVariables; | 361 element.encloseElements(holder.localVariables); |
| 362 element.parameters = holder.parameters; | 362 element.parameters = holder.parameters; |
| 363 element.typeParameters = holder.typeParameters; | 363 element.typeParameters = holder.typeParameters; |
| 364 if (body.isAsynchronous) { | 364 if (body.isAsynchronous) { |
| 365 element.asynchronous = true; | 365 element.asynchronous = true; |
| 366 } | 366 } |
| 367 if (body.isGenerator) { | 367 if (body.isGenerator) { |
| 368 element.generator = true; | 368 element.generator = true; |
| 369 } | 369 } |
| 370 element.type = new FunctionTypeImpl(element); | 370 element.type = new FunctionTypeImpl(element); |
| 371 element.hasImplicitReturnType = true; | 371 element.hasImplicitReturnType = true; |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 453 new MethodElementImpl(nameOfMethod, methodName.offset); | 453 new MethodElementImpl(nameOfMethod, methodName.offset); |
| 454 _setCodeRange(element, node); | 454 _setCodeRange(element, node); |
| 455 element.metadata = _createElementAnnotations(node.metadata); | 455 element.metadata = _createElementAnnotations(node.metadata); |
| 456 setElementDocumentationComment(element, node); | 456 setElementDocumentationComment(element, node); |
| 457 element.abstract = node.isAbstract; | 457 element.abstract = node.isAbstract; |
| 458 if (node.externalKeyword != null || body is NativeFunctionBody) { | 458 if (node.externalKeyword != null || body is NativeFunctionBody) { |
| 459 element.external = true; | 459 element.external = true; |
| 460 } | 460 } |
| 461 element.functions = holder.functions; | 461 element.functions = holder.functions; |
| 462 element.labels = holder.labels; | 462 element.labels = holder.labels; |
| 463 element.localVariables = holder.localVariables; | 463 element.encloseElements(holder.localVariables); |
| 464 element.parameters = holder.parameters; | 464 element.parameters = holder.parameters; |
| 465 element.isStatic = isStatic; | 465 element.isStatic = isStatic; |
| 466 element.typeParameters = holder.typeParameters; | 466 element.typeParameters = holder.typeParameters; |
| 467 if (body.isAsynchronous) { | 467 if (body.isAsynchronous) { |
| 468 element.asynchronous = true; | 468 element.asynchronous = true; |
| 469 } | 469 } |
| 470 if (body.isGenerator) { | 470 if (body.isGenerator) { |
| 471 element.generator = true; | 471 element.generator = true; |
| 472 } | 472 } |
| 473 if (node.returnType == null) { | 473 if (node.returnType == null) { |
| (...skipping 17 matching lines...) Expand all Loading... |
| 491 PropertyAccessorElementImpl getter = | 491 PropertyAccessorElementImpl getter = |
| 492 new PropertyAccessorElementImpl.forNode(propertyNameNode); | 492 new PropertyAccessorElementImpl.forNode(propertyNameNode); |
| 493 _setCodeRange(getter, node); | 493 _setCodeRange(getter, node); |
| 494 getter.metadata = _createElementAnnotations(node.metadata); | 494 getter.metadata = _createElementAnnotations(node.metadata); |
| 495 setElementDocumentationComment(getter, node); | 495 setElementDocumentationComment(getter, node); |
| 496 if (node.externalKeyword != null || body is NativeFunctionBody) { | 496 if (node.externalKeyword != null || body is NativeFunctionBody) { |
| 497 getter.external = true; | 497 getter.external = true; |
| 498 } | 498 } |
| 499 getter.functions = holder.functions; | 499 getter.functions = holder.functions; |
| 500 getter.labels = holder.labels; | 500 getter.labels = holder.labels; |
| 501 getter.localVariables = holder.localVariables; | 501 getter.encloseElements(holder.localVariables); |
| 502 if (body.isAsynchronous) { | 502 if (body.isAsynchronous) { |
| 503 getter.asynchronous = true; | 503 getter.asynchronous = true; |
| 504 } | 504 } |
| 505 if (body.isGenerator) { | 505 if (body.isGenerator) { |
| 506 getter.generator = true; | 506 getter.generator = true; |
| 507 } | 507 } |
| 508 getter.variable = field; | 508 getter.variable = field; |
| 509 getter.abstract = node.isAbstract; | 509 getter.abstract = node.isAbstract; |
| 510 getter.getter = true; | 510 getter.getter = true; |
| 511 getter.isStatic = isStatic; | 511 getter.isStatic = isStatic; |
| 512 field.getter = getter; | 512 field.getter = getter; |
| 513 if (node.returnType == null) { | 513 if (node.returnType == null) { |
| 514 getter.hasImplicitReturnType = true; | 514 getter.hasImplicitReturnType = true; |
| 515 } | 515 } |
| 516 _currentHolder.addAccessor(getter); | 516 _currentHolder.addAccessor(getter); |
| 517 propertyNameNode.staticElement = getter; | 517 propertyNameNode.staticElement = getter; |
| 518 } else { | 518 } else { |
| 519 PropertyAccessorElementImpl setter = | 519 PropertyAccessorElementImpl setter = |
| 520 new PropertyAccessorElementImpl.forNode(propertyNameNode); | 520 new PropertyAccessorElementImpl.forNode(propertyNameNode); |
| 521 _setCodeRange(setter, node); | 521 _setCodeRange(setter, node); |
| 522 setter.metadata = _createElementAnnotations(node.metadata); | 522 setter.metadata = _createElementAnnotations(node.metadata); |
| 523 setElementDocumentationComment(setter, node); | 523 setElementDocumentationComment(setter, node); |
| 524 if (node.externalKeyword != null || body is NativeFunctionBody) { | 524 if (node.externalKeyword != null || body is NativeFunctionBody) { |
| 525 setter.external = true; | 525 setter.external = true; |
| 526 } | 526 } |
| 527 setter.functions = holder.functions; | 527 setter.functions = holder.functions; |
| 528 setter.labels = holder.labels; | 528 setter.labels = holder.labels; |
| 529 setter.localVariables = holder.localVariables; | 529 setter.encloseElements(holder.localVariables); |
| 530 setter.parameters = holder.parameters; | 530 setter.parameters = holder.parameters; |
| 531 if (body.isAsynchronous) { | 531 if (body.isAsynchronous) { |
| 532 setter.asynchronous = true; | 532 setter.asynchronous = true; |
| 533 } | 533 } |
| 534 if (body.isGenerator) { | 534 if (body.isGenerator) { |
| 535 setter.generator = true; | 535 setter.generator = true; |
| 536 } | 536 } |
| 537 setter.variable = field; | 537 setter.variable = field; |
| 538 setter.abstract = node.isAbstract; | 538 setter.abstract = node.isAbstract; |
| 539 setter.setter = true; | 539 setter.setter = true; |
| (...skipping 627 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1167 FunctionElementImpl element = new FunctionElementImpl.forNode(node.name); | 1167 FunctionElementImpl element = new FunctionElementImpl.forNode(node.name); |
| 1168 _setCodeRange(element, node); | 1168 _setCodeRange(element, node); |
| 1169 setElementDocumentationComment(element, node); | 1169 setElementDocumentationComment(element, node); |
| 1170 element.metadata = _createElementAnnotations(node.metadata); | 1170 element.metadata = _createElementAnnotations(node.metadata); |
| 1171 FunctionBody body = expression.body; | 1171 FunctionBody body = expression.body; |
| 1172 if (node.externalKeyword != null || body is NativeFunctionBody) { | 1172 if (node.externalKeyword != null || body is NativeFunctionBody) { |
| 1173 element.external = true; | 1173 element.external = true; |
| 1174 } | 1174 } |
| 1175 element.functions = holder.functions; | 1175 element.functions = holder.functions; |
| 1176 element.labels = holder.labels; | 1176 element.labels = holder.labels; |
| 1177 element.localVariables = holder.localVariables; | 1177 element.encloseElements(holder.localVariables); |
| 1178 element.parameters = holder.parameters; | 1178 element.parameters = holder.parameters; |
| 1179 element.typeParameters = holder.typeParameters; | 1179 element.typeParameters = holder.typeParameters; |
| 1180 | 1180 |
| 1181 if (body.isAsynchronous) { | 1181 if (body.isAsynchronous) { |
| 1182 element.asynchronous = body.isAsynchronous; | 1182 element.asynchronous = body.isAsynchronous; |
| 1183 } | 1183 } |
| 1184 if (body.isGenerator) { | 1184 if (body.isGenerator) { |
| 1185 element.generator = true; | 1185 element.generator = true; |
| 1186 } | 1186 } |
| 1187 | 1187 |
| (...skipping 23 matching lines...) Expand all Loading... |
| 1211 return super.visitFunctionExpression(node); | 1211 return super.visitFunctionExpression(node); |
| 1212 } | 1212 } |
| 1213 | 1213 |
| 1214 ElementHolder holder = new ElementHolder(); | 1214 ElementHolder holder = new ElementHolder(); |
| 1215 _visitChildren(holder, node); | 1215 _visitChildren(holder, node); |
| 1216 FunctionElementImpl element = | 1216 FunctionElementImpl element = |
| 1217 new FunctionElementImpl.forOffset(node.beginToken.offset); | 1217 new FunctionElementImpl.forOffset(node.beginToken.offset); |
| 1218 _setCodeRange(element, node); | 1218 _setCodeRange(element, node); |
| 1219 element.functions = holder.functions; | 1219 element.functions = holder.functions; |
| 1220 element.labels = holder.labels; | 1220 element.labels = holder.labels; |
| 1221 element.localVariables = holder.localVariables; | 1221 element.encloseElements(holder.localVariables); |
| 1222 element.parameters = holder.parameters; | 1222 element.parameters = holder.parameters; |
| 1223 element.typeParameters = holder.typeParameters; | 1223 element.typeParameters = holder.typeParameters; |
| 1224 | 1224 |
| 1225 FunctionBody body = node.body; | 1225 FunctionBody body = node.body; |
| 1226 if (body.isAsynchronous) { | 1226 if (body.isAsynchronous) { |
| 1227 element.asynchronous = true; | 1227 element.asynchronous = true; |
| 1228 } | 1228 } |
| 1229 if (body.isGenerator) { | 1229 if (body.isGenerator) { |
| 1230 element.generator = true; | 1230 element.generator = true; |
| 1231 } | 1231 } |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1334 void buildParameterInitializer( | 1334 void buildParameterInitializer( |
| 1335 ParameterElementImpl parameter, Expression defaultValue) { | 1335 ParameterElementImpl parameter, Expression defaultValue) { |
| 1336 if (defaultValue != null) { | 1336 if (defaultValue != null) { |
| 1337 ElementHolder holder = new ElementHolder(); | 1337 ElementHolder holder = new ElementHolder(); |
| 1338 _visit(holder, defaultValue); | 1338 _visit(holder, defaultValue); |
| 1339 FunctionElementImpl initializer = | 1339 FunctionElementImpl initializer = |
| 1340 new FunctionElementImpl.forOffset(defaultValue.beginToken.offset); | 1340 new FunctionElementImpl.forOffset(defaultValue.beginToken.offset); |
| 1341 initializer.hasImplicitReturnType = true; | 1341 initializer.hasImplicitReturnType = true; |
| 1342 initializer.functions = holder.functions; | 1342 initializer.functions = holder.functions; |
| 1343 initializer.labels = holder.labels; | 1343 initializer.labels = holder.labels; |
| 1344 initializer.localVariables = holder.localVariables; | 1344 initializer.encloseElements(holder.localVariables); |
| 1345 initializer.parameters = holder.parameters; | 1345 initializer.parameters = holder.parameters; |
| 1346 initializer.isSynthetic = true; | 1346 initializer.isSynthetic = true; |
| 1347 initializer.type = new FunctionTypeImpl(initializer); | 1347 initializer.type = new FunctionTypeImpl(initializer); |
| 1348 parameter.initializer = initializer; | 1348 parameter.initializer = initializer; |
| 1349 parameter.defaultValueCode = defaultValue.toSource(); | 1349 parameter.defaultValueCode = defaultValue.toSource(); |
| 1350 holder.validate(); | 1350 holder.validate(); |
| 1351 } | 1351 } |
| 1352 } | 1352 } |
| 1353 | 1353 |
| 1354 /** | 1354 /** |
| 1355 * If the [initializer] is not `null`, build the [FunctionElementImpl] that | 1355 * If the [initializer] is not `null`, build the [FunctionElementImpl] that |
| 1356 * corresponds it, and set it as the initializer for the [variable]. | 1356 * corresponds it, and set it as the initializer for the [variable]. |
| 1357 */ | 1357 */ |
| 1358 void buildVariableInitializer( | 1358 void buildVariableInitializer( |
| 1359 VariableElementImpl variable, Expression initializer) { | 1359 VariableElementImpl variable, Expression initializer) { |
| 1360 if (initializer != null) { | 1360 if (initializer != null) { |
| 1361 ElementHolder holder = new ElementHolder(); | 1361 ElementHolder holder = new ElementHolder(); |
| 1362 _visit(holder, initializer); | 1362 _visit(holder, initializer); |
| 1363 FunctionElementImpl initializerElement = | 1363 FunctionElementImpl initializerElement = |
| 1364 new FunctionElementImpl.forOffset(initializer.beginToken.offset); | 1364 new FunctionElementImpl.forOffset(initializer.beginToken.offset); |
| 1365 initializerElement.hasImplicitReturnType = true; | 1365 initializerElement.hasImplicitReturnType = true; |
| 1366 initializerElement.functions = holder.functions; | 1366 initializerElement.functions = holder.functions; |
| 1367 initializerElement.labels = holder.labels; | 1367 initializerElement.labels = holder.labels; |
| 1368 initializerElement.localVariables = holder.localVariables; | 1368 initializerElement.encloseElements(holder.localVariables); |
| 1369 initializerElement.isSynthetic = true; | 1369 initializerElement.isSynthetic = true; |
| 1370 initializerElement.type = new FunctionTypeImpl(initializerElement); | 1370 initializerElement.type = new FunctionTypeImpl(initializerElement); |
| 1371 variable.initializer = initializerElement; | 1371 variable.initializer = initializerElement; |
| 1372 holder.validate(); | 1372 holder.validate(); |
| 1373 } | 1373 } |
| 1374 } | 1374 } |
| 1375 | 1375 |
| 1376 @override | 1376 @override |
| 1377 Object visitDefaultFormalParameter(DefaultFormalParameter node) { | 1377 Object visitDefaultFormalParameter(DefaultFormalParameter node) { |
| 1378 NormalFormalParameter normalParameter = node.parameter; | 1378 NormalFormalParameter normalParameter = node.parameter; |
| (...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1668 return null; | 1668 return null; |
| 1669 } | 1669 } |
| 1670 | 1670 |
| 1671 /** | 1671 /** |
| 1672 * Return the lexical identifiers associated with the given [identifiers]. | 1672 * Return the lexical identifiers associated with the given [identifiers]. |
| 1673 */ | 1673 */ |
| 1674 static List<String> _getIdentifiers(NodeList<SimpleIdentifier> identifiers) { | 1674 static List<String> _getIdentifiers(NodeList<SimpleIdentifier> identifiers) { |
| 1675 return identifiers.map((identifier) => identifier.name).toList(); | 1675 return identifiers.map((identifier) => identifier.name).toList(); |
| 1676 } | 1676 } |
| 1677 } | 1677 } |
| OLD | NEW |