dart-sdk/tests/language/regress/regress31106_test.dart
Robert Nystrom 67539c2faf Migrate language_2/regress to NNBD.
Change-Id: I318742cd4303d70c0625c9efd98bb01087aa5de4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/150466
Commit-Queue: Bob Nystrom <rnystrom@google.com>
Reviewed-by: Erik Ernst <eernst@google.com>
2020-06-13 01:00:22 +00:00

42 lines
983 B
Dart

// Copyright (c) 2017, 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 'package:expect/expect.dart';
void main() {
final schema = const UserSchema();
Expect.equals('users', schema.name);
final user = const User(first: 'firstname');
var map = schema._decode(user);
Expect.equals('firstname', map['first']);
}
class User {
final String first;
const User({
required this.first,
});
}
class Schema<T> {
final String name;
final Map<String, Object> Function(T) _decode;
const Schema({
required this.name,
required Map<String, Object> Function(T) decode,
})
: _decode = decode;
}
class UserSchema extends Schema<User> {
static Map<String, Object> _decode$(User user) {
return {
'first': user.first,
};
}
const UserSchema() : super(name: 'users', decode: _decode$);
}