瀏覽代碼

* slightly improved previous in checking patch

git-svn-id: trunk@6892 -
Jonas Maebe 18 年之前
父節點
當前提交
2e3833cd7a
共有 1 個文件被更改,包括 7 次插入13 次删除
  1. 7 13
      compiler/nset.pas

+ 7 - 13
compiler/nset.pas

@@ -272,19 +272,13 @@ implementation
          else if assigned(tsetdef(right.resultdef).elementdef) and
                  not(is_integer(tsetdef(right.resultdef).elementdef) and
                      is_integer(left.resultdef)) then
-           begin
-             { Dummy type conversion to check things like                }
-             { 'char in set_of_byte'. Can't use is_subequal because that }
-             { will fail for 'widechar in set_of_char'                   }
-             { Can't use the type conversion for integers because then   }
-             { "longint in set_of_byte" will give a range check error    }
-             { instead of false                                          }
-             { Use a copy of left in case the typeconv node would modify }
-             { left directly (since we need the original left)           }
-             t := ctypeconvnode.create(left.getcopy,tsetdef(right.resultdef).elementdef);
-             typecheckpass(t);
-             t.free;
-           end;
+            { Type conversion to check things like 'char in set_of_byte'. }
+            { Can't use is_subequal because that will fail for            }
+            { 'widechar in set_of_char'                                   }
+            { Can't use the type conversion for integers because then     }
+            { "longint in set_of_byte" will give a range check error      }
+            { instead of false                                            }
+            inserttypeconv(left,tsetdef(right.resultdef).elementdef);
 
          { empty set then return false }
          if not assigned(tsetdef(right.resultdef).elementdef) or