| 
					
				 | 
			
			
				@@ -1,3 +1,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { Config } from "../util/config"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { Types } from "./types"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { BaseTypes } from "./baseTypes"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 export class Type { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   constructor(baseType) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -18,7 +22,16 @@ export class Type { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   isCompatible (another) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if(another instanceof Type) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      return this.baseType.isCompatible(another.baseType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      let result = this.baseType.isCompatible(another.baseType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if(result) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } else if(Config.enable_type_casting) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (this.baseType === BaseTypes.INTEGER || this.baseType === BaseTypes.REAL) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (another.baseType === BaseTypes.INTEGER || another.baseType === BaseTypes.REAL) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 |