// 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. // A null safe library cannot implement `toString()` and return `null`, but a // legacy library, which may be called from null safe code, can. Test that that // doesn't fail. // Requirements=nnbd-weak import "package:expect/expect.dart"; import "interpolation_and_buffer_legacy_lib.dart"; void main() { var n = ToStringNull(); // Throws immediately when evaluating the first interpolated expression. Expect.throws(() => "$n${throw "unreachable"}"); // Throws immediately when adding object that doesn't return a String. Expect.throws( () => StringBuffer()..write(n)..write(throw "unreachable")); // Same behavior for constructor argument as if adding it to buffer later. Expect.throws(() => StringBuffer(n)..write(throw "unreachable")); }