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

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

Issue 2488043002: Enable generic method support by default (Closed)
Patch Set: clean up Created 4 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
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 library analyzer.test.generated.resolver_test; 5 library analyzer.test.generated.resolver_test;
6 6
7 import 'dart:collection'; 7 import 'dart:collection';
8 8
9 import 'package:analyzer/dart/ast/ast.dart'; 9 import 'package:analyzer/dart/ast/ast.dart';
10 import 'package:analyzer/dart/ast/token.dart'; 10 import 'package:analyzer/dart/ast/token.dart';
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after
217 expect(functions[0].enclosingElement, constructor); 217 expect(functions[0].enclosingElement, constructor);
218 assertErrors(source, [ParserErrorCode.GETTER_IN_FUNCTION]); 218 assertErrors(source, [ParserErrorCode.GETTER_IN_FUNCTION]);
219 } 219 }
220 } 220 }
221 221
222 /** 222 /**
223 * Tests for generic method and function resolution that do not use strong mode. 223 * Tests for generic method and function resolution that do not use strong mode.
224 */ 224 */
225 @reflectiveTest 225 @reflectiveTest
226 class GenericMethodResolverTest extends StaticTypeAnalyzer2TestShared { 226 class GenericMethodResolverTest extends StaticTypeAnalyzer2TestShared {
227 void setUp() {
228 super.setUp();
229 AnalysisOptionsImpl options = new AnalysisOptionsImpl();
230 options.enableGenericMethods = true;
231 resetWithOptions(options);
232 }
233
234 void test_genericMethod_propagatedType_promotion() { 227 void test_genericMethod_propagatedType_promotion() {
235 // Regression test for: 228 // Regression test for:
236 // https://github.com/dart-lang/sdk/issues/25340 229 // https://github.com/dart-lang/sdk/issues/25340
237 // 230 //
238 // Note, after https://github.com/dart-lang/sdk/issues/25486 the original 231 // Note, after https://github.com/dart-lang/sdk/issues/25486 the original
239 // strong mode example won't work, as we now compute a static type and 232 // strong mode example won't work, as we now compute a static type and
240 // therefore discard the propagated type. 233 // therefore discard the propagated type.
241 // 234 //
242 // So this test does not use strong mode. 235 // So this test does not use strong mode.
243 resolveTestUnit(r''' 236 resolveTestUnit(r'''
(...skipping 3330 matching lines...) Expand 10 before | Expand all | Expand 10 after
3574 node.accept(_visitor); 3567 node.accept(_visitor);
3575 } 3568 }
3576 3569
3577 /** 3570 /**
3578 * Parse the given [code], build elements and resolve in the 3571 * Parse the given [code], build elements and resolve in the
3579 * [TypeResolverMode.local] mode. The [code] is allowed to use only the type 3572 * [TypeResolverMode.local] mode. The [code] is allowed to use only the type
3580 * named `A`. 3573 * named `A`.
3581 */ 3574 */
3582 void _resolveTypeModeLocal( 3575 void _resolveTypeModeLocal(
3583 String code, AstNode getNodeToResolve(CompilationUnit unit)) { 3576 String code, AstNode getNodeToResolve(CompilationUnit unit)) {
3584 CompilationUnit unit = 3577 CompilationUnit unit = ParserTestCase.parseCompilationUnit2(code);
3585 ParserTestCase.parseCompilationUnit2(code, parseGenericMethods: true);
3586 var unitElement = new CompilationUnitElementImpl('/test.dart'); 3578 var unitElement = new CompilationUnitElementImpl('/test.dart');
3587 3579
3588 // Build API elements. 3580 // Build API elements.
3589 { 3581 {
3590 var holder = new ElementHolder(); 3582 var holder = new ElementHolder();
3591 unit.accept(new ElementBuilder(holder, unitElement)); 3583 unit.accept(new ElementBuilder(holder, unitElement));
3592 } 3584 }
3593 3585
3594 // Prepare for resolution. 3586 // Prepare for resolution.
3595 LibraryScope libraryScope; 3587 LibraryScope libraryScope;
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
3631 */ 3623 */
3632 class _StaleElement extends ElementImpl { 3624 class _StaleElement extends ElementImpl {
3633 _StaleElement() : super("_StaleElement", -1); 3625 _StaleElement() : super("_StaleElement", -1);
3634 3626
3635 @override 3627 @override
3636 get kind => throw "_StaleElement's kind shouldn't be accessed"; 3628 get kind => throw "_StaleElement's kind shouldn't be accessed";
3637 3629
3638 @override 3630 @override
3639 accept(_) => throw "_StaleElement shouldn't be visited"; 3631 accept(_) => throw "_StaleElement shouldn't be visited";
3640 } 3632 }
OLDNEW
« no previous file with comments | « pkg/analyzer/test/generated/parser_test.dart ('k') | pkg/analyzer/test/generated/static_type_analyzer_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698