// Copyright (c) 2019, 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. method({int a = 42, required int b, required final int c}) {} class Class { method( {int a = 42, required int b, required final int c, required covariant final int d}) {} } // TODO(johnniwinther): Pass the required property to the function types. typedef Typedef1 = Function({int a, required int b}); typedef Typedef2({int a, required int b}); Function({int a, required int b}) field = ({int a = 42, required int b}) {}; abstract class A { // It's ok to omit the default values in abstract members. foo({int x}); } class B extends A { // This is an implementation and it should have the default value. foo({x}) {} } class C extends A { foo({x = 42}) {} } ok() { Function({int a, required int b}) f; void g({int a = 42, required int b}) {} f = ({int a = 42, required int b}) {}; Function(int a, [int b]) f2; void g2(int a, [int b = 42]) {} f2 = (int a, [int b = 42]) {}; } error() { Function({int a, required int b}) f; void g({int a, required int b = 42}) {} f = ({int a, required int b = 42}) {}; Function(int a = 42, [int b]) f2; void g2(int a = 42, [int b]) {} f2 = (int a = 42, [int b]) {}; } main() {}