parent
							
								
									005676fe60
								
							
						
					
					
						commit
						29857cb9d6
					
				| 
						 | 
					@ -390,6 +390,10 @@ pub fn (mut c Checker) string_inter_lit(mut node ast.StringInterLiteral) table.T
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			node.need_fmts[i] = fmt != c.get_default_fmt(ftyp, typ)
 | 
								node.need_fmts[i] = fmt != c.get_default_fmt(ftyp, typ)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
							// check recursive str
 | 
				
			||||||
 | 
							if c.cur_fn.is_method && c.cur_fn.name == 'str' && c.cur_fn.receiver.name == expr.str() {
 | 
				
			||||||
 | 
								c.error('cannot call `str()` method recursively', expr.position())
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return table.string_type
 | 
						return table.string_type
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,7 @@
 | 
				
			||||||
 | 
					vlib/v/checker/tests/interpolation_recursive_str_err.vv:8:8: error: cannot call `str()` method recursively
 | 
				
			||||||
 | 
					    6 |
 | 
				
			||||||
 | 
					    7 | fn (t Test) str() string {
 | 
				
			||||||
 | 
					    8 |     _ = '$t'
 | 
				
			||||||
 | 
					      |           ^
 | 
				
			||||||
 | 
					    9 |     return 'test'
 | 
				
			||||||
 | 
					   10 | }
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,15 @@
 | 
				
			||||||
 | 
					module main
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct Test {
 | 
				
			||||||
 | 
						a int
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					fn (t Test) str() string {
 | 
				
			||||||
 | 
						_ = '$t'
 | 
				
			||||||
 | 
						return 'test'
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					fn main() {
 | 
				
			||||||
 | 
						a := Test{}
 | 
				
			||||||
 | 
						println(a)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
		Reference in New Issue