OLD | NEW |
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 library analyzer.test.src.context.context_test; | 5 library analyzer.test.src.context.context_test; |
6 | 6 |
7 import 'dart:async'; | 7 import 'dart:async'; |
8 import 'dart:collection'; | 8 import 'dart:collection'; |
9 | 9 |
10 import 'package:analyzer/dart/ast/ast.dart'; | 10 import 'package:analyzer/dart/ast/ast.dart'; |
(...skipping 2458 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2469 entry.setState(RESOLVED_UNIT3, CacheState.FLUSHED); | 2469 entry.setState(RESOLVED_UNIT3, CacheState.FLUSHED); |
2470 entry.setState(RESOLVED_UNIT4, CacheState.FLUSHED); | 2470 entry.setState(RESOLVED_UNIT4, CacheState.FLUSHED); |
2471 entry.setState(RESOLVED_UNIT5, CacheState.FLUSHED); | 2471 entry.setState(RESOLVED_UNIT5, CacheState.FLUSHED); |
2472 entry.setState(RESOLVED_UNIT6, CacheState.FLUSHED); | 2472 entry.setState(RESOLVED_UNIT6, CacheState.FLUSHED); |
2473 entry.setState(RESOLVED_UNIT7, CacheState.FLUSHED); | 2473 entry.setState(RESOLVED_UNIT7, CacheState.FLUSHED); |
2474 entry.setState(RESOLVED_UNIT8, CacheState.FLUSHED); | 2474 entry.setState(RESOLVED_UNIT8, CacheState.FLUSHED); |
2475 entry.setState(RESOLVED_UNIT9, CacheState.FLUSHED); | 2475 entry.setState(RESOLVED_UNIT9, CacheState.FLUSHED); |
2476 entry.setState(RESOLVED_UNIT10, CacheState.FLUSHED); | 2476 entry.setState(RESOLVED_UNIT10, CacheState.FLUSHED); |
2477 entry.setState(RESOLVED_UNIT11, CacheState.FLUSHED); | 2477 entry.setState(RESOLVED_UNIT11, CacheState.FLUSHED); |
2478 entry.setState(RESOLVED_UNIT12, CacheState.FLUSHED); | 2478 entry.setState(RESOLVED_UNIT12, CacheState.FLUSHED); |
2479 entry.setState(RESOLVED_UNIT13, CacheState.FLUSHED); | |
2480 entry.setState(RESOLVED_UNIT, CacheState.FLUSHED); | 2479 entry.setState(RESOLVED_UNIT, CacheState.FLUSHED); |
2481 | 2480 |
2482 context.resolveCompilationUnit2(source, source); | 2481 context.resolveCompilationUnit2(source, source); |
2483 LibraryElement secondElement = context.computeLibraryElement(source); | 2482 LibraryElement secondElement = context.computeLibraryElement(source); |
2484 _ElementComparer comparer = new _ElementComparer(gatherer.elements); | 2483 _ElementComparer comparer = new _ElementComparer(gatherer.elements); |
2485 secondElement.accept(comparer); | 2484 secondElement.accept(comparer); |
2486 comparer.expectNoDifferences(); | 2485 comparer.expectNoDifferences(); |
2487 } | 2486 } |
2488 | 2487 |
2489 void test_resolveCompilationUnit_import_relative() { | 2488 void test_resolveCompilationUnit_import_relative() { |
(...skipping 1300 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3790 context.getResult(new LibrarySpecificUnit(a, a), RESOLVED_UNIT); | 3789 context.getResult(new LibrarySpecificUnit(a, a), RESOLVED_UNIT); |
3791 ExpressionStatement statement = | 3790 ExpressionStatement statement = |
3792 AstFinder.getStatementsInTopLevelFunction(unit, 'main').single; | 3791 AstFinder.getStatementsInTopLevelFunction(unit, 'main').single; |
3793 MethodInvocation invocation = statement.expression; | 3792 MethodInvocation invocation = statement.expression; |
3794 return invocation.argumentList.arguments[0]; | 3793 return invocation.argumentList.arguments[0]; |
3795 } | 3794 } |
3796 | 3795 |
3797 { | 3796 { |
3798 Expression argument = find42(); | 3797 Expression argument = find42(); |
3799 expect(argument.staticParameterElement, isNull); | 3798 expect(argument.staticParameterElement, isNull); |
3800 expect(argument.propagatedParameterElement, isNotNull); | |
3801 } | 3799 } |
| 3800 |
3802 // Update a.dart: add type annotation for 'a'. | 3801 // Update a.dart: add type annotation for 'a'. |
3803 // '42' has 'staticParameterElement', but not 'propagatedParameterElement'. | 3802 // '42' has 'staticParameterElement'. |
3804 context.setContents( | 3803 context.setContents( |
3805 a, | 3804 a, |
3806 r''' | 3805 r''' |
3807 class A { | 3806 class A { |
3808 foo(int p) {} | 3807 foo(int p) {} |
3809 } | 3808 } |
3810 final A a = new A(); | 3809 final A a = new A(); |
3811 main() { | 3810 main() { |
3812 a.foo(42); | 3811 a.foo(42); |
3813 } | 3812 } |
3814 '''); | 3813 '''); |
3815 _performPendingAnalysisTasks(); | 3814 _performPendingAnalysisTasks(); |
3816 { | 3815 { |
3817 Expression argument = find42(); | 3816 Expression argument = find42(); |
3818 expect(argument.staticParameterElement, isNotNull); | 3817 expect(argument.staticParameterElement, isNotNull); |
3819 expect(argument.propagatedParameterElement, isNull); | |
3820 } | 3818 } |
| 3819 |
3821 // Update a.dart: remove type annotation for 'a'. | 3820 // Update a.dart: remove type annotation for 'a'. |
3822 // '42' has 'propagatedParameterElement', but not 'staticParameterElement'. | 3821 // '42' doesn't have 'staticParameterElement'. |
3823 context.setContents( | 3822 context.setContents( |
3824 a, | 3823 a, |
3825 r''' | 3824 r''' |
3826 class A { | 3825 class A { |
3827 foo(int p) {} | 3826 foo(int p) {} |
3828 } | 3827 } |
3829 final a = new A(); | 3828 final a = new A(); |
3830 main() { | 3829 main() { |
3831 a.foo(42); | 3830 a.foo(42); |
3832 } | 3831 } |
3833 '''); | 3832 '''); |
3834 _performPendingAnalysisTasks(); | 3833 _performPendingAnalysisTasks(); |
3835 { | 3834 { |
3836 Expression argument = find42(); | 3835 Expression argument = find42(); |
3837 expect(argument.staticParameterElement, isNull); | 3836 expect(argument.staticParameterElement, isNull); |
3838 expect(argument.propagatedParameterElement, isNotNull); | |
3839 } | 3837 } |
3840 } | 3838 } |
3841 | 3839 |
3842 void test_sequence_closureParameterTypesPropagation() { | 3840 void test_sequence_closureParameterTypesPropagation() { |
3843 Source a = addSource( | 3841 Source a = addSource( |
3844 '/a.dart', | 3842 '/a.dart', |
3845 r''' | 3843 r''' |
3846 main() { | 3844 main() { |
3847 f((p) => 4.2); | 3845 f((p) => 4.2); |
3848 } | 3846 } |
(...skipping 1401 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5250 * Initialize the visitor. | 5248 * Initialize the visitor. |
5251 */ | 5249 */ |
5252 _ElementGatherer(); | 5250 _ElementGatherer(); |
5253 | 5251 |
5254 @override | 5252 @override |
5255 void visitElement(Element element) { | 5253 void visitElement(Element element) { |
5256 elements[element] = element; | 5254 elements[element] = element; |
5257 super.visitElement(element); | 5255 super.visitElement(element); |
5258 } | 5256 } |
5259 } | 5257 } |
OLD | NEW |