mirror of
				https://gitlab.com/freepascal.org/fpc/source.git
				synced 2025-11-04 10:39:40 +01:00 
			
		
		
		
	compiler:
- don't find MoveNext functions with the required arguments - add some test from Alexander S. Klenin (issue #0014990) git-svn-id: trunk@14044 -
This commit is contained in:
		
							parent
							
								
									5f7bc2d3b5
								
							
						
					
					
						commit
						2f0cde4625
					
				
							
								
								
									
										1
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
								
							@ -8240,6 +8240,7 @@ tests/test/tforin19.pp svneol=native#text/pascal
 | 
			
		||||
tests/test/tforin2.pp svneol=native#text/pascal
 | 
			
		||||
tests/test/tforin20.pp svneol=native#text/pascal
 | 
			
		||||
tests/test/tforin21.pp svneol=native#text/pascal
 | 
			
		||||
tests/test/tforin22.pp svneol=native#text/pascal
 | 
			
		||||
tests/test/tforin3.pp svneol=native#text/pascal
 | 
			
		||||
tests/test/tforin4.pp svneol=native#text/pascal
 | 
			
		||||
tests/test/tforin5.pp svneol=native#text/pascal
 | 
			
		||||
 | 
			
		||||
@ -584,6 +584,8 @@ begin
 | 
			
		||||
      if movenext = nil then
 | 
			
		||||
      begin
 | 
			
		||||
        result:=cerrornode.create;
 | 
			
		||||
        hloopvar.free;
 | 
			
		||||
        hloopbody.free;
 | 
			
		||||
        Message1(sym_e_no_enumerator_move,pd.returndef.GetTypeName);
 | 
			
		||||
      end
 | 
			
		||||
      else
 | 
			
		||||
@ -592,6 +594,8 @@ begin
 | 
			
		||||
        if current = nil then
 | 
			
		||||
        begin
 | 
			
		||||
          result:=cerrornode.create;
 | 
			
		||||
          hloopvar.free;
 | 
			
		||||
          hloopbody.free;
 | 
			
		||||
          Message1(sym_e_no_enumerator_current,pd.returndef.GetTypeName);
 | 
			
		||||
        end
 | 
			
		||||
        else
 | 
			
		||||
@ -607,6 +611,8 @@ begin
 | 
			
		||||
      else
 | 
			
		||||
        begin
 | 
			
		||||
          result:=cerrornode.create;
 | 
			
		||||
          hloopvar.free;
 | 
			
		||||
          hloopbody.free;
 | 
			
		||||
          Message1(sym_e_no_enumerator,expr.resultdef.GetTypeName);
 | 
			
		||||
        end;
 | 
			
		||||
      end;
 | 
			
		||||
 | 
			
		||||
@ -4334,6 +4334,7 @@ implementation
 | 
			
		||||
                  pd := tprocdef(Tprocsym(sym).ProcdefList[i]);
 | 
			
		||||
                  if (pd.proctypeoption = potype_function) and
 | 
			
		||||
                     is_boolean(pd.returndef) and
 | 
			
		||||
                     (pd.minparacount = 0) and
 | 
			
		||||
                     (pd.visibility >= vis_public) then
 | 
			
		||||
                  begin
 | 
			
		||||
                    result:=pd;
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										27
									
								
								tests/test/tforin22.pp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								tests/test/tforin22.pp
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,27 @@
 | 
			
		||||
{ %FAIL}
 | 
			
		||||
{$mode objfpc}
 | 
			
		||||
{$apptype console}
 | 
			
		||||
 | 
			
		||||
type 
 | 
			
		||||
  T = class
 | 
			
		||||
    F: Integer;
 | 
			
		||||
    function MoveNext(a: Integer): Boolean;
 | 
			
		||||
    property Current: Integer read F;
 | 
			
		||||
  end;
 | 
			
		||||
 | 
			
		||||
function T.MoveNext(a: Integer): Boolean; 
 | 
			
		||||
begin 
 | 
			
		||||
  Result := true; 
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
operator enumerator(a: Integer): T;
 | 
			
		||||
begin
 | 
			
		||||
  Result := T.Create;
 | 
			
		||||
  Result.F := a;
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
var
 | 
			
		||||
  i: Integer;
 | 
			
		||||
begin
 | 
			
		||||
  for i in 1 do Writeln(i);
 | 
			
		||||
end.
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user