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

Side by Side Diff: pkg/analyzer2dart/lib/src/modely.dart

Issue 701123002: Support local functions in analyzer2dart. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Updated cf. comment Created 6 years, 1 month 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, 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 part of analyzer2dart.element_converter; 5 part of analyzer2dart.element_converter;
6 6
7 7
8 /// Base [dart2js.Element] implementation for converted analyzer elements. 8 /// Base [dart2js.Element] implementation for converted analyzer elements.
9 class ElementY extends dart2js.Element { 9 class ElementY extends dart2js.Element {
10 final ElementConverter converter; 10 final ElementConverter converter;
(...skipping 367 matching lines...) Expand 10 before | Expand all | Expand 10 after
378 dart2js.ElementKind get kind => dart2js.ElementKind.FUNCTION; 378 dart2js.ElementKind get kind => dart2js.ElementKind.FUNCTION;
379 379
380 @override 380 @override
381 dart2js.FunctionType get type => converter.convertType(element.type); 381 dart2js.FunctionType get type => converter.convertType(element.type);
382 382
383 TopLevelFunctionElementY(ElementConverter converter, 383 TopLevelFunctionElementY(ElementConverter converter,
384 analyzer.FunctionElement element) 384 analyzer.FunctionElement element)
385 : super(converter, element); 385 : super(converter, element);
386 } 386 }
387 387
388 class LocalFunctionElementY extends ElementY
389 with AnalyzableElementY,
390 AstElementY,
391 LocalElementMixin,
392 FunctionElementMixin
393 implements dart2js.LocalFunctionElement {
394 analyzer.FunctionElement get element => super.element;
395
396 @override
397 dart2js.ElementKind get kind => dart2js.ElementKind.FUNCTION;
398
399 @override
400 dart2js.FunctionType get type => converter.convertType(element.type);
401
402 @override
403 bool get isAbstract => false;
404
405 @override
406 bool get isConst => false;
407
408 LocalFunctionElementY(ElementConverter converter,
409 analyzer.FunctionElement element)
410 : super(converter, element);
411 }
412
388 class ParameterElementY extends ElementY 413 class ParameterElementY extends ElementY
389 with AnalyzableElementY, AstElementY 414 with AnalyzableElementY, AstElementY
390 implements dart2js.ParameterElement { 415 implements dart2js.ParameterElement {
391 416
392 analyzer.ParameterElement get element => super.element; 417 analyzer.ParameterElement get element => super.element;
393 418
394 @override 419 @override
395 dart2js.ElementKind get kind => dart2js.ElementKind.PARAMETER; 420 dart2js.ElementKind get kind => dart2js.ElementKind.PARAMETER;
396 421
397 @override 422 @override
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after
667 dart2js.DartType get type => converter.convertType(element.type); 692 dart2js.DartType get type => converter.convertType(element.type);
668 693
669 TopLevelVariableElementY(ElementConverter converter, 694 TopLevelVariableElementY(ElementConverter converter,
670 analyzer.TopLevelVariableElement element) 695 analyzer.TopLevelVariableElement element)
671 : super(converter, element); 696 : super(converter, element);
672 697
673 @override 698 @override
674 get nestedClosures => unsupported('nestedClosures'); 699 get nestedClosures => unsupported('nestedClosures');
675 } 700 }
676 701
702 abstract class LocalElementMixin implements ElementY, dart2js.LocalElement {
703
704 @override
705 bool get isLocal => true;
706
707 @override
708 bool get isStatic => false;
709
710 @override
711 get executableContext => unsupported('executableContext');
712
713 // TODO(johnniwinther): Ensure the correct semantics of this.
714 @override
715 bool get isFactoryConstructor => false;
716 }
717
677 class LocalVariableElementY extends ElementY 718 class LocalVariableElementY extends ElementY
678 with AnalyzableElementY, AstElementY, VariableElementMixin 719 with AnalyzableElementY,
720 AstElementY,
721 LocalElementMixin,
722 VariableElementMixin
679 implements dart2js.LocalVariableElement { 723 implements dart2js.LocalVariableElement {
680 724
681 analyzer.LocalVariableElement get element => super.element; 725 analyzer.LocalVariableElement get element => super.element;
682 726
683 dart2js.ElementKind get kind => dart2js.ElementKind.VARIABLE; 727 dart2js.ElementKind get kind => dart2js.ElementKind.VARIABLE;
684 728
685 @override 729 @override
686 bool get isLocal => true;
687
688 @override
689 bool get isConst => element.isConst; 730 bool get isConst => element.isConst;
690 731
691 @override
692 bool get isStatic => false;
693
694 LocalVariableElementY(ElementConverter converter, 732 LocalVariableElementY(ElementConverter converter,
695 analyzer.LocalVariableElement element) 733 analyzer.LocalVariableElement element)
696 : super(converter, element); 734 : super(converter, element);
697 735
698 @override 736 @override
699 get executableContext => unsupported('executableContext');
700
701 @override
702 dart2js.DartType get type => unsupported('type'); 737 dart2js.DartType get type => unsupported('type');
703 } 738 }
704 739
705 class ConstructorElementY extends ElementY 740 class ConstructorElementY extends ElementY
706 with AnalyzableElementY, 741 with AnalyzableElementY,
707 AstElementY, 742 AstElementY,
708 FunctionElementMixin 743 FunctionElementMixin
709 implements dart2js.ConstructorElement { 744 implements dart2js.ConstructorElement {
710 745
711 analyzer.ConstructorElement get element => super.element; 746 analyzer.ConstructorElement get element => super.element;
(...skipping 25 matching lines...) Expand all
737 772
738 @override 773 @override
739 bool get isRedirectingFactory => unsupported('isRedirectingFactory'); 774 bool get isRedirectingFactory => unsupported('isRedirectingFactory');
740 775
741 @override 776 @override
742 get nestedClosures => unsupported('nestedClosures'); 777 get nestedClosures => unsupported('nestedClosures');
743 778
744 @override 779 @override
745 get type => unsupported('type'); 780 get type => unsupported('type');
746 } 781 }
OLDNEW
« no previous file with comments | « pkg/analyzer2dart/lib/src/element_converter.dart ('k') | pkg/analyzer2dart/test/end2end_data.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698