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

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

Issue 2631693002: Fasta kernel builders. (Closed)
Patch Set: 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
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 }
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698