| 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 | 4 |
| 5 library summary_resynthesizer; | 5 library summary_resynthesizer; |
| 6 | 6 |
| 7 import 'package:analyzer/analyzer.dart'; | 7 import 'package:analyzer/analyzer.dart'; |
| 8 import 'package:analyzer/src/generated/element.dart'; | 8 import 'package:analyzer/src/generated/element.dart'; |
| 9 import 'package:analyzer/src/generated/element_handle.dart'; | 9 import 'package:analyzer/src/generated/element_handle.dart'; |
| 10 import 'package:analyzer/src/generated/engine.dart'; | 10 import 'package:analyzer/src/generated/engine.dart'; |
| (...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 258 for (UnlinkedVariable serializedVariable in serializedClass.fields) { | 258 for (UnlinkedVariable serializedVariable in serializedClass.fields) { |
| 259 buildVariable(serializedVariable, memberHolder); | 259 buildVariable(serializedVariable, memberHolder); |
| 260 } | 260 } |
| 261 if (!serializedClass.isMixinApplication) { | 261 if (!serializedClass.isMixinApplication) { |
| 262 if (!constructorFound) { | 262 if (!constructorFound) { |
| 263 // Synthesize implicit constructors. | 263 // Synthesize implicit constructors. |
| 264 ConstructorElementImpl constructor = | 264 ConstructorElementImpl constructor = |
| 265 new ConstructorElementImpl('', -1); | 265 new ConstructorElementImpl('', -1); |
| 266 constructor.synthetic = true; | 266 constructor.synthetic = true; |
| 267 constructor.returnType = correspondingType; | 267 constructor.returnType = correspondingType; |
| 268 constructor.type = new FunctionTypeImpl(constructor); | 268 constructor.type = new FunctionTypeImpl.elementWithNameAndArgs( |
| 269 constructor, |
| 270 null, |
| 271 currentTypeParameters |
| 272 .map((TypeParameterElement e) => e.type) |
| 273 .toList()); |
| 269 memberHolder.addConstructor(constructor); | 274 memberHolder.addConstructor(constructor); |
| 270 } | 275 } |
| 271 classElement.constructors = memberHolder.constructors; | 276 classElement.constructors = memberHolder.constructors; |
| 272 } | 277 } |
| 273 classElement.accessors = memberHolder.accessors; | 278 classElement.accessors = memberHolder.accessors; |
| 274 classElement.fields = memberHolder.fields; | 279 classElement.fields = memberHolder.fields; |
| 275 classElement.methods = memberHolder.methods; | 280 classElement.methods = memberHolder.methods; |
| 276 correspondingType.typeArguments = | 281 correspondingType.typeArguments = |
| 277 currentTypeParameters.map((param) => param.type).toList(); | 282 currentTypeParameters.map((param) => param.type).toList(); |
| 278 classElement.type = correspondingType; | 283 classElement.type = correspondingType; |
| (...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 440 */ | 445 */ |
| 441 void buildExecutableCommonParts(ExecutableElementImpl executableElement, | 446 void buildExecutableCommonParts(ExecutableElementImpl executableElement, |
| 442 UnlinkedExecutable serializedExecutable) { | 447 UnlinkedExecutable serializedExecutable) { |
| 443 executableElement.parameters = | 448 executableElement.parameters = |
| 444 serializedExecutable.parameters.map(buildParameter).toList(); | 449 serializedExecutable.parameters.map(buildParameter).toList(); |
| 445 if (serializedExecutable.returnType != null) { | 450 if (serializedExecutable.returnType != null) { |
| 446 executableElement.returnType = buildType(serializedExecutable.returnType); | 451 executableElement.returnType = buildType(serializedExecutable.returnType); |
| 447 } else { | 452 } else { |
| 448 executableElement.returnType = VoidTypeImpl.instance; | 453 executableElement.returnType = VoidTypeImpl.instance; |
| 449 } | 454 } |
| 450 executableElement.type = new FunctionTypeImpl(executableElement); | 455 executableElement.type = new FunctionTypeImpl.elementWithNameAndArgs( |
| 456 executableElement, |
| 457 null, |
| 458 currentTypeParameters |
| 459 ?.map((TypeParameterElement e) => e.type) |
| 460 ?.toList()); |
| 451 executableElement.hasImplicitReturnType = | 461 executableElement.hasImplicitReturnType = |
| 452 serializedExecutable.hasImplicitReturnType; | 462 serializedExecutable.hasImplicitReturnType; |
| 453 executableElement.external = serializedExecutable.isExternal; | 463 executableElement.external = serializedExecutable.isExternal; |
| 454 } | 464 } |
| 455 | 465 |
| 456 /** | 466 /** |
| 457 * Resynthesize an [ExportElement], | 467 * Resynthesize an [ExportElement], |
| 458 */ | 468 */ |
| 459 ExportElement buildExport(UnlinkedExport serializedExport) { | 469 ExportElement buildExport(UnlinkedExport serializedExport) { |
| 460 ExportElementImpl exportElement = new ExportElementImpl(0); | 470 ExportElementImpl exportElement = new ExportElementImpl(0); |
| (...skipping 446 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 907 } | 917 } |
| 908 for (FunctionTypeAliasElement typeAlias in unit.functionTypeAliases) { | 918 for (FunctionTypeAliasElement typeAlias in unit.functionTypeAliases) { |
| 909 elementMap[typeAlias.name] = typeAlias; | 919 elementMap[typeAlias.name] = typeAlias; |
| 910 } | 920 } |
| 911 resummarizedElements[absoluteUri] = elementMap; | 921 resummarizedElements[absoluteUri] = elementMap; |
| 912 unitHolder = null; | 922 unitHolder = null; |
| 913 prelinkedUnit = null; | 923 prelinkedUnit = null; |
| 914 unlinkedUnit = null; | 924 unlinkedUnit = null; |
| 915 } | 925 } |
| 916 } | 926 } |
| OLD | NEW |