浏览代码

Generate an error on explicit typecast from class to classref or from classref to class

Pierre Muller 3 年之前
父节点
当前提交
242056074f
共有 1 个文件被更改,包括 3 次插入1 次删除
  1. 3 1
      compiler/ncnv.pas

+ 3 - 1
compiler/ncnv.pas

@@ -3168,7 +3168,9 @@ implementation
                                    (nf_internal in flags)
                                    (nf_internal in flags)
                                  ))
                                  ))
                                 )
                                 )
-                               ) then
+                               ) or ((((resultdef.typ=objectdef) and (left.resultdef.typ=classrefdef))
+                                     or ((left.resultdef.typ=objectdef) and (resultdef.typ=classrefdef)))
+                                     and not (nf_internal in flags)) then
                            CGMessage2(type_e_illegal_type_conversion,left.resultdef.typename,resultdef.typename)
                            CGMessage2(type_e_illegal_type_conversion,left.resultdef.typename,resultdef.typename)
                          else
                          else
                            begin
                            begin