Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | |
| 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. | |
| 4 | |
| 5 library fasta.kernel_builder; | |
| 6 | |
| 7 export 'kernel_class_builder.dart' show | |
| 8 KernelClassBuilder; | |
| 9 | |
| 10 export 'kernel_enum_builder.dart' show | |
| 11 KernelEnumBuilder; | |
| 12 | |
| 13 export 'kernel_field_builder.dart' show | |
| 14 KernelFieldBuilder; | |
| 15 | |
| 16 export 'kernel_formal_parameter_builder.dart' show | |
| 17 KernelFormalParameterBuilder; | |
| 18 | |
| 19 export 'kernel_function_type_alias_builder.dart' show | |
| 20 KernelFunctionTypeAliasBuilder; | |
| 21 | |
| 22 export 'kernel_interface_type_builder.dart' show | |
| 23 KernelInterfaceTypeBuilder; | |
| 24 | |
| 25 export 'kernel_library_builder.dart' show | |
| 26 KernelLibraryBuilder; | |
| 27 | |
| 28 export 'kernel_mixin_application_builder.dart' show | |
| 29 KernelMixinApplicationBuilder; | |
| 30 | |
| 31 export 'kernel_named_mixin_application_builder.dart' show | |
| 32 KernelNamedMixinApplicationBuilder; | |
| 33 | |
| 34 export 'kernel_procedure_builder.dart' show | |
| 35 KernelConstructorBuilder, | |
| 36 KernelFunctionBuilder, | |
| 37 KernelProcedureBuilder; | |
| 38 | |
| 39 export 'kernel_type_builder.dart' show | |
| 40 KernelTypeBuilder; | |
| 41 | |
| 42 export 'kernel_type_variable_builder.dart' show | |
| 43 KernelTypeVariableBuilder; | |
| 44 | |
| 45 export '../builder/builder.dart'; | |
| 46 | |
| 47 export 'kernel_variable_builder.dart' show | |
| 48 KernelVariableBuilder; | |
| 49 | |
| 50 export 'kernel_invalid_type_builder.dart' show | |
| 51 KernelInvalidTypeBuilder; | |
| 52 | |
| 53 import 'package:kernel/text/ast_to_text.dart' show | |
| 54 Printer; | |
| 55 | |
| 56 import 'package:kernel/ast.dart' show | |
| 57 Class, | |
| 58 DartType, | |
| 59 DynamicType, | |
| 60 Field, | |
| 61 Library, | |
| 62 Member, | |
| 63 Procedure, | |
| 64 TypeParameter; | |
| 65 | |
| 66 import '../errors.dart' show | |
| 67 inputError; | |
| 68 | |
| 69 List<DartType> computeDefaultTypeArguments( | |
| 70 List<TypeParameter> typeParameters, List<DartType> arguments) { | |
| 71 if (arguments == null) { | |
| 72 return new List<DartType>.filled( | |
| 73 typeParameters.length, const DynamicType()); | |
| 74 } | |
| 75 if (arguments.length < typeParameters.length) { | |
| 76 arguments = new List<DartType>.from(arguments); | |
| 77 } | |
| 78 for (int i = arguments.length; i < typeParameters.length; i++) { | |
|
Johnni Winther
2017/01/18 12:42:39
Move the for loop into the then-branch above.
ahe
2017/01/18 15:21:49
Done.
| |
| 79 arguments.add(const DynamicType()); | |
| 80 } | |
| 81 if (arguments.length > typeParameters.length) { | |
|
Johnni Winther
2017/01/18 12:42:39
Make this an else branch of the if statement above
ahe
2017/01/18 15:21:50
Done.
| |
| 82 return arguments.sublist(0, typeParameters.length); | |
| 83 } else { | |
| 84 return arguments; | |
| 85 } | |
| 86 } | |
| 87 | |
| 88 dynamic memberError(Member member, Object error, [int charOffset]) { | |
| 89 String name = member.name?.name; | |
| 90 if (name == "") { | |
| 91 name = Printer.emptyNameString; | |
| 92 } else if (name == null) { | |
| 93 name = "<anon>"; | |
| 94 } | |
| 95 Library library = member.enclosingLibrary; | |
| 96 Class cls = member.enclosingClass; | |
| 97 String fileUri; | |
| 98 if (member is Procedure) { | |
| 99 fileUri = member.fileUri; | |
| 100 } else if (member is Field) { | |
| 101 fileUri = member.fileUri; | |
| 102 } | |
| 103 fileUri ??= cls?.fileUri ?? library.fileUri; | |
| 104 Uri uri = fileUri == null ? library.importUri : Uri.base.resolve(fileUri); | |
| 105 charOffset ??= -1; | |
| 106 if (charOffset == -1) { | |
| 107 charOffset = member.fileOffset ?? -1; | |
| 108 } | |
| 109 if (charOffset == -1) { | |
| 110 charOffset = cls?.fileOffset ?? -1; | |
| 111 } | |
| 112 name = (cls == null ? "" : "${cls.name}::") + name; | |
| 113 return inputError(uri, charOffset, "Error in $name: $error"); | |
| 114 } | |
| OLD | NEW |