blob: 8f571124d67539dfe3546b9f4550e7e298dad428 [file] [log] [blame]
library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:mirrors" as mir;
import "dart:mirrors";
class _FailingTest extends core::Object /*hasConstConstructor*/ {
const constructor •() self::_FailingTest
: super core::Object::•()
;
}
class MyTest extends core::Object {
synthetic constructor •() self::MyTest
: super core::Object::•()
;
@#C1
method foo() void {}
}
abstract class _MyTest2&Object&MyTest = core::Object with self::MyTest /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() self::_MyTest2&Object&MyTest
: super core::Object::•()
;
mixin-super-stub method foo() void
return super.{self::MyTest::foo}();
}
class MyTest2 extends self::_MyTest2&Object&MyTest {
synthetic constructor •() self::MyTest2
: super self::_MyTest2&Object&MyTest::•()
;
}
static const field self::_FailingTest failingTest = #C1;
static method main() dynamic {
mir::ClassMirror classMirror = mir::reflectClass(#C2);
classMirror.{mir::ClassMirror::instanceMembers}{core::Map<core::Symbol, mir::MethodMirror>}.{core::Map::forEach}((core::Symbol symbol, mir::MethodMirror memberMirror) void {
if(memberMirror.{mir::DeclarationMirror::simpleName}{core::Symbol} =={core::Symbol::==}{(core::Object) core::bool} #C3) {
core::print(memberMirror);
core::print(self::_hasFailingTestAnnotation(memberMirror));
}
}){((core::Symbol, mir::MethodMirror) void) void};
}
static method _hasFailingTestAnnotation(mir::MethodMirror method) core::bool {
core::bool r = self::_hasAnnotationInstance(method, #C1);
core::print("[_hasFailingTestAnnotation] ${method} ${r}");
return r;
}
static method _hasAnnotationInstance(mir::DeclarationMirror declaration, dynamic instance) core::bool
return declaration.{mir::DeclarationMirror::metadata}{core::List<mir::InstanceMirror>}.{core::Iterable::any}((mir::InstanceMirror annotation) core::bool {
core::print("annotation: ${annotation.{mir::InstanceMirror::reflectee}{dynamic}}");
return core::identical(annotation.{mir::InstanceMirror::reflectee}{dynamic}, instance);
}){((mir::InstanceMirror) core::bool) core::bool};
constants {
#C1 = self::_FailingTest {}
#C2 = TypeLiteralConstant(self::MyTest2*)
#C3 = #foo
}
Constructor coverage from constants:
org-dartlang-testcase:///bug33099.dart:
- _FailingTest. (from org-dartlang-testcase:///bug33099.dart:10:9)
- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)