parser: interpolation calling twice fix
if string interpolation needs to call a function, it will cache the return to .len & .str usage in the generated codepull/2385/head
							parent
							
								
									5481f226dd
								
							
						
					
					
						commit
						96152510e5
					
				| 
						 | 
					@ -2907,7 +2907,9 @@ fn (p mut Parser) string_expr() {
 | 
				
			||||||
					if is_array && !has_str_method {
 | 
										if is_array && !has_str_method {
 | 
				
			||||||
						p.gen_array_str(typ2)
 | 
											p.gen_array_str(typ2)
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
					args = args.all_before_last(val) + '${typ}_str(${val}).len, ${typ}_str(${val}).str'
 | 
										tmp_var := p.get_tmp()
 | 
				
			||||||
 | 
										p.cgen.insert_before('string $tmp_var = ${typ}_str(${val});')
 | 
				
			||||||
 | 
										args = args.all_before_last(val) + '${tmp_var}.len, ${tmp_var}.str'
 | 
				
			||||||
					format += '%.*s '
 | 
										format += '%.*s '
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				else {
 | 
									else {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue