Yes, you're right. I didn't look at your code close enough before I stuck
my foot in my mouth ;-)


On Wed, Jan 18, 2012 at 3:04 PM, Emil Lenngren <emil.lenng...@gmail.com>wrote:

> No :)
> It should print the same as:
>    Print IIf(True, 1.0, 1)
>    Print IIf(False, 1.0, 1)
> which prints
> 1
> 1
>
> 2012/1/18 Randall Morgan <rmorga...@gmail.com>
>
> > I think the result is correct. I would expect a result of 1,0 as 1 is
> equal
> > to 1 but 2 is not equal to 1.
> >
> > On Wed, Jan 18, 2012 at 2:22 PM, <gam...@googlecode.com> wrote:
> >
> > > Status: New
> > > Owner: ----
> > > Labels: Version Type-Bug Priority-Medium OpSys-Any Dist-Any Arch-Any
> > > Desktop-Any GUI-Any
> > >
> > > New issue 194 by emil.len...@gmail.com: "IIf" is buggy
> > > http://code.google.com/p/gambas/issues/detail?id=194
> > >
> > > 1) Describe the problem.
> > > IIf does not do the correct job when the true part and false part are
> of
> > > different types.
> > >
> > > 2) GIVE THE FOLLOWING INFORMATIONS (if they are appropriate):
> > >
> > > Version: TRUNK
> > > Revision: r4404
> > >
> > > 3) Provide a little project that reproduces the bug or the crash.
> > >   Dim i As Integer
> > >   For i = 1 To 2
> > >     Print Int(IIf(i = 1, 1.0, 1))
> > >   Next
> > >
> > > 5) Explain clearly how to reproduce the bug or the crash.
> > > Running the code above prints out
> > > 1
> > > 0
> > > when
> > > 1
> > > 1
> > > is expected. This is due to that first time IIf returns a Float, but
> > second
> > > time an Integer. IIf should convert the return value to the one that
> > > SUBR_check_good_type returns or something..., that is almost already
> > > implemented ;)
> > >
> > > This is the current code:
> > >
> > > void SUBR_if(ushort code)
> > > {
> > >        TYPE type;
> > >   SUBR_ENTER_PARAM(3);
> > >
> > >   VALUE_conv_boolean(PARAM);
> > >
> > >        switch (code & 0x1F)
> > >        {
> > >                case 0:
> > >
> > >                        type = SUBR_check_good_type(&PARAM[1], 2);
> > >                        if (type != T_VARIANT)
> > >                        {
> > >                                *PC |= 1;
> > >                                goto __TYPE;
> > >                        }
> > >                        else
> > >                        {
> > >                                *PC |= 2;
> > >                                goto __VARIANT;
> > >                        }
> > >
> > >                case 1:
> > >                __TYPE:
> > >
> > >                        *RETURN = PARAM->_boolean.value ? PARAM[1] :
> > > PARAM[2];
> > >
> > >                        break;
> > >
> > >                case 2:
> > >                __VARIANT:
> > >
> > >                        if (PARAM->_boolean.value)
> > >                        {
> > >                                VALUE_conv_variant(&PARAM[1]);
> > >                                *RETURN = PARAM[1];
> > >                        }
> > >                        else
> > >                        {
> > >                                VALUE_conv_variant(&PARAM[2]);
> > >                                *RETURN = PARAM[2];
> > >                        }
> > >
> > >                        break;
> > >        }
> > >
> > >   SUBR_LEAVE();
> > > }
> > >
> > >
> > >
> > >
> >
> ------------------------------------------------------------------------------
> > > Keep Your Developer Skills Current with LearnDevNow!
> > > The most comprehensive online learning library for Microsoft developers
> > > is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3,
> MVC3,
> > > Metro Style Apps, more. Free future releases when you subscribe now!
> > > http://p.sf.net/sfu/learndevnow-d2d
> > > _______________________________________________
> > > Gambas-user mailing list
> > > Gambas-user@lists.sourceforge.net
> > > https://lists.sourceforge.net/lists/listinfo/gambas-user
> > >
> >
> >
> >
> > --
> > If you ask me if it can be done. The answer is YES, it can always be
> done.
> > The correct questions however are... What will it cost, and how long will
> > it take?
> >
> >
> ------------------------------------------------------------------------------
> > Keep Your Developer Skills Current with LearnDevNow!
> > The most comprehensive online learning library for Microsoft developers
> > is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
> > Metro Style Apps, more. Free future releases when you subscribe now!
> > http://p.sf.net/sfu/learndevnow-d2d
> > _______________________________________________
> > Gambas-user mailing list
> > Gambas-user@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/gambas-user
> >
>
> ------------------------------------------------------------------------------
> Keep Your Developer Skills Current with LearnDevNow!
> The most comprehensive online learning library for Microsoft developers
> is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
> Metro Style Apps, more. Free future releases when you subscribe now!
> http://p.sf.net/sfu/learndevnow-d2d
> _______________________________________________
> Gambas-user mailing list
> Gambas-user@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gambas-user
>



-- 
If you ask me if it can be done. The answer is YES, it can always be done.
The correct questions however are... What will it cost, and how long will
it take?
------------------------------------------------------------------------------
Keep Your Developer Skills Current with LearnDevNow!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-d2d
_______________________________________________
Gambas-user mailing list
Gambas-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gambas-user

Reply via email to