ast: fix `new_struct := MyStruct{...(*old_struct)}` (#8544)
							parent
							
								
									27239db427
								
							
						
					
					
						commit
						162c42dbe9
					
				| 
						 | 
				
			
			@ -1254,6 +1254,8 @@ pub fn (expr Expr) is_lvalue() bool {
 | 
			
		|||
		CTempVar { return true }
 | 
			
		||||
		IndexExpr { return expr.left.is_lvalue() }
 | 
			
		||||
		SelectorExpr { return expr.expr.is_lvalue() }
 | 
			
		||||
		ParExpr { return expr.expr.is_lvalue() } // for var := &{...(*pointer_var)}
 | 
			
		||||
		PrefixExpr { return expr.right.is_lvalue() }
 | 
			
		||||
		else {}
 | 
			
		||||
	}
 | 
			
		||||
	return false
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -170,6 +170,14 @@ fn test_assoc_with_vars() {
 | 
			
		|||
	}
 | 
			
		||||
	assert merged.a == 42
 | 
			
		||||
	assert merged.b == 7
 | 
			
		||||
 | 
			
		||||
	def3 := &Def{ 100, 200 }
 | 
			
		||||
	merged1 := Def{...(*def3)}
 | 
			
		||||
	merged2 := &Def{...(*def3)}
 | 
			
		||||
	assert merged1.a == 100
 | 
			
		||||
	assert merged1.b == 200
 | 
			
		||||
	assert merged2.a == 100
 | 
			
		||||
	assert merged2.b == 200
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue