// 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.
// @dart=2.9
class A {
  final x = null;

  const A.named1() sync* {}

  const A.named2() : x = new Object();
}

external foo(String x) {
  return x.length;
}

class B {}

class C {
  B b;
}

abstract class AbstractClass {
  const AbstractClass.id();
}

m() {
  const AbstractClass.id();
  (new C()?.b ??= new B()).b;
}

main() {}
