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 for (int i = arguments.length; i < typeParameters.length; i++) { |
| 78 arguments.add(const DynamicType()); |
| 79 } |
| 80 } else if (arguments.length > typeParameters.length) { |
| 81 return arguments.sublist(0, typeParameters.length); |
| 82 } |
| 83 return arguments; |
| 84 } |
| 85 |
| 86 dynamic memberError(Member member, Object error, [int charOffset]) { |
| 87 String name = member.name?.name; |
| 88 if (name == "") { |
| 89 name = Printer.emptyNameString; |
| 90 } else if (name == null) { |
| 91 name = "<anon>"; |
| 92 } |
| 93 Library library = member.enclosingLibrary; |
| 94 Class cls = member.enclosingClass; |
| 95 String fileUri; |
| 96 if (member is Procedure) { |
| 97 fileUri = member.fileUri; |
| 98 } else if (member is Field) { |
| 99 fileUri = member.fileUri; |
| 100 } |
| 101 fileUri ??= cls?.fileUri ?? library.fileUri; |
| 102 Uri uri = fileUri == null ? library.importUri : Uri.base.resolve(fileUri); |
| 103 charOffset ??= -1; |
| 104 if (charOffset == -1) { |
| 105 charOffset = member.fileOffset ?? -1; |
| 106 } |
| 107 if (charOffset == -1) { |
| 108 charOffset = cls?.fileOffset ?? -1; |
| 109 } |
| 110 name = (cls == null ? "" : "${cls.name}::") + name; |
| 111 return inputError(uri, charOffset, "Error in $name: $error"); |
| 112 } |
OLD | NEW |