// Copyright (c) 2024, 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. import 'dart:_foreign_helper' show ArrayFlags, HArrayFlagsCheck; import 'dart:typed_data'; import 'package:expect/expect.dart'; void rub(Object object, String message) { try { // Always fail, using non-standard operation name and verb. HArrayFlagsCheck( object, ArrayFlags.unmodifiable, ArrayFlags.fixedLengthCheck, 'rub', 'burnish', ); Expect.fail('HArrayFlagsCheck should always throw'); } catch (e) { Expect.equals(message, e.toString()); } } main() { rub(const [], "Unsupported operation: 'rub': Cannot burnish a constant list"); rub( List.unmodifiable([]), "Unsupported operation: 'rub': Cannot burnish an unmodifiable list", ); rub( List.filled(0, 0), "Unsupported operation: 'rub': Cannot burnish a fixed-length list", ); rub([], "Unsupported operation: 'rub': Cannot burnish a list"); rub( Uint8List(10).asUnmodifiableView(), "Unsupported operation: 'rub': Cannot burnish an unmodifiable list", ); rub( ByteData(10).asUnmodifiableView(), "Unsupported operation: 'rub': Cannot burnish an unmodifiable ByteData", ); }