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

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

Issue 2709943005: Canonicalize mixin applications by their name (Closed)
Patch Set: Address comment Created 3 years, 10 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_library_builder; 5 library fasta.kernel_library_builder;
6 6
7 import 'package:kernel/ast.dart'; 7 import 'package:kernel/ast.dart';
8 8
9 import 'package:kernel/clone.dart' show 9 import 'package:kernel/clone.dart' show
10 CloneVisitor; 10 CloneVisitor;
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 NamedMixinApplicationBuilder, 54 NamedMixinApplicationBuilder,
55 PrefixBuilder, 55 PrefixBuilder,
56 ProcedureBuilder, 56 ProcedureBuilder,
57 TypeBuilder, 57 TypeBuilder,
58 TypeVariableBuilder; 58 TypeVariableBuilder;
59 59
60 class KernelLibraryBuilder 60 class KernelLibraryBuilder
61 extends SourceLibraryBuilder<KernelTypeBuilder, Library> { 61 extends SourceLibraryBuilder<KernelTypeBuilder, Library> {
62 final Library library; 62 final Library library;
63 63
64 final List<Class> mixinApplicationClasses = <Class>[]; 64 final Map<String, SourceClassBuilder> mixinApplicationClasses =
65 <String, SourceClassBuilder>{};
65 66
66 final List<List> argumentsWithMissingDefaultValues = <List>[]; 67 final List<List> argumentsWithMissingDefaultValues = <List>[];
67 68
68 final List<KernelProcedureBuilder> nativeMethods = <KernelProcedureBuilder>[]; 69 final List<KernelProcedureBuilder> nativeMethods = <KernelProcedureBuilder>[];
69 70
70 final List<KernelTypeVariableBuilder> boundlessTypeVariables = 71 final List<KernelTypeVariableBuilder> boundlessTypeVariables =
71 <KernelTypeVariableBuilder>[]; 72 <KernelTypeVariableBuilder>[];
72 73
73 KernelLibraryBuilder(Uri uri, Uri fileUri, Loader loader) 74 KernelLibraryBuilder(Uri uri, Uri fileUri, Loader loader)
74 : library = new Library(uri, fileUri: relativizeUri(fileUri)), 75 : library = new Library(uri, fileUri: relativizeUri(fileUri)),
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after
344 } 345 }
345 boundlessTypeVariables.clear(); 346 boundlessTypeVariables.clear();
346 return count; 347 return count;
347 } 348 }
348 349
349 @override 350 @override
350 void includePart(covariant KernelLibraryBuilder part) { 351 void includePart(covariant KernelLibraryBuilder part) {
351 super.includePart(part); 352 super.includePart(part);
352 nativeMethods.addAll(part.nativeMethods); 353 nativeMethods.addAll(part.nativeMethods);
353 boundlessTypeVariables.addAll(part.boundlessTypeVariables); 354 boundlessTypeVariables.addAll(part.boundlessTypeVariables);
354 mixinApplicationClasses.addAll(part.mixinApplicationClasses); 355 assert(mixinApplicationClasses.isEmpty);
355 } 356 }
356 } 357 }
357 358
358 bool isConstructorName(String name, String className) { 359 bool isConstructorName(String name, String className) {
359 if (name.startsWith(className)) { 360 if (name.startsWith(className)) {
360 if (name.length == className.length) return true; 361 if (name.length == className.length) return true;
361 if (name.startsWith(".", className.length)) return true; 362 if (name.startsWith(".", className.length)) return true;
362 } 363 }
363 return false; 364 return false;
364 } 365 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698