blob: e2150f902212491b1e22ee74774d25951fdb2989 [file] [log] [blame]
// 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() {}