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 418 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
429 | 429 |
430 @override | 430 @override |
431 void endNamedMixinApplication(Token beginToken, Token classKeyword, | 431 void endNamedMixinApplication(Token beginToken, Token classKeyword, |
432 Token equals, Token implementsKeyword, Token endToken) { | 432 Token equals, Token implementsKeyword, Token endToken) { |
433 debugEvent("endNamedMixinApplication"); | 433 debugEvent("endNamedMixinApplication"); |
434 List<TypeBuilder> interfaces = popIfNotNull(implementsKeyword); | 434 List<TypeBuilder> interfaces = popIfNotNull(implementsKeyword); |
435 TypeBuilder mixinApplication = pop(); | 435 TypeBuilder mixinApplication = pop(); |
436 List<TypeVariableBuilder> typeVariables = pop(); | 436 List<TypeVariableBuilder> typeVariables = pop(); |
437 int charOffset = pop(); | 437 int charOffset = pop(); |
438 String name = pop(); | 438 String name = pop(); |
439 if (typeVariables != null && mixinApplication is MixinApplicationBuilder) { | |
440 mixinApplication.typeVariables = typeVariables; | |
441 mixinApplication.subclassName = name; | |
442 } | |
443 int modifiers = Modifier.validate(pop()); | 439 int modifiers = Modifier.validate(pop()); |
444 List<MetadataBuilder> metadata = pop(); | 440 List<MetadataBuilder> metadata = pop(); |
445 library.addNamedMixinApplication(metadata, name, typeVariables, modifiers, | 441 library.addNamedMixinApplication(metadata, name, typeVariables, modifiers, |
446 mixinApplication, interfaces, charOffset); | 442 mixinApplication, interfaces, charOffset); |
447 checkEmpty(beginToken.charOffset); | 443 checkEmpty(beginToken.charOffset); |
448 } | 444 } |
449 | 445 |
450 @override | 446 @override |
451 void endTypeArguments(int count, Token beginToken, Token endToken) { | 447 void endTypeArguments(int count, Token beginToken, Token endToken) { |
452 debugEvent("TypeArguments"); | 448 debugEvent("TypeArguments"); |
(...skipping 368 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
821 Link<Token> handleMemberName(Link<Token> identifiers) { | 817 Link<Token> handleMemberName(Link<Token> identifiers) { |
822 if (!isDartLibrary || identifiers.isEmpty) return identifiers; | 818 if (!isDartLibrary || identifiers.isEmpty) return identifiers; |
823 return removeNativeClause(identifiers); | 819 return removeNativeClause(identifiers); |
824 } | 820 } |
825 | 821 |
826 @override | 822 @override |
827 void debugEvent(String name) { | 823 void debugEvent(String name) { |
828 // printEvent(name); | 824 // printEvent(name); |
829 } | 825 } |
830 } | 826 } |
OLD | NEW |