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

Side by Side Diff: pkg/analyzer/test/src/summary/summary_common.dart

Issue 1833823002: Add tests for summarizing / resynthesizing using only AST. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 9 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 analyzer.test.src.summary.summary_common; 5 library analyzer.test.src.summary.summary_common;
6 6
7 import 'package:analyzer/analyzer.dart'; 7 import 'package:analyzer/analyzer.dart';
8 import 'package:analyzer/dart/ast/ast.dart'; 8 import 'package:analyzer/dart/ast/ast.dart';
9 import 'package:analyzer/dart/element/element.dart'; 9 import 'package:analyzer/dart/element/element.dart';
10 import 'package:analyzer/src/dart/scanner/reader.dart'; 10 import 'package:analyzer/src/dart/scanner/reader.dart';
(...skipping 3320 matching lines...) Expand 10 before | Expand all | Expand 10 after
3331 } 3331 }
3332 3332
3333 test_constructor_initializing_formal_named_withDefault() { 3333 test_constructor_initializing_formal_named_withDefault() {
3334 UnlinkedExecutable executable = findExecutable('', 3334 UnlinkedExecutable executable = findExecutable('',
3335 executables: serializeClassText('class C { C({this.x: 42}); final x; }') 3335 executables: serializeClassText('class C { C({this.x: 42}); final x; }')
3336 .executables); 3336 .executables);
3337 UnlinkedParam parameter = executable.parameters[0]; 3337 UnlinkedParam parameter = executable.parameters[0];
3338 expect(parameter.kind, UnlinkedParamKind.named); 3338 expect(parameter.kind, UnlinkedParamKind.named);
3339 expect(parameter.initializer, isNotNull); 3339 expect(parameter.initializer, isNotNull);
3340 expect(parameter.defaultValueCode, '42'); 3340 expect(parameter.defaultValueCode, '42');
3341 _assertCodeRange(parameter.codeRange, 13, 10);
3341 _assertUnlinkedConst(parameter.defaultValue, 3342 _assertUnlinkedConst(parameter.defaultValue,
3342 operators: [UnlinkedConstOperation.pushInt], ints: [42]); 3343 operators: [UnlinkedConstOperation.pushInt], ints: [42]);
3343 } 3344 }
3344 3345
3345 test_constructor_initializing_formal_non_function_typed() { 3346 test_constructor_initializing_formal_non_function_typed() {
3346 UnlinkedExecutable executable = findExecutable('', 3347 UnlinkedExecutable executable = findExecutable('',
3347 executables: 3348 executables:
3348 serializeClassText('class C { C(this.x); final x; }').executables); 3349 serializeClassText('class C { C(this.x); final x; }').executables);
3349 UnlinkedParam parameter = executable.parameters[0]; 3350 UnlinkedParam parameter = executable.parameters[0];
3350 expect(parameter.isFunctionTyped, isFalse); 3351 expect(parameter.isFunctionTyped, isFalse);
(...skipping 11 matching lines...) Expand all
3362 3363
3363 test_constructor_initializing_formal_positional_withDefault() { 3364 test_constructor_initializing_formal_positional_withDefault() {
3364 UnlinkedExecutable executable = findExecutable('', 3365 UnlinkedExecutable executable = findExecutable('',
3365 executables: 3366 executables:
3366 serializeClassText('class C { C([this.x = 42]); final x; }') 3367 serializeClassText('class C { C([this.x = 42]); final x; }')
3367 .executables); 3368 .executables);
3368 UnlinkedParam parameter = executable.parameters[0]; 3369 UnlinkedParam parameter = executable.parameters[0];
3369 expect(parameter.kind, UnlinkedParamKind.positional); 3370 expect(parameter.kind, UnlinkedParamKind.positional);
3370 expect(parameter.initializer, isNotNull); 3371 expect(parameter.initializer, isNotNull);
3371 expect(parameter.defaultValueCode, '42'); 3372 expect(parameter.defaultValueCode, '42');
3373 _assertCodeRange(parameter.codeRange, 13, 11);
3372 _assertUnlinkedConst(parameter.defaultValue, 3374 _assertUnlinkedConst(parameter.defaultValue,
3373 operators: [UnlinkedConstOperation.pushInt], ints: [42]); 3375 operators: [UnlinkedConstOperation.pushInt], ints: [42]);
3374 } 3376 }
3375 3377
3376 test_constructor_initializing_formal_required() { 3378 test_constructor_initializing_formal_required() {
3377 UnlinkedExecutable executable = findExecutable('', 3379 UnlinkedExecutable executable = findExecutable('',
3378 executables: 3380 executables:
3379 serializeClassText('class C { C(this.x); final x; }').executables); 3381 serializeClassText('class C { C(this.x); final x; }').executables);
3380 UnlinkedParam parameter = executable.parameters[0]; 3382 UnlinkedParam parameter = executable.parameters[0];
3381 expect(parameter.kind, UnlinkedParamKind.required); 3383 expect(parameter.kind, UnlinkedParamKind.required);
(...skipping 24 matching lines...) Expand all
3406 } 3408 }
3407 3409
3408 test_constructor_named() { 3410 test_constructor_named() {
3409 String text = 'class C { C.foo(); }'; 3411 String text = 'class C { C.foo(); }';
3410 UnlinkedExecutable executable = findExecutable('foo', 3412 UnlinkedExecutable executable = findExecutable('foo',
3411 executables: serializeClassText(text).executables); 3413 executables: serializeClassText(text).executables);
3412 expect(executable.name, 'foo'); 3414 expect(executable.name, 'foo');
3413 expect(executable.nameOffset, text.indexOf('foo')); 3415 expect(executable.nameOffset, text.indexOf('foo'));
3414 expect(executable.periodOffset, text.indexOf('.foo')); 3416 expect(executable.periodOffset, text.indexOf('.foo'));
3415 expect(executable.nameEnd, text.indexOf('()')); 3417 expect(executable.nameEnd, text.indexOf('()'));
3418 _assertCodeRange(executable.codeRange, 10, 8);
3416 } 3419 }
3417 3420
3418 test_constructor_non_const() { 3421 test_constructor_non_const() {
3419 UnlinkedExecutable executable = findExecutable('', 3422 UnlinkedExecutable executable = findExecutable('',
3420 executables: serializeClassText('class C { C(); }').executables); 3423 executables: serializeClassText('class C { C(); }').executables);
3421 expect(executable.isConst, isFalse); 3424 expect(executable.isConst, isFalse);
3422 } 3425 }
3423 3426
3424 test_constructor_non_factory() { 3427 test_constructor_non_factory() {
3425 UnlinkedExecutable executable = findExecutable('', 3428 UnlinkedExecutable executable = findExecutable('',
(...skipping 1088 matching lines...) Expand 10 before | Expand all | Expand 10 after
4514 expect(executable.isAbstract, false); 4517 expect(executable.isAbstract, false);
4515 expect(executable.isConst, false); 4518 expect(executable.isConst, false);
4516 expect(executable.isFactory, false); 4519 expect(executable.isFactory, false);
4517 expect(executable.isStatic, false); 4520 expect(executable.isStatic, false);
4518 expect(executable.parameters, hasLength(1)); 4521 expect(executable.parameters, hasLength(1));
4519 checkTypeRef(executable.returnType, null, null, 'C'); 4522 checkTypeRef(executable.returnType, null, null, 'C');
4520 expect(executable.typeParameters, isEmpty); 4523 expect(executable.typeParameters, isEmpty);
4521 expect(executable.isExternal, false); 4524 expect(executable.isExternal, false);
4522 } 4525 }
4523 4526
4527 test_executable_operator_abstract() {
4528 UnlinkedExecutable executable =
4529 serializeClassText('class C { C operator+(C c); }', allowErrors: true)
4530 .executables[0];
4531 expect(executable.isAbstract, true);
4532 expect(executable.isExternal, false);
4533 }
4534
4524 test_executable_operator_equal() { 4535 test_executable_operator_equal() {
4525 UnlinkedExecutable executable = serializeClassText( 4536 UnlinkedExecutable executable = serializeClassText(
4526 'class C { bool operator==(Object other) => false; }') 4537 'class C { bool operator==(Object other) => false; }')
4527 .executables[0]; 4538 .executables[0];
4528 expect(executable.name, '=='); 4539 expect(executable.name, '==');
4529 } 4540 }
4530 4541
4531 test_executable_operator_external() { 4542 test_executable_operator_external() {
4532 UnlinkedExecutable executable = 4543 UnlinkedExecutable executable =
4533 serializeClassText('class C { external C operator+(C c); }') 4544 serializeClassText('class C { external C operator+(C c); }')
4534 .executables[0]; 4545 .executables[0];
4546 expect(executable.isAbstract, false);
4535 expect(executable.isExternal, true); 4547 expect(executable.isExternal, true);
4536 } 4548 }
4537 4549
4538 test_executable_operator_greater_equal() { 4550 test_executable_operator_greater_equal() {
4539 UnlinkedExecutable executable = 4551 UnlinkedExecutable executable =
4540 serializeClassText('class C { bool operator>=(C other) => false; }') 4552 serializeClassText('class C { bool operator>=(C other) => false; }')
4541 .executables[0]; 4553 .executables[0];
4542 expect(executable.name, '>='); 4554 expect(executable.name, '>=');
4543 } 4555 }
4544 4556
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
4670 expect(param.defaultValue, isNull); 4682 expect(param.defaultValue, isNull);
4671 expect(param.defaultValueCode, isEmpty); 4683 expect(param.defaultValueCode, isEmpty);
4672 } 4684 }
4673 4685
4674 test_executable_param_kind_named_withDefault() { 4686 test_executable_param_kind_named_withDefault() {
4675 UnlinkedExecutable executable = serializeExecutableText('f({x: 42}) {}'); 4687 UnlinkedExecutable executable = serializeExecutableText('f({x: 42}) {}');
4676 UnlinkedParam param = executable.parameters[0]; 4688 UnlinkedParam param = executable.parameters[0];
4677 expect(param.kind, UnlinkedParamKind.named); 4689 expect(param.kind, UnlinkedParamKind.named);
4678 expect(param.initializer, isNotNull); 4690 expect(param.initializer, isNotNull);
4679 expect(param.defaultValueCode, '42'); 4691 expect(param.defaultValueCode, '42');
4692 _assertCodeRange(param.codeRange, 3, 5);
4680 _assertUnlinkedConst(param.defaultValue, 4693 _assertUnlinkedConst(param.defaultValue,
4681 operators: [UnlinkedConstOperation.pushInt], ints: [42]); 4694 operators: [UnlinkedConstOperation.pushInt], ints: [42]);
4682 } 4695 }
4683 4696
4684 test_executable_param_kind_positional() { 4697 test_executable_param_kind_positional() {
4685 UnlinkedExecutable executable = serializeExecutableText('f([x]) {}'); 4698 UnlinkedExecutable executable = serializeExecutableText('f([x]) {}');
4686 UnlinkedParam param = executable.parameters[0]; 4699 UnlinkedParam param = executable.parameters[0];
4687 expect(param.kind, UnlinkedParamKind.positional); 4700 expect(param.kind, UnlinkedParamKind.positional);
4688 expect(param.initializer, isNull); 4701 expect(param.initializer, isNull);
4689 expect(param.defaultValue, isNull); 4702 expect(param.defaultValue, isNull);
4690 expect(param.defaultValueCode, isEmpty); 4703 expect(param.defaultValueCode, isEmpty);
4691 } 4704 }
4692 4705
4693 test_executable_param_kind_positional_withDefault() { 4706 test_executable_param_kind_positional_withDefault() {
4694 UnlinkedExecutable executable = serializeExecutableText('f([x = 42]) {}'); 4707 UnlinkedExecutable executable = serializeExecutableText('f([x = 42]) {}');
4695 UnlinkedParam param = executable.parameters[0]; 4708 UnlinkedParam param = executable.parameters[0];
4696 expect(param.kind, UnlinkedParamKind.positional); 4709 expect(param.kind, UnlinkedParamKind.positional);
4697 expect(param.initializer, isNotNull); 4710 expect(param.initializer, isNotNull);
4698 expect(param.defaultValueCode, '42'); 4711 expect(param.defaultValueCode, '42');
4712 _assertCodeRange(param.codeRange, 3, 6);
4699 _assertUnlinkedConst(param.defaultValue, 4713 _assertUnlinkedConst(param.defaultValue,
4700 operators: [UnlinkedConstOperation.pushInt], ints: [42]); 4714 operators: [UnlinkedConstOperation.pushInt], ints: [42]);
4701 } 4715 }
4702 4716
4703 test_executable_param_kind_required() { 4717 test_executable_param_kind_required() {
4704 UnlinkedExecutable executable = serializeExecutableText('f(x) {}'); 4718 UnlinkedExecutable executable = serializeExecutableText('f(x) {}');
4705 UnlinkedParam param = executable.parameters[0]; 4719 UnlinkedParam param = executable.parameters[0];
4706 expect(param.kind, UnlinkedParamKind.required); 4720 expect(param.kind, UnlinkedParamKind.required);
4707 expect(param.initializer, isNull); 4721 expect(param.initializer, isNull);
4708 expect(param.defaultValue, isNull); 4722 expect(param.defaultValue, isNull);
(...skipping 2818 matching lines...) Expand 10 before | Expand all | Expand 10 after
7527 class _PrefixExpectation { 7541 class _PrefixExpectation {
7528 final ReferenceKind kind; 7542 final ReferenceKind kind;
7529 final String name; 7543 final String name;
7530 final String absoluteUri; 7544 final String absoluteUri;
7531 final String relativeUri; 7545 final String relativeUri;
7532 final int numTypeParameters; 7546 final int numTypeParameters;
7533 7547
7534 _PrefixExpectation(this.kind, this.name, 7548 _PrefixExpectation(this.kind, this.name,
7535 {this.absoluteUri, this.relativeUri, this.numTypeParameters: 0}); 7549 {this.absoluteUri, this.relativeUri, this.numTypeParameters: 0});
7536 } 7550 }
OLDNEW
« no previous file with comments | « pkg/analyzer/test/src/summary/resynthesize_test.dart ('k') | pkg/analyzer/test/src/summary/test_all.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698