| 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 'package:kernel/ast.dart' show | 7 import 'package:kernel/ast.dart' show |
| 8 Class, | 8 Class, |
| 9 ExpressionStatement, | 9 ExpressionStatement, |
| 10 Field, | 10 Field, |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 51 | 51 |
| 52 DillLibraryBuilder(Uri uri, this.loader) | 52 DillLibraryBuilder(Uri uri, this.loader) |
| 53 : uri = uri, super(uri); | 53 : uri = uri, super(uri); |
| 54 | 54 |
| 55 get scope => internalError("Scope not supported"); | 55 get scope => internalError("Scope not supported"); |
| 56 | 56 |
| 57 Uri get fileUri => uri; | 57 Uri get fileUri => uri; |
| 58 | 58 |
| 59 void addClass(Class cls) { | 59 void addClass(Class cls) { |
| 60 DillClassBuilder classBulder = new DillClassBuilder(cls, this); | 60 DillClassBuilder classBulder = new DillClassBuilder(cls, this); |
| 61 addBuilder(cls.name, classBulder); | 61 addBuilder(cls.name, classBulder, cls.fileOffset); |
| 62 cls.procedures.forEach(classBulder.addMember); | 62 cls.procedures.forEach(classBulder.addMember); |
| 63 cls.constructors.forEach(classBulder.addMember); | 63 cls.constructors.forEach(classBulder.addMember); |
| 64 for (Field field in cls.fields) { | 64 for (Field field in cls.fields) { |
| 65 if (field.name.name == "_redirecting#") { | 65 if (field.name.name == "_redirecting#") { |
| 66 // This is a hack / work around for storing redirecting constructors in | 66 // This is a hack / work around for storing redirecting constructors in |
| 67 // dill files. See `buildFactoryConstructor` in | 67 // dill files. See `buildFactoryConstructor` in |
| 68 // [package:kernel/analyzer/ast_from_analyzer.dart] | 68 // [package:kernel/analyzer/ast_from_analyzer.dart] |
| 69 // (../../../../kernel/lib/analyzer/ast_from_analyzer.dart). | 69 // (../../../../kernel/lib/analyzer/ast_from_analyzer.dart). |
| 70 ListLiteral initializer = field.initializer; | 70 ListLiteral initializer = field.initializer; |
| 71 for (StaticGet get in initializer.expressions) { | 71 for (StaticGet get in initializer.expressions) { |
| (...skipping 12 matching lines...) Expand all Loading... |
| 84 } | 84 } |
| 85 } | 85 } |
| 86 | 86 |
| 87 void addMember(Member member) { | 87 void addMember(Member member) { |
| 88 String name = member.name.name; | 88 String name = member.name.name; |
| 89 if (name == "_exports#") { | 89 if (name == "_exports#") { |
| 90 // This is a hack / work around for storing exports in dill files. See | 90 // This is a hack / work around for storing exports in dill files. See |
| 91 // [compile_platform.dart](../compile_platform.dart). | 91 // [compile_platform.dart](../compile_platform.dart). |
| 92 print("$uri: _exports# not implemented yet."); | 92 print("$uri: _exports# not implemented yet."); |
| 93 } else { | 93 } else { |
| 94 addBuilder(name, new DillMemberBuilder(member, this)); | 94 addBuilder(name, new DillMemberBuilder(member, this), member.fileOffset); |
| 95 } | 95 } |
| 96 } | 96 } |
| 97 | 97 |
| 98 Builder addBuilder(String name, Builder builder) { | 98 Builder addBuilder(String name, Builder builder, int charOffset) { |
| 99 if (name == null || name.isEmpty) return null; | 99 if (name == null || name.isEmpty) return null; |
| 100 members[name] = builder; | 100 members[name] = builder; |
| 101 if (!name.startsWith("_")) { | 101 if (!name.startsWith("_")) { |
| 102 exports[name] = builder; | 102 exports[name] = builder; |
| 103 } | 103 } |
| 104 return builder; | 104 return builder; |
| 105 } | 105 } |
| 106 | 106 |
| 107 bool addToExportScope(String name, Builder member) { | 107 bool addToExportScope(String name, Builder member) { |
| 108 return internalError("Not implemented yet."); | 108 return internalError("Not implemented yet."); |
| 109 } | 109 } |
| 110 | 110 |
| 111 void addToScope(String name, Builder member) { | 111 void addToScope(String name, Builder member) { |
| 112 internalError("Not implemented yet."); | 112 internalError("Not implemented yet."); |
| 113 } | 113 } |
| 114 | 114 |
| 115 KernelInvalidTypeBuilder buildAmbiguousBuilder( | 115 KernelInvalidTypeBuilder buildAmbiguousBuilder( |
| 116 String name, Builder builder, Builder other, int charOffset) { | 116 String name, Builder builder, Builder other, int charOffset) { |
| 117 return new KernelInvalidTypeBuilder(name, charOffset, fileUri); | 117 return new KernelInvalidTypeBuilder(name, charOffset, fileUri); |
| 118 } | 118 } |
| 119 } | 119 } |
| OLD | NEW |