OLD | NEW |
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 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 | 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 fasta.kernel_mixin_application_builder; | 5 library fasta.kernel_mixin_application_builder; |
6 | 6 |
7 import 'package:kernel/ast.dart' show InterfaceType, Supertype, setParents; | 7 import 'package:kernel/ast.dart' show InterfaceType, Supertype, setParents; |
8 | 8 |
9 import '../modifier.dart' show abstractMask; | 9 import '../modifier.dart' show abstractMask; |
10 | 10 |
| 11 import '../source/source_class_builder.dart' show SourceClassBuilder; |
| 12 |
| 13 import '../util/relativize.dart' show relativizeUri; |
| 14 |
11 import 'kernel_builder.dart' | 15 import 'kernel_builder.dart' |
12 show | 16 show |
13 Builder, | |
14 ConstructorReferenceBuilder, | 17 ConstructorReferenceBuilder, |
15 KernelLibraryBuilder, | 18 KernelLibraryBuilder, |
16 KernelNamedTypeBuilder, | 19 KernelNamedTypeBuilder, |
17 KernelTypeBuilder, | 20 KernelTypeBuilder, |
18 KernelTypeVariableBuilder, | 21 KernelTypeVariableBuilder, |
19 LibraryBuilder, | 22 LibraryBuilder, |
| 23 MemberBuilder, |
20 MixinApplicationBuilder, | 24 MixinApplicationBuilder, |
| 25 Scope, |
21 TypeBuilder, | 26 TypeBuilder, |
22 TypeVariableBuilder; | 27 TypeVariableBuilder; |
23 | 28 |
24 import '../util/relativize.dart' show relativizeUri; | |
25 | |
26 import '../source/source_class_builder.dart' show SourceClassBuilder; | |
27 | |
28 class KernelMixinApplicationBuilder | 29 class KernelMixinApplicationBuilder |
29 extends MixinApplicationBuilder<KernelTypeBuilder> | 30 extends MixinApplicationBuilder<KernelTypeBuilder> |
30 implements KernelTypeBuilder { | 31 implements KernelTypeBuilder { |
31 final int charOffset; | 32 final int charOffset; |
32 | 33 |
33 final String relativeFileUri; | 34 final String relativeFileUri; |
34 | 35 |
35 final KernelLibraryBuilder library; | 36 final KernelLibraryBuilder library; |
36 | 37 |
37 Supertype builtType; | 38 Supertype builtType; |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
86 | 87 |
87 SourceClassBuilder cls = | 88 SourceClassBuilder cls = |
88 library.mixinApplicationClasses.putIfAbsent(name, () { | 89 library.mixinApplicationClasses.putIfAbsent(name, () { |
89 SourceClassBuilder cls = new SourceClassBuilder( | 90 SourceClassBuilder cls = new SourceClassBuilder( |
90 null, | 91 null, |
91 abstractMask, | 92 abstractMask, |
92 name, | 93 name, |
93 newTypeVariables, | 94 newTypeVariables, |
94 supertype, | 95 supertype, |
95 null, | 96 null, |
96 <String, Builder>{}, | 97 new Scope(<String, MemberBuilder>{}, <String, MemberBuilder>{}, |
| 98 library.scope.withTypeVariables(newTypeVariables), |
| 99 isModifiable: false), |
| 100 new Scope(<String, MemberBuilder>{}, null, null, isModifiable: false), |
97 library, | 101 library, |
98 <ConstructorReferenceBuilder>[], | 102 <ConstructorReferenceBuilder>[], |
99 charOffset, | 103 charOffset, |
100 null, | 104 null, |
101 mixin); | 105 mixin); |
102 library.addImplementationBuilder(name, cls, charOffset); | 106 library.addImplementationBuilder(name, cls, charOffset); |
103 if (newTypeVariables != null) { | 107 if (newTypeVariables != null) { |
104 for (KernelTypeVariableBuilder t in newTypeVariables) { | 108 for (KernelTypeVariableBuilder t in newTypeVariables) { |
105 cls.cls.typeParameters.add(t.parameter); | 109 cls.cls.typeParameters.add(t.parameter); |
106 } | 110 } |
107 setParents(cls.cls.typeParameters, cls.cls); | 111 setParents(cls.cls.typeParameters, cls.cls); |
108 } | 112 } |
109 return cls; | 113 return cls; |
110 }); | 114 }); |
111 return new KernelNamedTypeBuilder( | 115 return new KernelNamedTypeBuilder( |
112 name, typeArguments, charOffset, library.fileUri)..builder = cls; | 116 name, typeArguments, charOffset, library.fileUri)..builder = cls; |
113 } | 117 } |
114 } | 118 } |
OLD | NEW |