| 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_enum_builder; | 5 library fasta.kernel_enum_builder; |
| 6 | 6 |
| 7 import 'package:kernel/ast.dart' | 7 import 'package:kernel/ast.dart' |
| 8 show | 8 show |
| 9 Arguments, | 9 Arguments, |
| 10 AsyncMarker, | 10 AsyncMarker, |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 68 Class cls, | 68 Class cls, |
| 69 this.constants, | 69 this.constants, |
| 70 this.toStringMap, | 70 this.toStringMap, |
| 71 this.intType, | 71 this.intType, |
| 72 this.stringType, | 72 this.stringType, |
| 73 LibraryBuilder parent, | 73 LibraryBuilder parent, |
| 74 int charOffset) | 74 int charOffset) |
| 75 : super(metadata, 0, name, null, null, null, members, parent, null, | 75 : super(metadata, 0, name, null, null, null, members, parent, null, |
| 76 charOffset, cls); | 76 charOffset, cls); |
| 77 | 77 |
| 78 factory KernelEnumBuilder(List<MetadataBuilder> metadata, String name, | 78 factory KernelEnumBuilder( |
| 79 List<String> constants, KernelLibraryBuilder parent, int charOffset) { | 79 List<MetadataBuilder> metadata, |
| 80 String name, |
| 81 List<String> constants, |
| 82 KernelLibraryBuilder parent, |
| 83 int charOffset, |
| 84 int charEndOffset) { |
| 80 constants ??= const <String>[]; | 85 constants ??= const <String>[]; |
| 81 // TODO(ahe): These types shouldn't be looked up in scope, they come | 86 // TODO(ahe): These types shouldn't be looked up in scope, they come |
| 82 // directly from dart:core. | 87 // directly from dart:core. |
| 83 KernelTypeBuilder intType = parent.addType( | 88 KernelTypeBuilder intType = parent.addType( |
| 84 new KernelNamedTypeBuilder("int", null, charOffset, parent.fileUri)); | 89 new KernelNamedTypeBuilder("int", null, charOffset, parent.fileUri)); |
| 85 KernelTypeBuilder stringType = parent.addType( | 90 KernelTypeBuilder stringType = parent.addType( |
| 86 new KernelNamedTypeBuilder("String", null, charOffset, parent.fileUri)); | 91 new KernelNamedTypeBuilder("String", null, charOffset, parent.fileUri)); |
| 87 Class cls = new Class(name: name); | 92 Class cls = new Class(name: name); |
| 88 Map<String, Builder> members = <String, Builder>{}; | 93 Map<String, Builder> members = <String, Builder>{}; |
| 89 KernelNamedTypeBuilder selfType = | 94 KernelNamedTypeBuilder selfType = |
| (...skipping 17 matching lines...) Expand all Loading... |
| 107 null, | 112 null, |
| 108 constMask, | 113 constMask, |
| 109 null, | 114 null, |
| 110 "", | 115 "", |
| 111 null, | 116 null, |
| 112 <FormalParameterBuilder>[ | 117 <FormalParameterBuilder>[ |
| 113 new KernelFormalParameterBuilder( | 118 new KernelFormalParameterBuilder( |
| 114 null, 0, intType, "index", true, parent, charOffset) | 119 null, 0, intType, "index", true, parent, charOffset) |
| 115 ], | 120 ], |
| 116 parent, | 121 parent, |
| 117 charOffset); | 122 charOffset, |
| 123 charEndOffset); |
| 118 members[""] = constructorBuilder; | 124 members[""] = constructorBuilder; |
| 119 int index = 0; | 125 int index = 0; |
| 120 List<MapEntry> toStringEntries = <MapEntry>[]; | 126 List<MapEntry> toStringEntries = <MapEntry>[]; |
| 121 KernelFieldBuilder valuesBuilder = new KernelFieldBuilder( | 127 KernelFieldBuilder valuesBuilder = new KernelFieldBuilder( |
| 122 null, listType, "values", constMask | staticMask, parent, charOffset); | 128 null, listType, "values", constMask | staticMask, parent, charOffset); |
| 123 members["values"] = valuesBuilder; | 129 members["values"] = valuesBuilder; |
| 124 KernelProcedureBuilder toStringBuilder = new KernelProcedureBuilder( | 130 KernelProcedureBuilder toStringBuilder = new KernelProcedureBuilder( |
| 125 null, | 131 null, |
| 126 0, | 132 0, |
| 127 stringType, | 133 stringType, |
| 128 "toString", | 134 "toString", |
| 129 null, | 135 null, |
| 130 null, | 136 null, |
| 131 AsyncMarker.Sync, | 137 AsyncMarker.Sync, |
| 132 ProcedureKind.Method, | 138 ProcedureKind.Method, |
| 133 parent, | 139 parent, |
| 134 charOffset); | 140 charOffset, |
| 141 charEndOffset); |
| 135 members["toString"] = toStringBuilder; | 142 members["toString"] = toStringBuilder; |
| 136 String className = name; | 143 String className = name; |
| 137 for (String name in constants) { | 144 for (String name in constants) { |
| 138 if (members.containsKey(name)) { | 145 if (members.containsKey(name)) { |
| 139 inputError(null, null, "Duplicated name: $name"); | 146 inputError(null, null, "Duplicated name: $name"); |
| 140 continue; | 147 continue; |
| 141 } | 148 } |
| 142 KernelFieldBuilder fieldBuilder = new KernelFieldBuilder( | 149 KernelFieldBuilder fieldBuilder = new KernelFieldBuilder( |
| 143 null, | 150 null, |
| 144 selfType, | 151 selfType, |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 217 Arguments arguments = | 224 Arguments arguments = |
| 218 new Arguments(<Expression>[new IntLiteral(index++)]); | 225 new Arguments(<Expression>[new IntLiteral(index++)]); |
| 219 field.initializer = | 226 field.initializer = |
| 220 new ConstructorInvocation(constructor, arguments, isConst: true); | 227 new ConstructorInvocation(constructor, arguments, isConst: true); |
| 221 } | 228 } |
| 222 return super.build(libraryBuilder); | 229 return super.build(libraryBuilder); |
| 223 } | 230 } |
| 224 | 231 |
| 225 Builder findConstructorOrFactory(String name) => null; | 232 Builder findConstructorOrFactory(String name) => null; |
| 226 } | 233 } |
| OLD | NEW |