public void DetectsIncompatibleOperandsInOperation() { ITypeCheckExpr expr = tcFactory.Add(tcFactory.Bool(true), tcFactory.Int(100)); ErrorManager errMngr = new ErrorManager(); expr.TypeCheck(new TypeEnvironment(errMngr)); Assert.True(errMngr.HasErrors); }
public void DetectsNonBoolConditions() { ITypeCheckExpr expr = tcFactory.IfElse(tcFactory.Int(5), tcFactory.String("True"), tcFactory.String("False")); ErrorManager errMngr = new ErrorManager(); expr.TypeCheck(new TypeEnvironment(errMngr)); Assert.True(errMngr.HasErrors); }
public LessThenExpr(ITypeCheckExpr l, ITypeCheckExpr r) : base(l, r) { }
public NotEqualExpr(ITypeCheckExpr l, ITypeCheckExpr r) : base(l, r) { }
public SubtractExpr(ITypeCheckExpr l, ITypeCheckExpr r) : base(l, r) { }
public OrExpr(ITypeCheckExpr l, ITypeCheckExpr r) : base(l, r) { }
public EqualsExpr(ITypeCheckExpr l, ITypeCheckExpr r) : base(l, r) { }
public PowerExpr(ITypeCheckExpr l, ITypeCheckExpr r) : base(l, r) { }
public AddExpr(ITypeCheckExpr l, ITypeCheckExpr r) : base(l, r) { }
public MultiplyExpr(ITypeCheckExpr l, ITypeCheckExpr r) : base(l, r) { }
public DivideExpr(ITypeCheckExpr l, ITypeCheckExpr r) : base(l, r) { }
public ModuloExpr(ITypeCheckExpr l, ITypeCheckExpr r) : base(l, r) { }
public GreaterOrEqualToExpr(ITypeCheckExpr l, ITypeCheckExpr r) : base(l, r) { }
public GreaterThenExpr(ITypeCheckExpr l, ITypeCheckExpr r) : base(l, r) { }
public LessOrEqualToExpr(ITypeCheckExpr l, ITypeCheckExpr r) : base(l, r) { }