| // Copyright (c) 2020, 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. |
| |
| class A { |
| final int i; |
| |
| A.constructor1([this.i]); // error |
| |
| A.constructor2({this.i}); // error |
| |
| A.constructor3([int i]) // error |
| : this.i = i; // ok |
| |
| A.constructor4({int i}) // error |
| : this.i = i; // ok |
| |
| A.constructor5([int? i]) // ok |
| : this.i = i; // error |
| |
| A.constructor6({int? i}) // ok |
| : this.i = i; // error |
| |
| A.constructor7({required int i}) // ok |
| : this.i = i; // ok |
| |
| external A.constructor8([int i]); // ok |
| |
| external A.constructor9({int i}); // ok |
| |
| factory A.factory3([int i]) = A.constructor3; // ok |
| |
| factory A.factory4({int i}) = A.constructor4; // ok |
| |
| factory A.factory5([int? i]) = A.constructor5; // ok |
| |
| factory A.factory6({int? i}) = A.constructor6; // ok |
| |
| factory A.factory7({required int i}) = A.constructor7; // ok |
| |
| factory A.factory8([int i]) => new A.constructor3(); // error |
| |
| factory A.factory9({int i}) => new A.constructor4(); // error |
| |
| method3([int i]) {} // error |
| |
| method4({int i}) {} // error |
| |
| method5([int? i]) {} // ok |
| |
| method6({int? i}) {} // ok |
| |
| method7({required int i}) {} // ok |
| |
| external method8([int i]); // ok |
| |
| external method9({int i}); // ok |
| } |
| |
| abstract class B { |
| var i = 42; |
| |
| method3([int i]); // ok |
| |
| method4({int i}); // ok |
| |
| method5([int? i]); // ok |
| |
| method6({int? i}); // ok |
| |
| method7({required int i}); // ok |
| } |
| |
| class C implements B { |
| var i; |
| |
| C.constructor1([this.i]); // error |
| |
| C.constructor2({this.i}); // error |
| |
| C.constructor3([int i]) : this.i = i; // error |
| |
| C.constructor4({int i}) : this.i = i; // error |
| |
| C.constructor5([int? i]) : this.i = i; // error |
| |
| C.constructor6({int? i}) : this.i = i; // error |
| |
| C.constructor7({required int i}) // ok |
| : this.i = i; // ok |
| |
| factory C.factory3([int i]) = C.constructor3; // ok |
| |
| factory C.factory4({int i}) = C.constructor4; // ok |
| |
| factory C.factory5([int? i]) = C.constructor5; // ok |
| |
| factory C.factory6({int? i}) = C.constructor6; // ok |
| |
| factory C.factory7({required int i}) = C.constructor7; // ok |
| |
| factory C.factory8([int i]) => new C.constructor3(); // error |
| |
| factory C.factory9({int i}) => new C.constructor4(); // error |
| |
| method3([i]) {} // error |
| |
| method4({i}) {} // error |
| |
| method5([i]) {} // ok |
| |
| method6({i}) {} // ok |
| |
| method7({required i}) {} // ok |
| } |
| |
| void main() {} |