blob: 6d3461d9cd29844f23c234ea3508cb397bd5865e [file] [log] [blame]
// 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:mirrors';
import 'package:expect/expect.dart';
import 'metadata_allowed_values_import.dart'; // Unprefixed.
import 'metadata_allowed_values_import.dart' as prefix;
@B.CONSTANT
class B {
static const CONSTANT = 3;
}
@C(3)
class C {
final field;
const C(this.field);
}
@D.named(4)
class D {
final field;
const D.named(this.field);
}
@Imported()
class N {}
@Imported.named()
class O {}
@Imported.CONSTANT
class P {}
@prefix.Imported()
class R {}
@prefix.Imported.named()
class S {}
@prefix.Imported.CONSTANT
class T {}
checkMetadata(DeclarationMirror mirror, List expectedMetadata) {
Expect.listEquals(expectedMetadata.map(reflect).toList(), mirror.metadata);
}
main() {
checkMetadata(reflectClass(B), [B.CONSTANT]);
checkMetadata(reflectClass(C), [const C(3)]);
checkMetadata(reflectClass(D), [const D.named(4)]);
checkMetadata(reflectClass(N), [const Imported()]);
checkMetadata(reflectClass(O), [const Imported.named()]);
checkMetadata(reflectClass(P), [Imported.CONSTANT]);
checkMetadata(reflectClass(R), [const prefix.Imported()]);
checkMetadata(reflectClass(S), [const prefix.Imported.named()]);
checkMetadata(reflectClass(T), [prefix.Imported.CONSTANT]);
}