Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(31)

Side by Side Diff: pkg/fasta/lib/src/kernel/kernel_builder.dart

Issue 2631693002: Fasta kernel builders. (Closed)
Patch Set: Address comments. Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « pkg/fasta/lib/src/kernel/README.md ('k') | pkg/fasta/lib/src/kernel/kernel_class_builder.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(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 }
OLDNEW
« no previous file with comments | « pkg/fasta/lib/src/kernel/README.md ('k') | pkg/fasta/lib/src/kernel/kernel_class_builder.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698