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

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

Issue 2986093002: Revert two Kernel changes that were causing test failures. (Closed)
Patch Set: Revert "Migrate language/async_backwards... ... language/async_star_take..." Created 3 years, 4 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
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 Class, 10 Class,
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
118 /// From Dart Programming Language Specification 4th Edition/December 2015: 118 /// From Dart Programming Language Specification 4th Edition/December 2015:
119 /// metadata class E { 119 /// metadata class E {
120 /// final int index; 120 /// final int index;
121 /// const E(this.index); 121 /// const E(this.index);
122 /// static const E id0 = const E(0); 122 /// static const E id0 = const E(0);
123 /// ... 123 /// ...
124 /// static const E idn-1 = const E(n - 1); 124 /// static const E idn-1 = const E(n - 1);
125 /// static const List<E> values = const <E>[id0, ..., idn-1]; 125 /// static const List<E> values = const <E>[id0, ..., idn-1];
126 /// String toString() => { 0: ‘E.id0’, . . ., n-1: ‘E.idn-1’}[index] 126 /// String toString() => { 0: ‘E.id0’, . . ., n-1: ‘E.idn-1’}[index]
127 /// } 127 /// }
128 members["index"] = new KernelFieldBuilder(null, null, intType, "index", 128 members["index"] = new KernelFieldBuilder(
129 finalMask, parent, charOffset, null, true); 129 null, intType, "index", finalMask, parent, charOffset, null, true);
130 KernelConstructorBuilder constructorBuilder = new KernelConstructorBuilder( 130 KernelConstructorBuilder constructorBuilder = new KernelConstructorBuilder(
131 null, 131 null,
132 null,
133 constMask, 132 constMask,
134 null, 133 null,
135 "", 134 "",
136 null, 135 null,
137 <FormalParameterBuilder>[ 136 <FormalParameterBuilder>[
138 new KernelFormalParameterBuilder( 137 new KernelFormalParameterBuilder(
139 null, 0, intType, "index", true, parent, charOffset) 138 null, 0, intType, "index", true, parent, charOffset)
140 ], 139 ],
141 parent, 140 parent,
142 charOffset, 141 charOffset,
143 charOffset, 142 charOffset,
144 charEndOffset); 143 charEndOffset);
145 constructors[""] = constructorBuilder; 144 constructors[""] = constructorBuilder;
146 int index = 0; 145 int index = 0;
147 List<MapEntry> toStringEntries = <MapEntry>[]; 146 List<MapEntry> toStringEntries = <MapEntry>[];
148 KernelFieldBuilder valuesBuilder = new KernelFieldBuilder( 147 KernelFieldBuilder valuesBuilder = new KernelFieldBuilder(null, listType,
149 null, 148 "values", constMask | staticMask, parent, charOffset, null, true);
150 null,
151 listType,
152 "values",
153 constMask | staticMask,
154 parent,
155 charOffset,
156 null,
157 true);
158 members["values"] = valuesBuilder; 149 members["values"] = valuesBuilder;
159 KernelProcedureBuilder toStringBuilder = new KernelProcedureBuilder( 150 KernelProcedureBuilder toStringBuilder = new KernelProcedureBuilder(
160 null, 151 null,
161 null,
162 0, 152 0,
163 stringType, 153 stringType,
164 "toString", 154 "toString",
165 null, 155 null,
166 null, 156 null,
167 ProcedureKind.Method, 157 ProcedureKind.Method,
168 parent, 158 parent,
169 charOffset, 159 charOffset,
170 charOffset, 160 charOffset,
171 charEndOffset); 161 charEndOffset);
172 members["toString"] = toStringBuilder; 162 members["toString"] = toStringBuilder;
173 String className = name; 163 String className = name;
174 for (int i = 0; i < constantNamesAndOffsets.length; i += 2) { 164 for (int i = 0; i < constantNamesAndOffsets.length; i += 2) {
175 String name = constantNamesAndOffsets[i]; 165 String name = constantNamesAndOffsets[i];
176 int charOffset = constantNamesAndOffsets[i + 1]; 166 int charOffset = constantNamesAndOffsets[i + 1];
177 if (members.containsKey(name)) { 167 if (members.containsKey(name)) {
178 parent.addCompileTimeError(templateDuplicatedName.withArguments(name), 168 parent.addCompileTimeError(templateDuplicatedName.withArguments(name),
179 charOffset, parent.fileUri); 169 charOffset, parent.fileUri);
180 constantNamesAndOffsets[i] = null; 170 constantNamesAndOffsets[i] = null;
181 continue; 171 continue;
182 } 172 }
183 if (name == className) { 173 if (name == className) {
184 parent.addCompileTimeError( 174 parent.addCompileTimeError(
185 templateEnumConstantSameNameAsEnclosing.withArguments(name), 175 templateEnumConstantSameNameAsEnclosing.withArguments(name),
186 charOffset, 176 charOffset,
187 parent.fileUri); 177 parent.fileUri);
188 constantNamesAndOffsets[i] = null; 178 constantNamesAndOffsets[i] = null;
189 continue; 179 continue;
190 } 180 }
191 KernelFieldBuilder fieldBuilder = new KernelFieldBuilder( 181 KernelFieldBuilder fieldBuilder = new KernelFieldBuilder(null, selfType,
192 null, 182 name, constMask | staticMask, parent, charOffset, null, true);
193 null,
194 selfType,
195 name,
196 constMask | staticMask,
197 parent,
198 charOffset,
199 null,
200 true);
201 members[name] = fieldBuilder; 183 members[name] = fieldBuilder;
202 toStringEntries.add(new MapEntry( 184 toStringEntries.add(new MapEntry(
203 new IntLiteral(index), new StringLiteral("$className.$name"))); 185 new IntLiteral(index), new StringLiteral("$className.$name")));
204 index++; 186 index++;
205 } 187 }
206 MapLiteral toStringMap = new MapLiteral(toStringEntries, isConst: true); 188 MapLiteral toStringMap = new MapLiteral(toStringEntries, isConst: true);
207 KernelEnumBuilder enumBuilder = new KernelEnumBuilder.internal( 189 KernelEnumBuilder enumBuilder = new KernelEnumBuilder.internal(
208 null, 190 null,
209 metadata, 191 metadata,
210 name, 192 name,
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
306 } 288 }
307 return super.build(libraryBuilder, coreLibrary); 289 return super.build(libraryBuilder, coreLibrary);
308 } 290 }
309 291
310 @override 292 @override
311 Builder findConstructorOrFactory( 293 Builder findConstructorOrFactory(
312 String name, int charOffset, Uri uri, LibraryBuilder library) { 294 String name, int charOffset, Uri uri, LibraryBuilder library) {
313 return null; 295 return null;
314 } 296 }
315 } 297 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698