Start implementing intrinsics
This commit is contained in:
		
							parent
							
								
									7027ee3645
								
							
						
					
					
						commit
						4bef1c2379
					
				| @ -108,12 +108,13 @@ impl Display for FunctionDefinition { | ||||
| impl Display for FunctionDefinitionKind { | ||||
|     fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { | ||||
|         match self { | ||||
|             Self::Local(block, _) => { | ||||
|             FunctionDefinitionKind::Local(block, _) => { | ||||
|                 write!(f, "{}", block)?; | ||||
|                 Ok(()) | ||||
|             } | ||||
|             Self::Extern(true) => write!(f, "<Imported Extern>"), | ||||
|             Self::Extern(false) => write!(f, "<Linked Extern>"), | ||||
|             FunctionDefinitionKind::Extern(true) => write!(f, "<Imported Extern>"), | ||||
|             FunctionDefinitionKind::Extern(false) => write!(f, "<Linked Extern>"), | ||||
|             FunctionDefinitionKind::Intrinsic(_) => write!(f, "<Intrinsic>"), | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| @ -675,6 +675,8 @@ pub enum EqualsIssue { | ||||
|     AlreadyExtern(String, Metadata), | ||||
|     #[error("Function {0} is already imported from another module")] | ||||
|     ConflictWithImport(String), | ||||
|     #[error("Function is defined as an intrinsic")] | ||||
|     ExistsAsIntrinsic, | ||||
| } | ||||
| 
 | ||||
| impl FunctionDefinition { | ||||
| @ -701,6 +703,7 @@ impl FunctionDefinition { | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|             FunctionDefinitionKind::Intrinsic(_) => Err(EqualsIssue::ExistsAsIntrinsic), | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| @ -302,6 +302,8 @@ pub enum FunctionDefinitionKind { | ||||
|     Local(Block, Metadata), | ||||
|     /// True = imported from other module, False = Is user defined extern
 | ||||
|     Extern(bool), | ||||
|     /// Intrinsic definition, defined within the compiler
 | ||||
|     Intrinsic(Block), | ||||
| } | ||||
| 
 | ||||
| impl FunctionDefinition { | ||||
| @ -309,6 +311,7 @@ impl FunctionDefinition { | ||||
|         match &self.kind { | ||||
|             FunctionDefinitionKind::Local(block, _) => block.meta.clone(), | ||||
|             FunctionDefinitionKind::Extern(_) => Metadata::default(), | ||||
|             FunctionDefinitionKind::Intrinsic(_) => Metadata::default(), | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
| @ -316,6 +319,7 @@ impl FunctionDefinition { | ||||
|         match &self.kind { | ||||
|             FunctionDefinitionKind::Local(_, metadata) => metadata.clone(), | ||||
|             FunctionDefinitionKind::Extern(_) => Metadata::default(), | ||||
|             FunctionDefinitionKind::Intrinsic(_) => Metadata::default(), | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user