diff options
Diffstat (limited to 'deps/v8/src/torque/type-visitor.cc')
-rw-r--r-- | deps/v8/src/torque/type-visitor.cc | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/deps/v8/src/torque/type-visitor.cc b/deps/v8/src/torque/type-visitor.cc index 9b5c96ee40..b45452058d 100644 --- a/deps/v8/src/torque/type-visitor.cc +++ b/deps/v8/src/torque/type-visitor.cc @@ -165,6 +165,12 @@ const ClassType* TypeVisitor::ComputeType(ClassDeclaration* decl) { "class \"", decl->name->value, "\" must extend either Tagged or an already declared class"); } + if (super_class->HasUndefinedLayout() && + !(decl->flags & ClassFlag::kUndefinedLayout)) { + Error("Class \"", decl->name->value, + "\" defines its layout but extends a class which does not") + .Position(decl->pos); + } } std::string generates = decl->name->value; @@ -282,8 +288,9 @@ void TypeVisitor::VisitClassFieldsAndMethods( "only one indexable field is currently supported per class"); } seen_indexed_field = true; - const Field* index_field = - &(class_type->LookupFieldInternal(*field_expression.index)); + const NameAndType& index_field = + class_type->LookupFieldInternal(*field_expression.index) + .name_and_type; class_type->RegisterField( {field_expression.name_and_type.name->pos, class_type, |