[Laszlo-dev] For Review: Change 20071206-dda-9 Summary: Fixes for [not] nullable syntax, and return type syntax for function.
P T Withington
ptw at pobox.com
Sat Dec 8 02:51:32 PST 2007
I guess I was complaining about the use of 2 booleans to store 3
states, rather than an enumeration. Not a big deal.
I'm more upset that the committee slacked and let class declarations
be nullable by default. I guess they had to for backward
compatibility. If they didn't have to do that, you wouldn't need the
non-nullable state at all, since that would be the default.
On 2007-12-07, at 15:03 EST, Donald Anderson wrote:
> The grammar should not accept both '!' '?' at once.
> We do track the presence of each independently, so we
> can emit precisely the same as was input.
>
> On Dec 7, 2007, at 2:30 PM, P T Withington wrote:
>
>> Approved.
>>
>> I wonder if we really need to store nullable and notnullable, or if
>> we can just make the gammar smarter so that you can't have both?
>>
>> On 2007-12-06, at 17:58 EST, Donald Anderson wrote:
>>
>>> Change 20071206-dda-9 by dda at freddie.local on 2007-12-06 17:36:12
>>> EST
>>> in /Users/dda/laszlo/src/svn/openlaszlo/trunk-b
>>> for http://svn.openlaszlo.org/openlaszlo/trunk
>>>
>>> Summary: Fixes for [not] nullable syntax, and return type syntax
>>> for function.
>>>
>>> New Features: none
>>>
>>> Bugs Fixed: LPP-5059
>>>
>>> Technical Reviewer: ptw
>>> QA Reviewer: hminsky
>>> Doc Reviewer: (pending)
>>>
>>> Documentation: none
>>>
>>> Release Notes: none - feature is not yet released or used.
>>>
>>> Details:
>>> The grammar fix for nullable is straightforward.
>>>
>>> For function return values, given that functions
>>> can be declared with/or without an identifier (using function
>>> expressions),
>>> we cannot put the type information on an ASTIdentifier, since
>>> there may not be one. The logical place to put the return value
>>> is on the FormalParameterList, which might now be thought of as
>>> the function's signature (if it weren't rather disruptive,
>>> I would have changed the name). Any function whether created
>>> as a declaration or expression, has a FormalParamterList, so it
>>> is a convenient place in the grammar. Making this change
>>> actually cleaned up the grammar slightly, I think.
>>>
>>> Tests:
>>> 1) Run test/typevar.lzx to check nullable syntax, should give no
>>> errors.
>>>
>>> 2) Run lzsc on:
>>>
>>> // tests for return types
>>>
>>> function f1() { }
>>> function f2() : void { }
>>> function f3():Integer? { }
>>> function f4():Integer! { }
>>> function f5(x):Integer! { }
>>> function f6(x:int):Integer! { }
>>> function f7(x:int,y):Integer! { }
>>> function f8(x,y:int):Integer! { }
>>> function f9(x:int,y:int):Integer! { }
>>> function f10(x:int?,y:int):Integer! { }
>>> function f11(x:int?,y:int!):Integer! { }
>>> var x = function (x:int?,y:int!):Integer! { }
>>>
>>> Running lzsc is currently the only way to test this, that will
>>> probably change soon.
>>>
>>> 3) Compared binary LFC files from compiler to make sure no
>>> regressions.
>>>
>>> 4) Ran smokecheck.lzx to make sure no regressions.
>>>
>>>
>>> Files:
>>> M test/typevar.lzx
>>> M WEB-INF/lps/server/sc/src/org/openlaszlo/sc/Parser.jjt
>>>
>>> Changeset: http://svn.openlaszlo.org/openlaszlo/patches/20071206-dda-9.tar
>>>
>>>
>>>
>>> --
>>>
>>> Don Anderson
>>> Java/C/C++, Berkeley DB, systems consultant
>>>
>>> Voice: 617-547-7881
>>> Email: dda at ddanderson.com
>>> WWW: http://www.ddanderson.com
>>>
>>
>
>
> --
>
> Don Anderson
> Java/C/C++, Berkeley DB, systems consultant
>
> Voice: 617-547-7881
> Email: dda at ddanderson.com
> WWW: http://www.ddanderson.com
>
More information about the Laszlo-dev
mailing list