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

Side by Side Diff: pkg/analyzer/test/src/task/dart_test.dart

Issue 1181603004: Add AnalysisContext.onResultComputed(). (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 6 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) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, 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 test.src.task.dart_test; 5 library test.src.task.dart_test;
6 6
7 import 'package:analyzer/src/context/cache.dart'; 7 import 'package:analyzer/src/context/cache.dart';
8 import 'package:analyzer/src/generated/ast.dart'; 8 import 'package:analyzer/src/generated/ast.dart';
9 import 'package:analyzer/src/generated/constant.dart'; 9 import 'package:analyzer/src/generated/constant.dart';
10 import 'package:analyzer/src/generated/element.dart'; 10 import 'package:analyzer/src/generated/element.dart';
(...skipping 2366 matching lines...) Expand 10 before | Expand all | Expand 10 after
2377 Source source = newSource('/test.dart', ''' 2377 Source source = newSource('/test.dart', '''
2378 class A { 2378 class A {
2379 m() {} 2379 m() {}
2380 } 2380 }
2381 main(A a) { 2381 main(A a) {
2382 a.m(); 2382 a.m();
2383 } 2383 }
2384 '''); 2384 ''');
2385 LibrarySpecificUnit target = new LibrarySpecificUnit(source, source); 2385 LibrarySpecificUnit target = new LibrarySpecificUnit(source, source);
2386 // prepare unit and "a.m()" invocation 2386 // prepare unit and "a.m()" invocation
2387 _computeResult(target, RESOLVED_UNIT6); 2387 _computeResult(target, RESOLVED_UNIT_NO_CONSTANTS);
2388 CompilationUnit unit = outputs[RESOLVED_UNIT6]; 2388 CompilationUnit unit = outputs[RESOLVED_UNIT_NO_CONSTANTS];
2389 // walk the AST 2389 // walk the AST
2390 FunctionDeclaration function = unit.declarations[1]; 2390 FunctionDeclaration function = unit.declarations[1];
2391 BlockFunctionBody body = function.functionExpression.body; 2391 BlockFunctionBody body = function.functionExpression.body;
2392 ExpressionStatement statement = body.block.statements[0]; 2392 ExpressionStatement statement = body.block.statements[0];
2393 MethodInvocation invocation = statement.expression; 2393 MethodInvocation invocation = statement.expression;
2394 expect(task, new isInstanceOf<ResolveUnitReferencesTask>()); 2394 expect(task, new isInstanceOf<ResolveUnitReferencesTask>());
2395 expect(unit, same(outputs[RESOLVED_UNIT6])); 2395 expect(unit, same(outputs[RESOLVED_UNIT_NO_CONSTANTS]));
2396 // a.m() is resolved now 2396 // a.m() is resolved now
2397 expect(invocation.methodName.staticElement, isNotNull); 2397 expect(invocation.methodName.staticElement, isNotNull);
2398 } 2398 }
2399 2399
2400 test_perform_errors() { 2400 test_perform_errors() {
2401 Source source = newSource('/test.dart', ''' 2401 Source source = newSource('/test.dart', '''
2402 class A { 2402 class A {
2403 } 2403 }
2404 main(A a) { 2404 main(A a) {
2405 a.unknownMethod(); 2405 a.unknownMethod();
2406 } 2406 }
2407 '''); 2407 ''');
2408 LibrarySpecificUnit target = new LibrarySpecificUnit(source, source); 2408 LibrarySpecificUnit target = new LibrarySpecificUnit(source, source);
2409 _computeResult(target, RESOLVED_UNIT6); 2409 _computeResult(target, RESOLVED_UNIT_NO_CONSTANTS);
2410 expect(task, new isInstanceOf<ResolveUnitReferencesTask>()); 2410 expect(task, new isInstanceOf<ResolveUnitReferencesTask>());
2411 // validate 2411 // validate
2412 _fillErrorListener(RESOLVE_REFERENCES_ERRORS); 2412 _fillErrorListener(RESOLVE_REFERENCES_ERRORS);
2413 errorListener.assertErrorsWithCodes( 2413 errorListener.assertErrorsWithCodes(
2414 <ErrorCode>[StaticTypeWarningCode.UNDEFINED_METHOD]); 2414 <ErrorCode>[StaticTypeWarningCode.UNDEFINED_METHOD]);
2415 } 2415 }
2416 2416
2417 test_perform_importExport() { 2417 test_perform_importExport() {
2418 newSource('/a.dart', ''' 2418 newSource('/a.dart', '''
2419 library a; 2419 library a;
2420 class A<T> { 2420 class A<T> {
2421 T m() {} 2421 T m() {}
2422 } 2422 }
2423 '''); 2423 ''');
2424 newSource('/b.dart', ''' 2424 newSource('/b.dart', '''
2425 library b; 2425 library b;
2426 export 'a.dart'; 2426 export 'a.dart';
2427 '''); 2427 ''');
2428 Source sourceC = newSource('/c.dart', ''' 2428 Source sourceC = newSource('/c.dart', '''
2429 library c; 2429 library c;
2430 import 'b.dart'; 2430 import 'b.dart';
2431 main() { 2431 main() {
2432 new A<int>().m(); 2432 new A<int>().m();
2433 } 2433 }
2434 '''); 2434 ''');
2435 _computeResult(new LibrarySpecificUnit(sourceC, sourceC), RESOLVED_UNIT6); 2435 _computeResult(
2436 new LibrarySpecificUnit(sourceC, sourceC), RESOLVED_UNIT_NO_CONSTANTS);
2436 expect(task, new isInstanceOf<ResolveUnitReferencesTask>()); 2437 expect(task, new isInstanceOf<ResolveUnitReferencesTask>());
2437 // validate 2438 // validate
2438 CompilationUnit unit = outputs[RESOLVED_UNIT6]; 2439 CompilationUnit unit = outputs[RESOLVED_UNIT_NO_CONSTANTS];
2439 expect(unit, isNotNull); 2440 expect(unit, isNotNull);
2440 { 2441 {
2441 FunctionDeclaration functionDeclaration = unit.declarations[0]; 2442 FunctionDeclaration functionDeclaration = unit.declarations[0];
2442 BlockFunctionBody body = functionDeclaration.functionExpression.body; 2443 BlockFunctionBody body = functionDeclaration.functionExpression.body;
2443 List<Statement> statements = body.block.statements; 2444 List<Statement> statements = body.block.statements;
2444 ExpressionStatement statement = statements[0]; 2445 ExpressionStatement statement = statements[0];
2445 MethodInvocation invocation = statement.expression; 2446 MethodInvocation invocation = statement.expression;
2446 MethodElement methodElement = invocation.methodName.staticElement; 2447 MethodElement methodElement = invocation.methodName.staticElement;
2447 expect(methodElement, isNotNull); 2448 expect(methodElement, isNotNull);
2448 expect(methodElement.type, isNotNull); 2449 expect(methodElement.type, isNotNull);
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after
2713 /** 2714 /**
2714 * Fill [errorListener] with [result] errors in the current [task]. 2715 * Fill [errorListener] with [result] errors in the current [task].
2715 */ 2716 */
2716 void _fillErrorListener(ResultDescriptor<List<AnalysisError>> result) { 2717 void _fillErrorListener(ResultDescriptor<List<AnalysisError>> result) {
2717 List<AnalysisError> errors = task.outputs[result]; 2718 List<AnalysisError> errors = task.outputs[result];
2718 expect(errors, isNotNull, reason: result.name); 2719 expect(errors, isNotNull, reason: result.name);
2719 errorListener = new GatheringErrorListener(); 2720 errorListener = new GatheringErrorListener();
2720 errorListener.addAll(errors); 2721 errorListener.addAll(errors);
2721 } 2722 }
2722 } 2723 }
OLDNEW
« pkg/analyzer/lib/src/generated/engine.dart ('K') | « pkg/analyzer/test/src/context/context_test.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698