Chromium Code Reviews| 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.dill_library_builder; | 5 library fasta.dill_library_builder; |
| 6 | 6 |
| 7 import 'dart:convert' show JSON; | 7 import 'dart:convert' show JSON; |
| 8 | 8 |
| 9 import 'package:kernel/ast.dart' | 9 import 'package:kernel/ast.dart' |
| 10 show | 10 show |
| 11 Class, | 11 Class, |
| 12 Field, | 12 Field, |
| 13 Library, | 13 Library, |
| 14 ListLiteral, | 14 ListLiteral, |
| 15 Member, | 15 Member, |
| 16 Procedure, | 16 Procedure, |
| 17 StaticGet, | 17 StaticGet, |
| 18 StringLiteral, | 18 StringLiteral, |
| 19 Typedef; | 19 Typedef; |
| 20 | 20 |
| 21 import '../fasta_codes.dart' show templateUnspecified; | 21 import '../fasta_codes.dart' |
| 22 show templateInternalProblemExportedLibraryNotLoaded, templateUnspecified; | |
| 22 | 23 |
| 23 import '../problems.dart' show unhandled, unimplemented; | 24 import '../problems.dart' show internalProblem, unhandled, unimplemented; |
| 24 | 25 |
| 25 import '../kernel/kernel_builder.dart' | 26 import '../kernel/kernel_builder.dart' |
| 26 show | 27 show |
| 27 Builder, | 28 Builder, |
| 28 InvalidTypeBuilder, | 29 InvalidTypeBuilder, |
| 29 KernelInvalidTypeBuilder, | 30 KernelInvalidTypeBuilder, |
| 30 KernelTypeBuilder, | 31 KernelTypeBuilder, |
| 31 LibraryBuilder, | 32 LibraryBuilder, |
| 32 Scope; | 33 Scope; |
| 33 | 34 |
| (...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 175 isSetter = node.isSetter; | 176 isSetter = node.isSetter; |
| 176 } else if (node is Member) { | 177 } else if (node is Member) { |
| 177 libraryUri = node.enclosingLibrary.importUri; | 178 libraryUri = node.enclosingLibrary.importUri; |
| 178 name = node.name.name; | 179 name = node.name.name; |
| 179 } else if (node is Typedef) { | 180 } else if (node is Typedef) { |
| 180 libraryUri = node.enclosingLibrary.importUri; | 181 libraryUri = node.enclosingLibrary.importUri; |
| 181 name = node.name; | 182 name = node.name; |
| 182 } else { | 183 } else { |
| 183 unhandled("${node.runtimeType}", "finalizeExports", -1, fileUri); | 184 unhandled("${node.runtimeType}", "finalizeExports", -1, fileUri); |
| 184 } | 185 } |
| 185 var library = loader.read(libraryUri, -1); | 186 DillLibraryBuilder library = loader.builders[libraryUri]; |
|
scheglov
2017/09/04 18:31:14
What if we have mutually exporting libraries?
ahe
2017/09/06 07:55:50
If they're in the same dill file, it shouldn't be
| |
| 187 if (library == null) { | |
| 188 internalProblem( | |
| 189 templateInternalProblemExportedLibraryNotLoaded.withArguments( | |
| 190 libraryUri, uri), | |
| 191 -1, | |
| 192 fileUri); | |
| 193 } | |
| 186 Builder builder; | 194 Builder builder; |
| 187 if (isSetter) { | 195 if (isSetter) { |
| 188 builder = library.exportScope.setters[name]; | 196 builder = library.exportScope.setters[name]; |
| 189 exportScopeBuilder.addSetter(name, builder); | 197 exportScopeBuilder.addSetter(name, builder); |
| 190 } else { | 198 } else { |
| 191 builder = library.exportScope.local[name]; | 199 builder = library.exportScope.local[name]; |
| 192 exportScopeBuilder.addMember(name, builder); | 200 exportScopeBuilder.addMember(name, builder); |
| 193 } | 201 } |
| 194 assert(node == builder.target); | 202 assert(node == builder.target); |
| 195 } | 203 } |
| 196 } | 204 } |
| 197 } | 205 } |
| OLD | NEW |