parser: error if operators are used as function names (#7532)
							parent
							
								
									691e6f9d3f
								
							
						
					
					
						commit
						0caf668e73
					
				| 
						 | 
				
			
			@ -257,6 +257,10 @@ fn (mut p Parser) fn_decl() ast.FnDecl {
 | 
			
		|||
	}
 | 
			
		||||
	if p.tok.kind in [.plus, .minus, .mul, .div, .mod] {
 | 
			
		||||
		name = p.tok.kind.str() // op_to_fn_name()
 | 
			
		||||
		if rec_type == table.void_type {
 | 
			
		||||
			p.error_with_pos('cannot use operator overloading with normal functions',
 | 
			
		||||
				p.tok.position())
 | 
			
		||||
		}
 | 
			
		||||
		p.next()
 | 
			
		||||
	}
 | 
			
		||||
	// <T>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,5 @@
 | 
			
		|||
vlib/v/parser/tests/operator_normal_fn.vv:1:4: error: cannot use operator overloading with normal functions
 | 
			
		||||
    1 | fn +(x int) int {
 | 
			
		||||
      |    ^
 | 
			
		||||
    2 |     return 5 + x
 | 
			
		||||
    3 | }
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,3 @@
 | 
			
		|||
fn +(x int) int {
 | 
			
		||||
	return 5 + x
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
		Reference in New Issue