| // 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 'package:analyzer/src/error/codes.dart'; |
| |
| import 'partial_code_support.dart'; |
| |
| main() { |
| new MethodTest().buildAll(); |
| } |
| |
| class MethodTest extends PartialCodeTest { |
| buildAll() { |
| List<String> allExceptEof = <String>[ |
| 'field', |
| 'fieldConst', |
| 'fieldFinal', |
| 'methodNonVoid', |
| 'methodVoid', |
| 'getter', |
| 'setter' |
| ]; |
| buildTests( |
| 'field_declaration', |
| [ |
| // |
| // Instance field, const. |
| // |
| new TestDescriptor( |
| 'const_noName', |
| 'const', |
| [ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.EXPECTED_TOKEN], |
| 'const _s_;', |
| failing: allExceptEof, |
| expectedErrorsInValidCode: [ |
| CompileTimeErrorCode.CONST_NOT_INITIALIZED |
| ], |
| ), |
| new TestDescriptor( |
| 'const_name', |
| 'const f', |
| [ |
| ParserErrorCode.EXPECTED_TOKEN, |
| CompileTimeErrorCode.CONST_NOT_INITIALIZED |
| ], |
| 'const f;', |
| failing: ['methodNonVoid', 'getter', 'setter'], |
| expectedErrorsInValidCode: [ |
| CompileTimeErrorCode.CONST_NOT_INITIALIZED |
| ], |
| ), |
| new TestDescriptor( |
| 'const_equals', |
| 'const f =', |
| [ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.EXPECTED_TOKEN], |
| 'const f = _s_;', |
| failing: allExceptEof, |
| ), |
| new TestDescriptor( |
| 'const_initializer', |
| 'const f = 0', |
| [ParserErrorCode.EXPECTED_TOKEN], |
| 'const f = 0;', |
| ), |
| // |
| // Instance field, final. |
| // |
| new TestDescriptor( |
| 'final_noName', |
| 'final', |
| [ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.EXPECTED_TOKEN], |
| 'final _s_;', |
| failing: allExceptEof, |
| ), |
| new TestDescriptor( |
| 'final_name', |
| 'final f', |
| [ParserErrorCode.EXPECTED_TOKEN], |
| 'final f;', |
| failing: ['methodNonVoid', 'getter', 'setter'], |
| ), |
| new TestDescriptor( |
| 'final_equals', |
| 'final f =', |
| [ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.EXPECTED_TOKEN], |
| 'final f = _s_;', |
| failing: allExceptEof, |
| ), |
| new TestDescriptor( |
| 'final_initializer', |
| 'final f = 0', |
| [ParserErrorCode.EXPECTED_TOKEN], |
| 'final f = 0;', |
| ), |
| // |
| // Instance field, var. |
| // |
| new TestDescriptor( |
| 'var_noName', |
| 'var', |
| [ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.EXPECTED_TOKEN], |
| 'var _s_;', |
| failing: allExceptEof, |
| ), |
| new TestDescriptor( |
| 'var_name', |
| 'var f', |
| [ParserErrorCode.EXPECTED_TOKEN], |
| 'var f;', |
| failing: ['methodNonVoid', 'getter', 'setter'], |
| ), |
| new TestDescriptor( |
| 'var_equals', |
| 'var f =', |
| [ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.EXPECTED_TOKEN], |
| 'var f = _s_;', |
| failing: allExceptEof, |
| ), |
| new TestDescriptor( |
| 'var_initializer', |
| 'var f = 0', |
| [ParserErrorCode.EXPECTED_TOKEN], |
| 'var f = 0;', |
| ), |
| // |
| // Instance field, type. |
| // |
| new TestDescriptor( |
| 'type_noName', |
| 'A', |
| [ |
| ParserErrorCode.MISSING_CONST_FINAL_VAR_OR_TYPE, |
| ParserErrorCode.EXPECTED_TOKEN |
| ], |
| 'A _s_;', |
| allFailing: true, |
| ), |
| new TestDescriptor( |
| 'type_name', |
| 'A f', |
| [ParserErrorCode.EXPECTED_TOKEN], |
| 'A f;', |
| ), |
| new TestDescriptor( |
| 'type_equals', |
| 'A f =', |
| [ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.EXPECTED_TOKEN], |
| 'A f = _s_;', |
| failing: allExceptEof, |
| ), |
| new TestDescriptor( |
| 'type_initializer', |
| 'A f = 0', |
| [ParserErrorCode.EXPECTED_TOKEN], |
| 'A f = 0;', |
| ), |
| // |
| // Static field, const. |
| // |
| new TestDescriptor( |
| 'static_const_noName', |
| 'static const', |
| [ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.EXPECTED_TOKEN], |
| 'static const _s_;', |
| failing: allExceptEof, |
| expectedErrorsInValidCode: [ |
| CompileTimeErrorCode.CONST_NOT_INITIALIZED |
| ], |
| ), |
| new TestDescriptor( |
| 'static_const_name', |
| 'static const f', |
| [ |
| ParserErrorCode.EXPECTED_TOKEN, |
| CompileTimeErrorCode.CONST_NOT_INITIALIZED |
| ], |
| 'static const f;', |
| failing: ['methodNonVoid', 'getter', 'setter'], |
| expectedErrorsInValidCode: [ |
| CompileTimeErrorCode.CONST_NOT_INITIALIZED |
| ], |
| ), |
| new TestDescriptor( |
| 'static_const_equals', |
| 'static const f =', |
| [ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.EXPECTED_TOKEN], |
| 'static const f = _s_;', |
| failing: allExceptEof, |
| ), |
| new TestDescriptor( |
| 'static_const_initializer', |
| 'static const f = 0', |
| [ParserErrorCode.EXPECTED_TOKEN], |
| 'static const f = 0;', |
| ), |
| // |
| // Static field, final. |
| // |
| new TestDescriptor( |
| 'static_final_noName', |
| 'static final', |
| [ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.EXPECTED_TOKEN], |
| 'static final _s_;', |
| failing: allExceptEof, |
| ), |
| new TestDescriptor( |
| 'static_final_name', |
| 'static final f', |
| [ParserErrorCode.EXPECTED_TOKEN], |
| 'static final f;', |
| failing: ['methodNonVoid', 'getter', 'setter'], |
| ), |
| new TestDescriptor( |
| 'static_final_equals', |
| 'static final f =', |
| [ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.EXPECTED_TOKEN], |
| 'static final f = _s_;', |
| failing: allExceptEof, |
| ), |
| new TestDescriptor( |
| 'static_final_initializer', |
| 'static final f = 0', |
| [ParserErrorCode.EXPECTED_TOKEN], |
| 'static final f = 0;', |
| ), |
| // |
| // Static field, var. |
| // |
| new TestDescriptor( |
| 'static_var_noName', |
| 'static var', |
| [ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.EXPECTED_TOKEN], |
| 'static var _s_;', |
| failing: allExceptEof, |
| ), |
| new TestDescriptor( |
| 'static_var_name', |
| 'static var f', |
| [ParserErrorCode.EXPECTED_TOKEN], |
| 'static var f;', |
| failing: ['methodNonVoid', 'getter', 'setter'], |
| ), |
| new TestDescriptor( |
| 'static_var_equals', |
| 'static var f =', |
| [ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.EXPECTED_TOKEN], |
| 'static var f = _s_;', |
| failing: allExceptEof, |
| ), |
| new TestDescriptor( |
| 'static_var_initializer', |
| 'static var f = 0', |
| [ParserErrorCode.EXPECTED_TOKEN], |
| 'static var f = 0;', |
| ), |
| // |
| // Static field, type. |
| // |
| new TestDescriptor( |
| 'static_type_noName', |
| 'static A', |
| [ |
| ParserErrorCode.MISSING_CONST_FINAL_VAR_OR_TYPE, |
| ParserErrorCode.EXPECTED_TOKEN |
| ], |
| 'static A _s_;', |
| allFailing: true, |
| ), |
| new TestDescriptor( |
| 'static_type_name', |
| 'static A f', |
| [ParserErrorCode.EXPECTED_TOKEN], |
| 'static A f;', |
| ), |
| new TestDescriptor( |
| 'static_type_equals', |
| 'static A f =', |
| [ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.EXPECTED_TOKEN], |
| 'static A f = _s_;', |
| failing: allExceptEof, |
| ), |
| new TestDescriptor( |
| 'static_type_initializer', |
| 'static A f = 0', |
| [ParserErrorCode.EXPECTED_TOKEN], |
| 'static A f = 0;', |
| ), |
| ], |
| PartialCodeTest.classMemberSuffixes, |
| head: 'class C { ', |
| tail: ' }', |
| ); |
| } |
| } |