Runtime type literals are const and should be accepted. import 'dart:mirrors'; @Object class C {} main(){ reflectClass(C).metadata; //Fails } import 'dart:mirrors'; const foo = Object; @foo class C {} main(){ reflectClass(C).metadata; //Works }