File tree Expand file tree Collapse file tree 1 file changed +4
-1
lines changed
Expand file tree Collapse file tree 1 file changed +4
-1
lines changed Original file line number Diff line number Diff line change @@ -194,7 +194,7 @@ LLConstant *IrAggr::getVtblInit() {
194194 assert (isIrFuncCreated (fd) && " invalid vtbl function" );
195195 c = DtoBitCast (DtoCallee (fd), voidPtrType);
196196
197- if (cd->isFuncHidden (fd)) {
197+ if (cd->isFuncHidden (fd) && !fd-> isFuture () ) {
198198 // fd is hidden from the view of this class. If fd overlaps with any
199199 // function in the vtbl[], issue error.
200200 for (size_t j = cd->vtblOffset (); j < n; j++) {
@@ -205,6 +205,9 @@ LLConstant *IrAggr::getVtblInit() {
205205 if (!fd2->ident ->equals (fd->ident )) {
206206 continue ;
207207 }
208+ if (fd2->isFuture ()) {
209+ continue ;
210+ }
208211 if (fd->leastAsSpecialized (fd2) || fd2->leastAsSpecialized (fd)) {
209212 TypeFunction *tf = static_cast <TypeFunction *>(fd->type );
210213 if (tf->ty == Tfunction) {
You can’t perform that action at this time.
0 commit comments