feat(tvix/eval): insert strictness points for attribute set keys
All attribute set *key* related operations strictly evaluate all key fragments, including during construction of an attribute set. Change-Id: I3519e5e9b0886c2cdc8615ea7dcb5f7be0c59b3f Reviewed-on: https://cl.tvl.fyi/c/depot/+/6358 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
This commit is contained in:
		
							parent
							
								
									5b4f3811e6
								
							
						
					
					
						commit
						9420a3b53d
					
				
					 1 changed files with 10 additions and 2 deletions
				
			
		|  | @ -367,8 +367,16 @@ impl Compiler { | |||
| 
 | ||||
|     fn compile_attr(&mut self, slot: Option<LocalIdx>, node: ast::Attr) { | ||||
|         match node { | ||||
|             ast::Attr::Dynamic(dynamic) => self.compile(slot, dynamic.expr().unwrap()), | ||||
|             ast::Attr::Str(s) => self.compile_str(slot, s), | ||||
|             ast::Attr::Dynamic(dynamic) => { | ||||
|                 self.compile(slot, dynamic.expr().unwrap()); | ||||
|                 self.emit_force(); | ||||
|             } | ||||
| 
 | ||||
|             ast::Attr::Str(s) => { | ||||
|                 self.compile_str(slot, s); | ||||
|                 self.emit_force(); | ||||
|             } | ||||
| 
 | ||||
|             ast::Attr::Ident(ident) => self.emit_literal_ident(&ident), | ||||
|         } | ||||
|     } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue