blob: 0ce39c63156f0e3f403159e1b3efcb3ea2e29975 [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 P<T extends Object> {
final Object token;
const P._(this.token);
}
class CP<T extends Object> extends P<T> {
const factory CP(Type type) = CP<T>._;
const CP._(Object token) : super._(token);
}
class Token<T extends Object> {
const Token();
}
class VP<T extends Object> extends P<T> {
const factory VP.forToken(
Token<T> token,
T useValue,
) = VP<T>._;
const VP._(
Object token,
T useValue,
) : super._(token);
}
class M {
final List<P<Object>> list;
const M({this.list = const []});
}