mirror of
https://github.com/dart-lang/sdk
synced 2024-09-16 01:30:32 +00:00
00b2e580a3
Bug: https://github.com/dart-lang/sdk/issues/40045 Change-Id: I597259b38684de87016f1e136723d24f4ac05420 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/132440 Reviewed-by: Ben Konyi <bkonyi@google.com> Commit-Queue: Ryan Macnak <rmacnak@google.com>
29 lines
726 B
Dart
29 lines
726 B
Dart
// Copyright (c) 2013, 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.
|
|
|
|
// Ensure that otherwise uninstantiated classes can be instantiated
|
|
// reflectively.
|
|
|
|
import "dart:mirrors";
|
|
|
|
class Foo {
|
|
int a = 0;
|
|
}
|
|
|
|
main() {
|
|
// Do NOT instantiate Foo.
|
|
var m = reflectClass(Foo);
|
|
var instance = m.newInstance(Symbol.empty, []);
|
|
print(instance);
|
|
bool threw = false;
|
|
try {
|
|
m.newInstance(#noSuchConstructor, []);
|
|
throw 'Expected an exception';
|
|
} on NoSuchMethodError catch (e) {
|
|
print(e);
|
|
threw = true;
|
|
}
|
|
if (!threw) throw 'Expected a NoSuchMethodError';
|
|
}
|