OLD | NEW |
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, 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 library initialize.build.initializer_plugin; | 4 library initialize.build.initializer_plugin; |
5 | 5 |
6 import 'package:analyzer/src/generated/ast.dart'; | 6 import 'package:analyzer/src/generated/ast.dart'; |
7 import 'package:analyzer/src/generated/element.dart'; | 7 import 'package:analyzer/src/generated/element.dart'; |
8 import 'package:barback/barback.dart'; | 8 import 'package:barback/barback.dart'; |
9 import 'package:code_transformers/resolver.dart'; | 9 import 'package:code_transformers/resolver.dart'; |
10 import 'package:initialize/transformer.dart'; | 10 import 'package:initialize/transformer.dart'; |
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
224 first = false; | 224 first = false; |
225 buffer.write(buildExpression(entry.key, pluginData)); | 225 buffer.write(buildExpression(entry.key, pluginData)); |
226 buffer.write(': '); | 226 buffer.write(': '); |
227 buffer.write(buildExpression(entry.value, pluginData)); | 227 buffer.write(buildExpression(entry.value, pluginData)); |
228 } | 228 } |
229 buffer.write('}'); | 229 buffer.write('}'); |
230 } else if (expression is Identifier) { | 230 } else if (expression is Identifier) { |
231 var element = expression.bestElement; | 231 var element = expression.bestElement; |
232 if (element == null || !element.isPublic) { | 232 if (element == null || !element.isPublic) { |
233 logger.error('Private constants are not supported in intializer ' | 233 logger.error('Private constants are not supported in intializer ' |
234 'constructors, found $element.'); | 234 'constructors, found $element.'); |
235 } | 235 } |
236 libraryPrefixes.putIfAbsent( | 236 libraryPrefixes.putIfAbsent( |
237 element.library, () => 'i${libraryPrefixes.length}'); | 237 element.library, () => 'i${libraryPrefixes.length}'); |
238 | 238 |
239 buffer.write('${libraryPrefixes[element.library]}.'); | 239 buffer.write('${libraryPrefixes[element.library]}.'); |
240 if (element is ClassElement) { | 240 if (element is ClassElement) { |
241 buffer.write(element.name); | 241 buffer.write(element.name); |
242 } else if (element is PropertyAccessorElement) { | 242 } else if (element is PropertyAccessorElement) { |
243 var variable = element.variable; | 243 var variable = element.variable; |
244 if (variable is FieldElement) { | 244 if (variable is FieldElement) { |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
276 return buffer.toString(); | 276 return buffer.toString(); |
277 } | 277 } |
278 | 278 |
279 // Returns an expression for a string value. Wraps it in single quotes and | 279 // Returns an expression for a string value. Wraps it in single quotes and |
280 // escapes existing single quotes and escapes. | 280 // escapes existing single quotes and escapes. |
281 _stringValue(String value) { | 281 _stringValue(String value) { |
282 value = value.replaceAll(r'\', r'\\').replaceAll(r"'", r"\'"); | 282 value = value.replaceAll(r'\', r'\\').replaceAll(r"'", r"\'"); |
283 return "'$value'"; | 283 return "'$value'"; |
284 } | 284 } |
285 } | 285 } |
OLD | NEW |