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.outline_builder; | 5 library fasta.outline_builder; |
6 | 6 |
7 import 'package:kernel/ast.dart' show AsyncMarker, ProcedureKind; | 7 import 'package:kernel/ast.dart' show AsyncMarker, ProcedureKind; |
8 | 8 |
9 import '../fasta_codes.dart' show FastaMessage, codeExpectedBlockToSkip; | 9 import '../fasta_codes.dart' show FastaMessage, codeExpectedBlockToSkip; |
10 | 10 |
(...skipping 423 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
434 | 434 |
435 @override | 435 @override |
436 void endNamedMixinApplication(Token beginToken, Token classKeyword, | 436 void endNamedMixinApplication(Token beginToken, Token classKeyword, |
437 Token equals, Token implementsKeyword, Token endToken) { | 437 Token equals, Token implementsKeyword, Token endToken) { |
438 debugEvent("endNamedMixinApplication"); | 438 debugEvent("endNamedMixinApplication"); |
439 List<TypeBuilder> interfaces = popIfNotNull(implementsKeyword); | 439 List<TypeBuilder> interfaces = popIfNotNull(implementsKeyword); |
440 TypeBuilder mixinApplication = pop(); | 440 TypeBuilder mixinApplication = pop(); |
441 List<TypeVariableBuilder> typeVariables = pop(); | 441 List<TypeVariableBuilder> typeVariables = pop(); |
442 int charOffset = pop(); | 442 int charOffset = pop(); |
443 String name = pop(); | 443 String name = pop(); |
444 if (typeVariables != null && mixinApplication is MixinApplicationBuilder) { | |
445 mixinApplication.typeVariables = typeVariables; | |
446 mixinApplication.subclassName = name; | |
447 } | |
448 int modifiers = Modifier.validate(pop()); | 444 int modifiers = Modifier.validate(pop()); |
449 List<MetadataBuilder> metadata = pop(); | 445 List<MetadataBuilder> metadata = pop(); |
450 library.addNamedMixinApplication(metadata, name, typeVariables, modifiers, | 446 library.addNamedMixinApplication(metadata, name, typeVariables, modifiers, |
451 mixinApplication, interfaces, charOffset); | 447 mixinApplication, interfaces, charOffset); |
452 checkEmpty(beginToken.charOffset); | 448 checkEmpty(beginToken.charOffset); |
453 } | 449 } |
454 | 450 |
455 @override | 451 @override |
456 void endTypeArguments(int count, Token beginToken, Token endToken) { | 452 void endTypeArguments(int count, Token beginToken, Token endToken) { |
457 debugEvent("TypeArguments"); | 453 debugEvent("TypeArguments"); |
(...skipping 397 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
855 Link<Token> handleMemberName(Link<Token> identifiers) { | 851 Link<Token> handleMemberName(Link<Token> identifiers) { |
856 if (!isDartLibrary || identifiers.isEmpty) return identifiers; | 852 if (!isDartLibrary || identifiers.isEmpty) return identifiers; |
857 return removeNativeClause(identifiers); | 853 return removeNativeClause(identifiers); |
858 } | 854 } |
859 | 855 |
860 @override | 856 @override |
861 void debugEvent(String name) { | 857 void debugEvent(String name) { |
862 // printEvent(name); | 858 // printEvent(name); |
863 } | 859 } |
864 } | 860 } |
OLD | NEW |