blob: 432d9d4fd1b3b6f23ed6b23e39a207b134bf1bb7 [file] [log] [blame]
// Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'package:analyzer/src/dart/error/syntactic_errors.dart';
import 'partial_code_support.dart';
main() {
new MethodTest().buildAll();
}
class MethodTest extends PartialCodeTest {
buildAll() {
buildTests(
'method_declaration',
[
//
// Instance method, no return type.
//
new TestDescriptor('noType_leftParen', 'm(',
[ParserErrorCode.EXPECTED_TOKEN], 'm();',
allFailing: true),
new TestDescriptor('noType_paramName', 'm(B',
[ParserErrorCode.EXPECTED_TOKEN], 'm(B);',
allFailing: true),
new TestDescriptor('noType_paramTypeAndName', 'm(B b',
[ParserErrorCode.EXPECTED_TOKEN], 'm(B b);',
allFailing: true),
new TestDescriptor(
'noType_paramAndComma',
'm(B b,',
[
ParserErrorCode.MISSING_IDENTIFIER,
ParserErrorCode.EXPECTED_TOKEN
],
'm(B b, _s_);',
allFailing: true),
new TestDescriptor('noType_noParams', 'm()',
[ParserErrorCode.EXPECTED_TOKEN], 'm();',
allFailing: true),
new TestDescriptor('noType_params', 'm(b, c)',
[ParserErrorCode.EXPECTED_TOKEN], 'm(b, c);',
allFailing: true),
new TestDescriptor(
'noType_emptyOptional',
'm(B b, [])',
[
ParserErrorCode.MISSING_IDENTIFIER,
ParserErrorCode.MISSING_FUNCTION_BODY
],
'm(B b, [_s_]){}'),
new TestDescriptor(
'noType_emptyNamed',
'm(B b, {})',
[
ParserErrorCode.MISSING_IDENTIFIER,
ParserErrorCode.MISSING_FUNCTION_BODY
],
'm(B b, {_s_}){}'),
//
// Instance method, with simple return type.
//
new TestDescriptor('type_leftParen', 'A m(',
[ParserErrorCode.EXPECTED_TOKEN], 'A m();',
allFailing: true),
new TestDescriptor('type_paramName', 'A m(B',
[ParserErrorCode.EXPECTED_TOKEN], 'A m(B);',
allFailing: true),
new TestDescriptor('type_paramTypeAndName', 'A m(B b',
[ParserErrorCode.EXPECTED_TOKEN], 'A m(B b);',
allFailing: true),
new TestDescriptor(
'type_paramAndComma',
'A m(B b,',
[
ParserErrorCode.MISSING_IDENTIFIER,
ParserErrorCode.EXPECTED_TOKEN
],
'A m(B b, _s_);',
allFailing: true),
new TestDescriptor('type_noParams', 'A m()',
[ParserErrorCode.EXPECTED_TOKEN], 'A m();',
allFailing: true),
new TestDescriptor('type_params', 'A m(b, c)',
[ParserErrorCode.EXPECTED_TOKEN], 'A m(b, c);',
allFailing: true),
new TestDescriptor(
'type_emptyOptional',
'A m(B b, [])',
[
ParserErrorCode.MISSING_IDENTIFIER,
ParserErrorCode.MISSING_FUNCTION_BODY
],
'A m(B b, [_s_]){}'),
new TestDescriptor(
'type_emptyNamed',
'A m(B b, {})',
[
ParserErrorCode.MISSING_IDENTIFIER,
ParserErrorCode.MISSING_FUNCTION_BODY
],
'A m(B b, {_s_}){}'),
//
// Static method, no return type.
//
new TestDescriptor('static_noType_leftParen', 'static m(',
[ParserErrorCode.EXPECTED_TOKEN], 'static m();',
allFailing: true),
new TestDescriptor('static_noType_paramName', 'static m(B',
[ParserErrorCode.EXPECTED_TOKEN], 'static m(B);',
allFailing: true),
new TestDescriptor('static_noType_paramTypeAndName', 'static m(B b',
[ParserErrorCode.EXPECTED_TOKEN], 'static m(B b);',
allFailing: true),
new TestDescriptor(
'static_noType_paramAndComma',
'static m(B b,',
[
ParserErrorCode.MISSING_IDENTIFIER,
ParserErrorCode.EXPECTED_TOKEN
],
'static m(B b, _s_);',
allFailing: true),
new TestDescriptor('static_noType_noParams', 'static m()',
[ParserErrorCode.EXPECTED_TOKEN], 'static m();',
allFailing: true),
new TestDescriptor('static_noType_params', 'static m(b, c)',
[ParserErrorCode.EXPECTED_TOKEN], 'static m(b, c);',
allFailing: true),
new TestDescriptor(
'static_noType_emptyOptional',
'static m(B b, [])',
[
ParserErrorCode.MISSING_IDENTIFIER,
ParserErrorCode.MISSING_FUNCTION_BODY
],
'static m(B b, [_s_]){}'),
new TestDescriptor(
'static_noType_emptyNamed',
'static m(B b, {})',
[
ParserErrorCode.MISSING_IDENTIFIER,
ParserErrorCode.MISSING_FUNCTION_BODY
],
'static m(B b, {_s_}){}'),
//
// Static method, with simple return type.
//
new TestDescriptor('static_type_leftParen', 'static A m(',
[ParserErrorCode.EXPECTED_TOKEN], 'static A m();',
allFailing: true),
new TestDescriptor('static_type_paramName', 'static A m(B',
[ParserErrorCode.EXPECTED_TOKEN], 'static A m(B);',
allFailing: true),
new TestDescriptor('static_type_paramTypeAndName', 'static A m(B b',
[ParserErrorCode.EXPECTED_TOKEN], 'static A m(B b);',
allFailing: true),
new TestDescriptor(
'static_type_paramAndComma',
'static A m(B b,',
[
ParserErrorCode.MISSING_IDENTIFIER,
ParserErrorCode.EXPECTED_TOKEN
],
'static A m(B b, _s_);',
allFailing: true),
new TestDescriptor('static_type_noParams', 'static A m()',
[ParserErrorCode.EXPECTED_TOKEN], 'static A m();',
allFailing: true),
new TestDescriptor('static_type_params', 'static A m(b, c)',
[ParserErrorCode.EXPECTED_TOKEN], 'static A m(b, c);',
allFailing: true),
new TestDescriptor(
'static_type_emptyOptional',
'static A m(B b, [])',
[
ParserErrorCode.MISSING_IDENTIFIER,
ParserErrorCode.MISSING_FUNCTION_BODY
],
'static A m(B b, [_s_]){}'),
new TestDescriptor(
'static_type_emptyNamed',
'static A m(B b, {})',
[
ParserErrorCode.MISSING_IDENTIFIER,
ParserErrorCode.MISSING_FUNCTION_BODY
],
'static A m(B b, {_s_}){}'),
],
PartialCodeTest.classMemberSuffixes,
head: 'class C { ',
tail: ' }');
}
}