diff --git a/compiler/nld.pas b/compiler/nld.pas index 8990b1ea65..fbc70ac2da 100644 --- a/compiler/nld.pas +++ b/compiler/nld.pas @@ -697,12 +697,14 @@ implementation {$endif} then begin - check_ranges(fileinfo,right,left.resultdef); + if not(nf_internal in flags) then + check_ranges(fileinfo,right,left.resultdef); end else begin { check if the assignment may cause a range check error } - check_ranges(fileinfo,right,left.resultdef); + if not(nf_internal in flags) then + check_ranges(fileinfo,right,left.resultdef); { beginners might be confused about an error message like Incompatible types: got "untyped" expected "LongInt" @@ -711,6 +713,8 @@ implementation if (left.resultdef.typ<>procvardef) and (right.nodetype=calln) and is_void(right.resultdef) then CGMessage(type_e_procedures_return_no_value) + else if nf_internal in flags then + inserttypeconv_internal(right,left.resultdef) else inserttypeconv(right,left.resultdef); end;