|  | @@ -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;
 | 
	
		
			
				|  |  |    }
 |