Report compile-time error for const factories redirecting to malformed type

(fix issue 14305).

R=iposva@google.com

Review URL: https://codereview.chromium.org//29013005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29123 260f80e4-7a28-3924-810f-c04153c831b5
This commit is contained in:
regis@google.com 2013-10-23 21:03:11 +00:00
parent 3c4f43af68
commit 177276f059
2 changed files with 7 additions and 8 deletions

View file

@ -278,12 +278,18 @@ void ClassFinalizer::ResolveRedirectingFactory(const Class& cls,
const Function& factory) {
const Function& target = Function::Handle(factory.RedirectionTarget());
if (target.IsNull()) {
const Type& type = Type::Handle(factory.RedirectionType());
Type& type = Type::Handle(factory.RedirectionType());
if (!type.IsMalformed()) {
const GrowableObjectArray& visited_factories =
GrowableObjectArray::Handle(GrowableObjectArray::New());
ResolveRedirectingFactoryTarget(cls, factory, visited_factories);
}
if (factory.is_const()) {
type = factory.RedirectionType();
if (type.IsMalformed()) {
ReportError(Error::Handle(type.malformed_error()));
}
}
}
}

View file

@ -33,13 +33,6 @@ cyclic_typedef_test/11: Fail # Issue 13675
[ $compiler == none && $runtime == vm ]
class_keyword_test/02: MissingCompileTimeError # Issue 13627
const_types_test/23: MissingCompileTimeError # Issue 14305
const_types_test/24: MissingCompileTimeError # Issue 14305
const_types_test/25: MissingCompileTimeError # Issue 14305
const_types_test/26: MissingCompileTimeError # Issue 14305
const_types_test/27: MissingCompileTimeError # Issue 14305
const_types_test/41: MissingCompileTimeError # Issue 14305
[ $compiler == none && $runtime == vm && $checked ]
compile_time_constant_checked3_test/01: MissingCompileTimeError # Issue 13685
compile_time_constant_checked3_test/02: MissingCompileTimeError # Issue 13685