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

Side by Side Diff: pkg/analyzer/test/generated/simple_resolver_test.dart

Issue 2335693002: Add support for accessing field formal parameters in the initializer list of constructors (Closed)
Patch Set: Clean up Created 4 years, 3 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 analyzer.test.generated.simple_resolver_test; 5 library analyzer.test.generated.simple_resolver_test;
6 6
7 import 'package:analyzer/dart/ast/ast.dart'; 7 import 'package:analyzer/dart/ast/ast.dart';
8 import 'package:analyzer/dart/ast/visitor.dart'; 8 import 'package:analyzer/dart/ast/visitor.dart';
9 import 'package:analyzer/dart/element/element.dart'; 9 import 'package:analyzer/dart/element/element.dart';
10 import 'package:analyzer/dart/element/type.dart'; 10 import 'package:analyzer/dart/element/type.dart';
(...skipping 638 matching lines...) Expand 10 before | Expand all | Expand 10 after
649 } 649 }
650 class A { 650 class A {
651 void sort([compare = Comparable.compare]) {} 651 void sort([compare = Comparable.compare]) {}
652 }'''); 652 }''');
653 computeLibrarySourceErrors(source); 653 computeLibrarySourceErrors(source);
654 assertNoErrors(source); 654 assertNoErrors(source);
655 verify([source]); 655 verify([source]);
656 } 656 }
657 657
658 void test_fieldFormalParameter() { 658 void test_fieldFormalParameter() {
659 AnalysisOptionsImpl options = new AnalysisOptionsImpl();
660 options.enableInitializingFormalAccess = true;
661 resetWithOptions(options);
659 Source source = addSource(r''' 662 Source source = addSource(r'''
660 class A { 663 class A {
661 int x; 664 int x;
662 A(this.x) {} 665 int y;
666 A(this.x) : y = x {}
663 }'''); 667 }''');
668 CompilationUnit unit =
669 analysisContext2.resolveCompilationUnit2(source, source);
670 ClassDeclaration classA = unit.declarations[0];
671 FieldDeclaration field = classA.members[0];
672 ConstructorDeclaration constructor = classA.members[2];
673 ParameterElement paramElement =
674 constructor.parameters.parameters[0].element;
675 expect(paramElement, new isInstanceOf<FieldFormalParameterElement>());
676 expect((paramElement as FieldFormalParameterElement).field,
677 field.fields.variables[0].element);
678 ConstructorFieldInitializer initializer = constructor.initializers[0];
679 SimpleIdentifier identifierX = initializer.expression;
680 expect(identifierX.staticElement, paramElement);
681
664 computeLibrarySourceErrors(source); 682 computeLibrarySourceErrors(source);
665 assertNoErrors(source); 683 assertNoErrors(source);
666 verify([source]); 684 verify([source]);
667 } 685 }
668 686
669 void test_forEachLoops_nonConflicting() { 687 void test_forEachLoops_nonConflicting() {
670 Source source = addSource(r''' 688 Source source = addSource(r'''
671 f() { 689 f() {
672 List list = [1,2,3]; 690 List list = [1,2,3];
673 for (int x in list) {} 691 for (int x in list) {}
(...skipping 1141 matching lines...) Expand 10 before | Expand all | Expand 10 after
1815 // check propagated type 1833 // check propagated type
1816 FunctionType propagatedType = node.propagatedType as FunctionType; 1834 FunctionType propagatedType = node.propagatedType as FunctionType;
1817 expect(propagatedType.returnType, test.typeProvider.stringType); 1835 expect(propagatedType.returnType, test.typeProvider.stringType);
1818 } on AnalysisException catch (e, stackTrace) { 1836 } on AnalysisException catch (e, stackTrace) {
1819 thrownException[0] = new CaughtException(e, stackTrace); 1837 thrownException[0] = new CaughtException(e, stackTrace);
1820 } 1838 }
1821 } 1839 }
1822 return null; 1840 return null;
1823 } 1841 }
1824 } 1842 }
OLDNEW
« no previous file with comments | « pkg/analyzer/test/generated/compile_time_error_code_test.dart ('k') | pkg/analyzer_cli/lib/src/driver.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698