mirror of
				https://gitlab.com/freepascal.org/fpc/source.git
				synced 2025-11-04 06:39:25 +01:00 
			
		
		
		
	compiler: simplify _CLASS token handling in object declarations by Sven Barth (issue #18425)
git-svn-id: trunk@16733 -
This commit is contained in:
		
							parent
							
								
									b49b3ecc61
								
							
						
					
					
						commit
						d37fde7302
					
				@ -805,20 +805,18 @@ implementation
 | 
			
		||||
            _CLASS:
 | 
			
		||||
              begin
 | 
			
		||||
                is_classdef:=false;
 | 
			
		||||
                { read class method }
 | 
			
		||||
                if try_to_consume(_CLASS) then
 | 
			
		||||
                 begin
 | 
			
		||||
                   { class modifier is only allowed for procedures, functions, }
 | 
			
		||||
                   { constructors, destructors, fields and properties          }
 | 
			
		||||
                   if not(token in [_FUNCTION,_PROCEDURE,_PROPERTY,_VAR,_CONSTRUCTOR,_DESTRUCTOR]) then
 | 
			
		||||
                     Message(parser_e_procedure_or_function_expected);
 | 
			
		||||
                { read class method/field/property }
 | 
			
		||||
                consume(_CLASS);
 | 
			
		||||
                { class modifier is only allowed for procedures, functions, }
 | 
			
		||||
                { constructors, destructors, fields and properties          }
 | 
			
		||||
                if not(token in [_FUNCTION,_PROCEDURE,_PROPERTY,_VAR,_CONSTRUCTOR,_DESTRUCTOR]) then
 | 
			
		||||
                  Message(parser_e_procedure_or_function_expected);
 | 
			
		||||
 | 
			
		||||
                   if is_interface(current_structdef) then
 | 
			
		||||
                     Message(parser_e_no_static_method_in_interfaces)
 | 
			
		||||
                   else
 | 
			
		||||
                     { class methods are also allowed for Objective-C protocols }
 | 
			
		||||
                     is_classdef:=true;
 | 
			
		||||
                 end;
 | 
			
		||||
                if is_interface(current_structdef) then
 | 
			
		||||
                  Message(parser_e_no_static_method_in_interfaces)
 | 
			
		||||
                else
 | 
			
		||||
                  { class methods are also allowed for Objective-C protocols }
 | 
			
		||||
                  is_classdef:=true;
 | 
			
		||||
              end;
 | 
			
		||||
            _PROCEDURE,
 | 
			
		||||
            _FUNCTION:
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user