> My intuition is telling me I am not handling them correctly for most cases,
> things work right now but it would be better if we had some test .js files
> that had all types of package/namespace creation structures.

Like what ?

Frédéric THOMAS


----------------------------------------
> Date: Sun, 28 Jun 2015 15:33:42 -0400
> Subject: Re: [Externs] jasmine-2.0.js
> From: teotigraphix...@gmail.com
> To: dev@flex.apache.org
>
> And... haha packages are really sketchy. We need more package type test
> from the externs that use them.
>
> My intuition is telling me I am not handling them correctly for most cases,
> things work right now but it would be better if we had some test .js files
> that had all types of package/namespace creation structures.
>
> Mike
>
> On Sun, Jun 28, 2015 at 3:28 PM, Michael Schmalle <teotigraphix...@gmail.com
>> wrote:
>
>> Fred, what I plan on doing since you are going to be working with the code
>> is start to test all the base externs we have and find bugs or non
>> implemented things. I will probably just add the things I find in JIRA
>> throughout the week during my little free time.
>>
>> I'm not going to change any code, just add unit tests. One other thing
>> that I havn't got to is type unit tests. I really just hacked the type
>> resolving, yeah it works but I see ways in the future of doing some stuff
>> with maybe function callbacks and if I get the type tests down well, I will
>> feel more comfortable trying to parse the harder externs out there.
>>
>> Also, we should allow a way to parse those generated externs just for
>> stubs but, they have nested {} object creation which the parser ignores
>> right now, so that is another thing that can be tested and implemented.
>>
>> Mike
>>
>>
>>
>> On Sun, Jun 28, 2015 at 3:21 PM, Frédéric THOMAS <webdoubl...@hotmail.com>
>> wrote:
>>
>>> Thanks !
>>>
>>> Frédéric THOMAS
>>>
>>>
>>> ----------------------------------------
>>>> Date: Sun, 28 Jun 2015 15:11:20 -0400
>>>> Subject: Re: [Externs] jasmine-2.0.js
>>>> From: teotigraphix...@gmail.com
>>>> To: dev@flex.apache.org
>>>>
>>>> Yeah I know, sent to your hotmail.
>>>>
>>>> Mike
>>>>
>>>> On Sun, Jun 28, 2015 at 3:10 PM, Frédéric THOMAS <
>>> webdoubl...@hotmail.com>
>>>> wrote:
>>>>
>>>>>> What you can do is to send me your eclipse formatter property file.
>>>>>> I will use it in IJ.
>>>>>
>>>>> I meant export your formatter profiles in xml
>>>>>
>>>>> Thanks,
>>>>> Frédéric THOMAS
>>>>>
>>>>>
>>>>> ----------------------------------------
>>>>>> From: webdoubl...@hotmail.com
>>>>>> To: dev@flex.apache.org
>>>>>> Subject: RE: [Externs] jasmine-2.0.js
>>>>>> Date: Sun, 28 Jun 2015 20:06:19 +0100
>>>>>>
>>>>>>> BTW, what should we do about code formatting, it seems my formatting
>>> is
>>>>>>> different then yours. I am using Eclipse right now since I don't
>>> have IJ
>>>>>>> setup for Falcon dev.
>>>>>>
>>>>>> I was wrong when I thought I had setup IJ correctly for Falcon, they
>>> are
>>>>> still
>>>>>> things it doesn't know how to do, for instance, share the generated
>>>>> classes
>>>>>> thru modules, therefore, it is not yet suitable for all parts of
>>> Falcon,
>>>>> at the
>>>>>> moment, I use tricks to be able to code with.
>>>>>>
>>>>>> What you can do is to send me your eclipse formatter property file.
>>>>>> I will use it in IJ.
>>>>>>
>>>>>> Frédéric THOMAS
>>>>>>
>>>>>>
>>>>>> ----------------------------------------
>>>>>>> Date: Sun, 28 Jun 2015 14:57:50 -0400
>>>>>>> Subject: Re: [Externs] jasmine-2.0.js
>>>>>>> From: teotigraphix...@gmail.com
>>>>>>> To: dev@flex.apache.org
>>>>>>>
>>>>>>> BTW, what should we do about code formatting, it seems my formatting
>>> is
>>>>>>> different then yours. I am using Eclipse right now since I don't
>>> have IJ
>>>>>>> setup for Falcon dev.
>>>>>>>
>>>>>>> Mike
>>>>>>>
>>>>>>> On Sun, Jun 28, 2015 at 2:55 PM, Michael Schmalle <
>>>>> teotigraphix...@gmail.com
>>>>>>>> wrote:
>>>>>>>
>>>>>>>> Yeah, I didn't want to go crazy with subclasses. Ideally class,
>>>>> function
>>>>>>>> and constant could share a "TopLevelReference" subclass of
>>>>> BaseReference
>>>>>>>> and you could put import logic there if you wanted to.
>>>>>>>>
>>>>>>>> Mike
>>>>>>>>
>>>>>>>> On Sun, Jun 28, 2015 at 2:51 PM, Frédéric THOMAS <
>>>>> webdoubl...@hotmail.com>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>>> Once you find instances of imports that need to be saves, your
>>>>> current
>>>>>>>>>> context is already the ClassReference, so call
>>> classRef.addImport().
>>>>> :)
>>>>>>>>>
>>>>>>>>> Btw, I will probably need to have a addImport() FunctionReference
>>> too,
>>>>>>>>> right ?
>>>>>>>>>
>>>>>>>>> Frédéric THOMAS
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> ----------------------------------------
>>>>>>>>>> Date: Sun, 28 Jun 2015 14:23:57 -0400
>>>>>>>>>> Subject: Re: [Externs] jasmine-2.0.js
>>>>>>>>>> From: teotigraphix...@gmail.com
>>>>>>>>>> To: dev@flex.apache.org
>>>>>>>>>>
>>>>>>>>>> Kewl.
>>>>>>>>>>
>>>>>>>>>> I am going to be busy most of the week remodeling my mother in
>>> laws
>>>>>>>>>> bathroom starting tomorrow. So if you want to try a new custom
>>> pass
>>>>> like
>>>>>>>>>> ResolveImportPass, go for it, I will just stay out of the way. I
>>>>> think
>>>>>>>>> it
>>>>>>>>>> would be good for you. :) If not, no worries, you gave me the
>>> idea.
>>>>> haha
>>>>>>>>>>
>>>>>>>>>> If you did, look at it like this, since all imports and logic
>>> therin
>>>>> are
>>>>>>>>>> totally dependent on what the compiler actual saves into the
>>> model,
>>>>>>>>> logic
>>>>>>>>>> says this needs to be the last or one of the last passes, from my
>>>>>>>>>> perspective, it needs to be the last.
>>>>>>>>>>
>>>>>>>>>> If you make it the last, then this pass is not coupled to us
>>> fixing
>>>>> bugs
>>>>>>>>>> ahead of it. Say we find out we need to add another structure of
>>> AST
>>>>>>>>>> parsing for a node structure I havn't implemented yet, well we are
>>>>> safe.
>>>>>>>>>>
>>>>>>>>>> Why safe? Because in this import pass, you are using the MODEL,
>>> so no
>>>>>>>>> AST.
>>>>>>>>>> Instead of worrying about resolving imports during AST traversal,
>>> you
>>>>>>>>> are
>>>>>>>>>> using what is already in the container after all that complex
>>>>> parsing is
>>>>>>>>>> finished.
>>>>>>>>>>
>>>>>>>>>> So this pass, you would use your skills at knowing "what" in each
>>>>>>>>> subclass
>>>>>>>>>> of BaseReference could contain a type. Then write your logic pass
>>> to
>>>>>>>>>> traverse Classes, then into each classes members, then loop
>>> through
>>>>> each
>>>>>>>>>> member and analyze their types and do your import testing logic
>>>>> there.
>>>>>>>>>>
>>>>>>>>>> Once you find instances of imports that need to be saves, your
>>>>> current
>>>>>>>>>> context is already the ClassReference, so call
>>> classRef.addImport().
>>>>> :)
>>>>>>>>>>
>>>>>>>>>> Mike
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Sun, Jun 28, 2015 at 2:13 PM, Frédéric THOMAS <
>>>>>>>>> webdoubl...@hotmail.com>
>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>>>> All I meant is that 75% of the time we would just want to save
>>>>> things
>>>>>>>>> in
>>>>>>>>>>>> the model or a reference, such that you use addImport() during
>>> the
>>>>>>>>>>>> resolution. Then it keeps the emit() phase straight burn rubber
>>> and
>>>>>>>>> loop
>>>>>>>>>>>> through all existing model structures, where imports would be
>>> just
>>>>> a
>>>>>>>>> list
>>>>>>>>>>>> that emitImport() iterates through, no logic.
>>>>>>>>>>>
>>>>>>>>>>> Got it !
>>>>>>>>>>>
>>>>>>>>>>>> I AM NOT saying what you did was wrong, I am just offering a
>>> look
>>>>> into
>>>>>>>>>>> how
>>>>>>>>>>>> I set it up. You know how I got this pattern? From my massive
>>>>>>>>> mistakes in
>>>>>>>>>>>> code generators of past. :) I realized that an emit phase needs
>>> to
>>>>> be
>>>>>>>>>>>> stupid and not dependent on any type of intelligence, just
>>> needs to
>>>>>>>>>>> create
>>>>>>>>>>>> what already exists.
>>>>>>>>>>>
>>>>>>>>>>> I'm in a phase where I'm learning compiler things and indeed I
>>> will
>>>>> do
>>>>>>>>>>> some mistakes
>>>>>>>>>>> or I won't be as precise as you who have experience on it.
>>>>>>>>>>> Therefore I can accept critics and learn from your explanations
>>> :-)
>>>>>>>>>>>
>>>>>>>>>>>> This can also solve many problems at once. So I haven't got back
>>>>> into
>>>>>>>>> the
>>>>>>>>>>>> code BUT my intuition says we need a universal solution for any
>>>>> type
>>>>>>>>> of
>>>>>>>>>>>> TYPE that is attached to a member, identifier such as a param
>>> type,
>>>>>>>>>>> return
>>>>>>>>>>>> type, filed type, superclass and interface(already taken care of
>>>>> using
>>>>>>>>>>>> addImport()).
>>>>>>>>>>>>
>>>>>>>>>>>> See where I am coming from? We know that every type is
>>> eventually
>>>>>>>>> going
>>>>>>>>>>> to
>>>>>>>>>>>> need to be scanned for imports and validated.
>>>>>>>>>>>
>>>>>>>>>>> Yes, actually, I was expecting to see a specific pass for that.
>>>>>>>>>>>
>>>>>>>>>>>> Dude, I just don't want to come off bossy or condescending, I
>>> love
>>>>> you
>>>>>>>>>>>> help. A lot can be added to this compiler that could be very
>>>>>>>>> interesting.
>>>>>>>>>>>> So having you understand my design intention is really
>>> important to
>>>>>>>>> me.
>>>>>>>>>>> :)
>>>>>>>>>>>
>>>>>>>>>>> Don't worry, I don't think you are bossy or condescending Mike,
>>> I'm
>>>>>>>>>>> reading you
>>>>>>>>>>> and try to put in parallel the new informations you give and what
>>>>> I've
>>>>>>>>>>> seen in the code
>>>>>>>>>>> for a better understanding, that's it.
>>>>>>>>>>>
>>>>>>>>>>> Cheers,
>>>>>>>>>>> Frédéric THOMAS
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> ----------------------------------------
>>>>>>>>>>>> Date: Sun, 28 Jun 2015 13:48:02 -0400
>>>>>>>>>>>> Subject: Re: [Externs] jasmine-2.0.js
>>>>>>>>>>>> From: teotigraphix...@gmail.com
>>>>>>>>>>>> To: dev@flex.apache.org
>>>>>>>>>>>>
>>>>>>>>>>>> Fred you did an awesome job. :)
>>>>>>>>>>>>
>>>>>>>>>>>> All I meant is that 75% of the time we would just want to save
>>>>> things
>>>>>>>>> in
>>>>>>>>>>>> the model or a reference, such that you use addImport() during
>>> the
>>>>>>>>>>>> resolution. Then it keeps the emit() phase straight burn rubber
>>> and
>>>>>>>>> loop
>>>>>>>>>>>> through all existing model structures, where imports would be
>>> just
>>>>> a
>>>>>>>>> list
>>>>>>>>>>>> that emitImport() iterates through, no logic.
>>>>>>>>>>>>
>>>>>>>>>>>> I AM NOT saying what you did was wrong, I am just offering a
>>> look
>>>>> into
>>>>>>>>>>> how
>>>>>>>>>>>> I set it up. You know how I got this pattern? From my massive
>>>>>>>>> mistakes in
>>>>>>>>>>>> code generators of past. :) I realized that an emit phase needs
>>> to
>>>>> be
>>>>>>>>>>>> stupid and not dependent on any type of intelligence, just
>>> needs to
>>>>>>>>>>> create
>>>>>>>>>>>> what already exists.
>>>>>>>>>>>>
>>>>>>>>>>>> This can also solve many problems at once. So I haven't got back
>>>>> into
>>>>>>>>> the
>>>>>>>>>>>> code BUT my intuition says we need a universal solution for any
>>>>> type
>>>>>>>>> of
>>>>>>>>>>>> TYPE that is attached to a member, identifier such as a param
>>> type,
>>>>>>>>>>> return
>>>>>>>>>>>> type, filed type, superclass and interface(already taken care of
>>>>> using
>>>>>>>>>>>> addImport()).
>>>>>>>>>>>>
>>>>>>>>>>>> See where I am coming from? We know that every type is
>>> eventually
>>>>>>>>> going
>>>>>>>>>>> to
>>>>>>>>>>>> need to be scanned for imports and validated.
>>>>>>>>>>>>
>>>>>>>>>>>> Dude, I just don't want to come off bossy or condescending, I
>>> love
>>>>> you
>>>>>>>>>>>> help. A lot can be added to this compiler that could be very
>>>>>>>>> interesting.
>>>>>>>>>>>> So having you understand my design intention is really
>>> important to
>>>>>>>>> me.
>>>>>>>>>>> :)
>>>>>>>>>>>>
>>>>>>>>>>>> Mike
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> On Sun, Jun 28, 2015 at 1:37 PM, Frédéric THOMAS <
>>>>>>>>>>> webdoubl...@hotmail.com>
>>>>>>>>>>>> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>>> Fred pretty much iterated things correctly.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> The ResolvePackageNamePass I haven't to get back to. I was in
>>> the
>>>>>>>>>>> middle
>>>>>>>>>>>>> of
>>>>>>>>>>>>>> implementing something when I got it to work in another place.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> There is a pattern to how things are parsed so most of the
>>> time
>>>>> it's
>>>>>>>>>>>>> better
>>>>>>>>>>>>>> to set state as nodes/references are being added to the
>>> model. In
>>>>>>>>> the
>>>>>>>>>>>>> case
>>>>>>>>>>>>>> of imports, I don't see any problems right now with checking
>>>>> during
>>>>>>>>> the
>>>>>>>>>>>>>> emit phase but, if the model was more interactive during the
>>>>>>>>> session,
>>>>>>>>>>>>> this
>>>>>>>>>>>>>> type of logic should happen during the resolve phase so the
>>> model
>>>>>>>>> with
>>>>>>>>>>>>> it's
>>>>>>>>>>>>>> references has a correct state if there is any logic happening
>>>>>>>>> between
>>>>>>>>>>>>> two
>>>>>>>>>>>>>> references.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Thanks for the explanation, I will take the time to do some
>>> debug
>>>>>>>>> spins
>>>>>>>>>>> to
>>>>>>>>>>>>> understand
>>>>>>>>>>>>> when the phases are called, what they do and what classes are
>>>>>>>>> involved.
>>>>>>>>>>>>> Given it is a fairly small transpiler and despite the recursive
>>>>>>>>> visitor
>>>>>>>>>>>>> pattern, I guess I can do it.
>>>>>>>>>>>>>
>>>>>>>>>>>>>> How much are you working on right now Fred? I just ask
>>> because I
>>>>>>>>> don't
>>>>>>>>>>>>> want
>>>>>>>>>>>>>> to create any conflicts.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Go ahead Mike, I'm done with that at the moment, I did my last
>>>>>>>>> cleanup
>>>>>>>>>>>>> already.
>>>>>>>>>>>>> Anyway, better I work on a branch and commit the branch instead
>>>>> for
>>>>>>>>>>> review
>>>>>>>>>>>>> next time.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Frédéric THOMAS
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> ----------------------------------------
>>>>>>>>>>>>>> Date: Sun, 28 Jun 2015 13:23:15 -0400
>>>>>>>>>>>>>> Subject: Re: [Externs] jasmine-2.0.js
>>>>>>>>>>>>>> From: teotigraphix...@gmail.com
>>>>>>>>>>>>>> To: dev@flex.apache.org
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Fred pretty much iterated things correctly.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> The ResolvePackageNamePass I haven't to get back to. I was in
>>> the
>>>>>>>>>>> middle
>>>>>>>>>>>>> of
>>>>>>>>>>>>>> implementing something when I got it to work in another place.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> There is a pattern to how things are parsed so most of the
>>> time
>>>>> it's
>>>>>>>>>>>>> better
>>>>>>>>>>>>>> to set state as nodes/references are being added to the
>>> model. In
>>>>>>>>> the
>>>>>>>>>>>>> case
>>>>>>>>>>>>>> of imports, I don't see any problems right now with checking
>>>>> during
>>>>>>>>> the
>>>>>>>>>>>>>> emit phase but, if the model was more interactive during the
>>>>>>>>> session,
>>>>>>>>>>>>> this
>>>>>>>>>>>>>> type of logic should happen during the resolve phase so the
>>> model
>>>>>>>>> with
>>>>>>>>>>>>> it's
>>>>>>>>>>>>>> references has a correct state if there is any logic happening
>>>>>>>>> between
>>>>>>>>>>>>> two
>>>>>>>>>>>>>> references.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> How much are you working on right now Fred? I just ask
>>> because I
>>>>>>>>> don't
>>>>>>>>>>>>> want
>>>>>>>>>>>>>> to create any conflicts.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Mike
>>>>>>>>>>>>>> .
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On Sat, Jun 27, 2015 at 5:58 PM, Michael Schmalle <
>>>>>>>>>>>>> teotigraphix...@gmail.com
>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Hey Fred, I was out all day. I will have some time in the
>>>>> morning
>>>>>>>>> to
>>>>>>>>>>>>> look
>>>>>>>>>>>>>>> at what you did and comment. :)
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Mike
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> On Sat, Jun 27, 2015 at 5:27 PM, Frédéric THOMAS <
>>>>>>>>>>>>> webdoubl...@hotmail.com>
>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Just to explain what I did, especially to folks who would
>>> like
>>>>> to
>>>>>>>>> get
>>>>>>>>>>>>>>>> their hand dirty on the compiler but like me, don't know
>>> how it
>>>>>>>>> works
>>>>>>>>>>>>> :-)
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> I was adding jasmine-2.0.js [1], a file that contains only
>>>>> jsDoc
>>>>>>>>>>>>>>>> (parameters and return type descriptions) and declarations,
>>> no
>>>>>>>>>>>>>>>> implementations.
>>>>>>>>>>>>>>>> When I say "adding jasmine-2.0.js" I mean, transpile this
>>> .js
>>>>>>>>> file to
>>>>>>>>>>>>> .as
>>>>>>>>>>>>>>>> and then compile it to a .swc.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> The transpilation part is done by EXTERNC
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> You call it like that:
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> <java jar="${basedir}/compiler.jx/lib/externc.jar"
>>> fork="true"
>>>>>>>>>>>>>>>> failonerror="false">
>>>>>>>>>>>>>>>> <arg value="+flexlib=${env.ASJS_HOME}/frameworks" />
>>>>>>>>>>>>>>>> <arg value="-debug" />
>>>>>>>>>>>>>>>> <arg
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>
>>>>>
>>> value="-load-config=${basedir}/externs/jasmine/jasmine-compile-config.xml"
>>>>>>>>>>>>>>>> />
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> In the jasmine-compile-config.xml, you can exclude classes
>>> and
>>>>>>>>>>> member,
>>>>>>>>>>>>>>>> for example, in the jasmine.Spec class, I excluded the
>>> variable
>>>>>>>>>>>>> $injector
>>>>>>>>>>>>>>>> as its type was coming from the Angular library that is not
>>> yet
>>>>>>>>>>>>> transpiled.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> <field-exclude>
>>>>>>>>>>>>>>>> <class>jasmine.Spec</class>
>>>>>>>>>>>>>>>> <field>$injector</field>
>>>>>>>>>>>>>>>> </field-exclude>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> You can also exclude classes and functions.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> The compile part is done by the falcon compc as follow:
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> <java
>>>>>>>>>>> jar="${basedir}/compiler/generated/dist/sdk/lib/falcon-compc.jar"
>>>>>>>>>>>>>>>> fork="true"
>>>>>>>>>>>>>>>> failonerror="true">
>>>>>>>>>>>>>>>> <arg value="+flexlib=${env.ASJS_HOME}/frameworks" />
>>>>>>>>>>>>>>>> <arg value="-debug" />
>>>>>>>>>>>>>>>> <arg
>>>>>>>>>>>>>>>>
>>>>>>>>> value="-load-config=${basedir}/externs/jasmine/compile-config.xml"
>>> />
>>>>>>>>>>>>>>>> <arg
>>>>>>>>>>>>>>>>
>>>>>>>>> value="-output=${basedir}/externs/jasmine/out/bin/jasmine-2.0.swc"
>>> />
>>>>>>>>>>>>>>>> </java>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> The problem was that this last part was failing with an NPE
>>> a
>>>>>>>>> Type of
>>>>>>>>>>>>>>>> something:
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>
>>>>>
>>> org.apache.flex.compiler.internal.scopes.TypeScope.getPropertyForMemberAccess(TypeScope.java:344)
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Even looking closely at the code, I didn't get why it was
>>>>> failing
>>>>>>>>> but
>>>>>>>>>>>>> for
>>>>>>>>>>>>>>>> sure, because it was trying to compile one of the transpiled
>>>>> .as
>>>>>>>>>>> file,
>>>>>>>>>>>>> this
>>>>>>>>>>>>>>>> transpiled code was wrong.
>>>>>>>>>>>>>>>> Looking at those .as, it was easy to see that some import
>>> were
>>>>>>>>>>> missing.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> So, why the 2 others externs (js and jquery) had no issues ?
>>>>>>>>>>>>>>>> It is always surprising to see something working on all the
>>>>> things
>>>>>>>>>>>>> except
>>>>>>>>>>>>>>>> of yours, but it can help you too :-)
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> So, I've been looking at those other transpiled .as files
>>> from
>>>>>>>>>>> existing
>>>>>>>>>>>>>>>> externs to see if they had imports and they were some.
>>>>>>>>>>>>>>>> I then created a mini jasmine.js containing only the faulty
>>>>> case
>>>>>>>>>>> only,
>>>>>>>>>>>>>>>> that, from what I've been able to determinate, was that the
>>>>> import
>>>>>>>>>>> was
>>>>>>>>>>>>> not
>>>>>>>>>>>>>>>> generated when a static function had a return type of a
>>> class
>>>>>>>>> created
>>>>>>>>>>>>> via a
>>>>>>>>>>>>>>>> function constructor, so, I filled this mini jasmine.js with
>>>>> the
>>>>>>>>>>>>> equivalent
>>>>>>>>>>>>>>>> of a static function like this:
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> /**
>>>>>>>>>>>>>>>> * @return {!jasmine.Clock}
>>>>>>>>>>>>>>>> */
>>>>>>>>>>>>>>>> jasmine.clock = function() {};
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Which should transpile in AS3, something like:
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> import jasmine.Clock;
>>>>>>>>>>>>>>>> public static function clock():Clock {}
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> and a function constructor like this:
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> /** @constructor */
>>>>>>>>>>>>>>>> jasmine.Clock = function() {};
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> which transpile:
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> package jasmine {
>>>>>>>>>>>>>>>> public class Clock {}
>>>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Created a test class based on those Mike created for the
>>>>> previous
>>>>>>>>>>>>> externs
>>>>>>>>>>>>>>>> doing:
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> // jasmine, the main jasmine class.
>>>>>>>>>>>>>>>> ClassReference jasmine = model.getClassReference("jasmine");
>>>>>>>>>>>>>>>> assertNotNull(jasmine);
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> assertTrue(jasmine.hasImport("jasmine.Clock"));
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> The hasImport method didn't exist on ClassReference but it
>>> was
>>>>> a
>>>>>>>>>>>>>>>> addImport(), I follow to where it was called in
>>>>>>>>> ResolvePackagesPass
>>>>>>>>>>>>> hoping
>>>>>>>>>>>>>>>> to find a missing case but after debug spin I wasn't able
>>> to do
>>>>>>>>> what
>>>>>>>>>>> I
>>>>>>>>>>>>>>>> expected, I'm not sure I understood all the logic in this
>>> class
>>>>>>>>> but
>>>>>>>>>>> it
>>>>>>>>>>>>>>>> looked like the Node of my return type was never visited and
>>>>>>>>>>> therefore
>>>>>>>>>>>>>>>> wasn't able to add my import here.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> But wait, in the ClassReference, I have a
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> public MethodReference addMethod(Node node, String
>>>>> functionName,
>>>>>>>>>>>>>>>> JSDocInfo comment, boolean isStatic)
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> To me it would be enough to add the import to the list of
>>>>> imports
>>>>>>>>> to
>>>>>>>>>>> be
>>>>>>>>>>>>>>>> emitted when the MethodReference is to be added, I just had
>>> to
>>>>>>>>>>>>> determinate
>>>>>>>>>>>>>>>> if the return type given in the jsDoc was not from the
>>> current
>>>>>>>>>>>>> package, the
>>>>>>>>>>>>>>>> given method not excluded, the given return type neither !
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> My test was passing was I was able to compile with this new
>>>>> code
>>>>>>>>> the
>>>>>>>>>>>>> old
>>>>>>>>>>>>>>>> externs.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> The only thing I had to do to finish to compile the jasmine
>>>>> extern
>>>>>>>>>>> was
>>>>>>>>>>>>> to
>>>>>>>>>>>>>>>> emit the imports for the global functions too as they shown
>>> to
>>>>> be
>>>>>>>>>>>>> faulty
>>>>>>>>>>>>>>>> for the same reasons.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Mike will probably tell me now where my logic was wrong now
>>> :-)
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Frédéric THOMAS
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> ----------------------------------------
>>>>>>>>>>>>>>>>> From: webdoubl...@hotmail.com
>>>>>>>>>>>>>>>>> To: dev@flex.apache.org
>>>>>>>>>>>>>>>>> Subject: RE: [Externs] jasmine-2.0.js
>>>>>>>>>>>>>>>>> Date: Sat, 27 Jun 2015 20:43:43 +0100
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Ok, done !
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> I forgot to uncomment the externc build of jasmine and
>>> print
>>>>> the
>>>>>>>>>>>>> global
>>>>>>>>>>>>>>>> function imports !
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Frédéric THOMAS
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> ----------------------------------------
>>>>>>>>>>>>>>>>>> From: webdoubl...@hotmail.com
>>>>>>>>>>>>>>>>>> To: dev@flex.apache.org
>>>>>>>>>>>>>>>>>> Subject: RE: [Externs] jasmine-2.0.js
>>>>>>>>>>>>>>>>>> Date: Sat, 27 Jun 2015 20:12:16 +0100
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> I pushed the changes which are ready to be reviewed.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> oups, hold on, I had some things commented that hidden
>>> other
>>>>>>>>>>>>> problems,
>>>>>>>>>>>>>>>> I will continue on it.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> Frédéric THOMAS
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> ----------------------------------------
>>>>>>>>>>>>>>>>>>> From: webdoubl...@hotmail.com
>>>>>>>>>>>>>>>>>>> To: dev@flex.apache.org
>>>>>>>>>>>>>>>>>>> Subject: RE: [Externs] jasmine-2.0.js
>>>>>>>>>>>>>>>>>>> Date: Sat, 27 Jun 2015 18:31:32 +0100
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> Hi Mike,
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> I pushed the changes which are ready to be reviewed.
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> Note: The jasmine-2.0.js is not committed as it should be
>>>>>>>>>>> downloaded
>>>>>>>>>>>>>>>> with the unpack-externs target of the download.xml, I
>>> followed
>>>>> the
>>>>>>>>>>>>> model.
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>>>>>>>> Frédéric THOMAS
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> ----------------------------------------
>>>>>>>>>>>>>>>>>>>> Date: Sat, 27 Jun 2015 05:31:50 -0400
>>>>>>>>>>>>>>>>>>>> Subject: Re: [Externs] jasmine-2.0.js
>>>>>>>>>>>>>>>>>>>> From: teotigraphix...@gmail.com
>>>>>>>>>>>>>>>>>>>> To: dev@flex.apache.org
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> I just noticed you said today or tomorrow, whatever man.
>>>>>>>>> doesn't
>>>>>>>>>>>>>>>> matter.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> Mike
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> On Sat, Jun 27, 2015 at 5:17 AM, Michael Schmalle <
>>>>>>>>>>>>>>>> teotigraphix...@gmail.com
>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> Well its the practice. I know the pattern I am using so
>>>>> if I
>>>>>>>>>>> have
>>>>>>>>>>>>> to
>>>>>>>>>>>>>>>>>>>>> adjust it to fit I will. You can tell that with AST
>>> type
>>>>>>>>> stuff,
>>>>>>>>>>> it
>>>>>>>>>>>>>>>> has to
>>>>>>>>>>>>>>>>>>>>> follow a specific pattern or everything turns to crap
>>> when
>>>>>>>>>>> trying
>>>>>>>>>>>>>>>> to add
>>>>>>>>>>>>>>>>>>>>> stuff down the road.
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> Commit it sooner than later as I have a couple hours to
>>>>>>>>> check it
>>>>>>>>>>>>>>>> out this
>>>>>>>>>>>>>>>>>>>>> morning.
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> Mike
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> On Sat, Jun 27, 2015 at 3:15 AM, Frédéric THOMAS <
>>>>>>>>>>>>>>>> webdoubl...@hotmail.com>
>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> Hi Mike,
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> I can now compile jasmine, I'm not sure my fix is very
>>>>> clean
>>>>>>>>>>> but
>>>>>>>>>>>>> it
>>>>>>>>>>>>>>>>>>>>>> works, I've been able to compile all the externs with.
>>>>>>>>>>>>>>>>>>>>>> I will commit it later today or tomorrow as I need to
>>>>> clean
>>>>>>>>> a
>>>>>>>>>>> bit
>>>>>>>>>>>>>>>> before
>>>>>>>>>>>>>>>>>>>>>> and it would be nice if you can review it.
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>>>>>>>>>>> Frédéric THOMAS
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> ----------------------------------------
>>>>>>>>>>>>>>>>>>>>>>> From: webdoubl...@hotmail.com
>>>>>>>>>>>>>>>>>>>>>>> To: dev@flex.apache.org
>>>>>>>>>>>>>>>>>>>>>>> Subject: RE: [Externs] jasmine-2.0.js
>>>>>>>>>>>>>>>>>>>>>>> Date: Fri, 26 Jun 2015 22:43:30 +0100
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> Hey Mike, it looks like "import jasmine.Clock;" is
>>>>> missing
>>>>>>>>> in
>>>>>>>>>>>>> the
>>>>>>>>>>>>>>>>>>>>>> generated jasmine.as, that's it !
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> Frédéric THOMAS
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> ----------------------------------------
>>>>>>>>>>>>>>>>>>>>>>>> From: webdoubl...@hotmail.com
>>>>>>>>>>>>>>>>>>>>>>>> To: dev@flex.apache.org
>>>>>>>>>>>>>>>>>>>>>>>> Subject: RE: [Externs] jasmine-2.0.js
>>>>>>>>>>>>>>>>>>>>>>>> Date: Fri, 26 Jun 2015 22:26:32 +0100
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> HAHA, ah that is a hard one man, thanks for the
>>> offer
>>>>>>>>> but I
>>>>>>>>>>>>>>>> think I am
>>>>>>>>>>>>>>>>>>>>>>>>> going to need to get this one. There are a couple
>>>>> places
>>>>>>>>> it
>>>>>>>>>>>>>>>> could be
>>>>>>>>>>>>>>>>>>>>>> though
>>>>>>>>>>>>>>>>>>>>>>>>> if you are curious.
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> First you really need to understand the problem, I
>>> am
>>>>>>>>> typing
>>>>>>>>>>>>>>>> this
>>>>>>>>>>>>>>>>>>>>>> stuff in
>>>>>>>>>>>>>>>>>>>>>>>>> between installing a bathroom vanity and sink, so I
>>>>>>>>> haven't
>>>>>>>>>>>>>>>> looked at
>>>>>>>>>>>>>>>>>>>>>> the
>>>>>>>>>>>>>>>>>>>>>>>>> code yet. :)
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> So I can't really give you an answer since I don't
>>>>> quite
>>>>>>>>>>> know
>>>>>>>>>>>>>>>> the
>>>>>>>>>>>>>>>>>>>>>> problem
>>>>>>>>>>>>>>>>>>>>>>>>> yet.
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> Ok, I will check your solution :-)
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> Frédéric THOMAS
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> ----------------------------------------
>>>>>>>>>>>>>>>>>>>>>>>>> Date: Fri, 26 Jun 2015 16:59:58 -0400
>>>>>>>>>>>>>>>>>>>>>>>>> Subject: Re: [Externs] jasmine-2.0.js
>>>>>>>>>>>>>>>>>>>>>>>>> From: teotigraphix...@gmail.com
>>>>>>>>>>>>>>>>>>>>>>>>> To: dev@flex.apache.org
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> On Fri, Jun 26, 2015 at 4:39 PM, Frédéric THOMAS <
>>>>>>>>>>>>>>>>>>>>>> webdoubl...@hotmail.com>
>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> Yeah, this "jasmine.Clock"
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> The error means that the Falcon compiler is
>>> trying
>>>>> to
>>>>>>>>>>>>> resolve
>>>>>>>>>>>>>>>> a
>>>>>>>>>>>>>>>>>>>>>> member
>>>>>>>>>>>>>>>>>>>>>>>>>>> expression and it can't resolve it.
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> So this means there is a bug in the AST resolver.
>>>>> You
>>>>>>>>> are
>>>>>>>>>>>>>>>> using the
>>>>>>>>>>>>>>>>>>>>>>>>>> extern
>>>>>>>>>>>>>>>>>>>>>>>>>>> in the GCC project correct?
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> Yes,
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>
>>>>>
>>> https://raw.githubusercontent.com/google/closure-compiler/master/contrib/externs/jasmine-2.0.js
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> If so, I need to take a look at it.
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> Everyone, I did one pass and tests on packages
>>> and
>>>>>>>>> class
>>>>>>>>>>>>>>>> creation,
>>>>>>>>>>>>>>>>>>>>>> so
>>>>>>>>>>>>>>>>>>>>>>>>>> these
>>>>>>>>>>>>>>>>>>>>>>>>>>> types of bugs are to be expected as the AST/Type
>>>>>>>>> resolver
>>>>>>>>>>> is
>>>>>>>>>>>>>>>>>>>>>> "asked" to
>>>>>>>>>>>>>>>>>>>>>>>>>> do
>>>>>>>>>>>>>>>>>>>>>>>>>>> more work then my initial implementation.
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> Make sense?
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> Well, kind of :-)
>>>>>>>>>>>>>>>>>>>>>>>>>> What classes would you check for this ?
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> HAHA, ah that is a hard one man, thanks for the
>>> offer
>>>>>>>>> but I
>>>>>>>>>>>>>>>> think I am
>>>>>>>>>>>>>>>>>>>>>>>>> going to need to get this one. There are a couple
>>>>> places
>>>>>>>>> it
>>>>>>>>>>>>>>>> could be
>>>>>>>>>>>>>>>>>>>>>> though
>>>>>>>>>>>>>>>>>>>>>>>>> if you are curious.
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> First you really need to understand the problem, I
>>> am
>>>>>>>>> typing
>>>>>>>>>>>>>>>> this
>>>>>>>>>>>>>>>>>>>>>> stuff in
>>>>>>>>>>>>>>>>>>>>>>>>> between installing a bathroom vanity and sink, so I
>>>>>>>>> haven't
>>>>>>>>>>>>>>>> looked at
>>>>>>>>>>>>>>>>>>>>>> the
>>>>>>>>>>>>>>>>>>>>>>>>> code yet. :)
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> So I can't really give you an answer since I don't
>>>>> quite
>>>>>>>>>>> know
>>>>>>>>>>>>>>>> the
>>>>>>>>>>>>>>>>>>>>>> problem
>>>>>>>>>>>>>>>>>>>>>>>>> yet.
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> Mike
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>>>>>>>>>>>>>>> Frédéric THOMAS
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> ----------------------------------------
>>>>>>>>>>>>>>>>>>>>>>>>>>> Date: Fri, 26 Jun 2015 16:32:16 -0400
>>>>>>>>>>>>>>>>>>>>>>>>>>> Subject: Re: [Externs] jasmine-2.0.js
>>>>>>>>>>>>>>>>>>>>>>>>>>> From: teotigraphix...@gmail.com
>>>>>>>>>>>>>>>>>>>>>>>>>>> To: dev@flex.apache.org
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> Yeah, this "jasmine.Clock"
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> The error means that the Falcon compiler is
>>> trying
>>>>> to
>>>>>>>>>>>>> resolve
>>>>>>>>>>>>>>>> a
>>>>>>>>>>>>>>>>>>>>>> member
>>>>>>>>>>>>>>>>>>>>>>>>>>> expression and it can't resolve it.
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> So this means there is a bug in the AST resolver.
>>>>> You
>>>>>>>>> are
>>>>>>>>>>>>>>>> using the
>>>>>>>>>>>>>>>>>>>>>>>>>> extern
>>>>>>>>>>>>>>>>>>>>>>>>>>> in the GCC project correct?
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> If so, I need to take a look at it.
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> Everyone, I did one pass and tests on packages
>>> and
>>>>>>>>> class
>>>>>>>>>>>>>>>> creation,
>>>>>>>>>>>>>>>>>>>>>> so
>>>>>>>>>>>>>>>>>>>>>>>>>> these
>>>>>>>>>>>>>>>>>>>>>>>>>>> types of bugs are to be expected as the AST/Type
>>>>>>>>> resolver
>>>>>>>>>>> is
>>>>>>>>>>>>>>>>>>>>>> "asked" to
>>>>>>>>>>>>>>>>>>>>>>>>>> do
>>>>>>>>>>>>>>>>>>>>>>>>>>> more work then my initial implementation.
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> Make sense?
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> Mike
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> On Fri, Jun 26, 2015 at 3:27 PM, Frédéric THOMAS
>>> <
>>>>>>>>>>>>>>>>>>>>>>>>>> webdoubl...@hotmail.com>
>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> Hi Mike,
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> Any idea why ?
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>> U:\sources\asf\flex\falcon\externs\jasmine\out\as\classes\
>>>>>>>>>>>>>>>>>>>>>> jasmine.as:26
>>>>>>>>>>>>>>>>>>>>>>>>>>>> Erreur interne : java.lang.NullPointerException
>>>>>>>>>>>>>>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>
>>>>>
>>> org.apache.flex.compiler.internal.scopes.TypeScope.getPropertyForMemberAccess(TypeScope.java:344)
>>>>>>>>>>>>>>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>
>>>>>
>>> org.apache.flex.compiler.internal.scopes.ScopeView.getPropertyForMemberAccess(ScopeView.java:81)
>>>>>>>>>>>>>>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>
>>>>>
>>> org.apache.flex.compiler.internal.scopes.ASScope.getPropertyFromDef(ASScope.java:879)
>>>>>>>>>>>>>>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>
>>>>>
>>> org.apache.flex.compiler.internal.scopes.ASScope.getPropertyFromDef(ASScope.java:841)
>>>>>>>>>>>>>>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>
>>>>>
>>> org.apache.flex.compiler.internal.scopes.ASScope.getPropertyFromDef(ASScope.java:760)
>>>>>>>>>>>>>>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>
>>>>>
>>> org.apache.flex.compiler.internal.tree.as.IdentifierNode.resolveMemberRef(IdentifierNode.java:829)
>>>>>>>>>>>>>>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>
>>>>>
>>> org.apache.flex.compiler.internal.tree.as.IdentifierNode.resolve(IdentifierNode.java:377)
>>>>>>>>>>>>>>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>
>>>>>
>>> org.apache.flex.compiler.internal.tree.as.IdentifierNode.getMName(IdentifierNode.java:432)
>>>>>>>>>>>>>>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>
>>>>>
>>> org.apache.flex.compiler.internal.tree.as.MemberAccessExpressionNode.getMName(MemberAccessExpressionNode.java:158)
>>>>>>>>>>>>>>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>
>>>>>
>>> org.apache.flex.compiler.internal.as.codegen.ABCGeneratingReducer.dottedName(ABCGeneratingReducer.java:840)
>>>>>>>>>>>>>>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>
>>>>>
>>> org.apache.flex.compiler.internal.as.codegen.CmcEmitter.action_321(CmcEmitter.java:5236)
>>>>>>>>>>>>>>>>>>>>>>>>>>>> ...
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> public static function clock():jasmine.Clock {
>>>>> return
>>>>>>>>>>>>> null; }
>>>>>>>>>>>>>>>>>>>>>>>>>>>> ^
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> -----------------------------
>>>>>>>>>>>>>>>>>>>>>>>>>>>> In the jasmine extern file
>>>>>>>>>>>>>>>>>>>>>>>>>>>> -----------------------------
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> /**
>>>>>>>>>>>>>>>>>>>>>>>>>>>> * @return {!jasmine.Clock}
>>>>>>>>>>>>>>>>>>>>>>>>>>>> */
>>>>>>>>>>>>>>>>>>>>>>>>>>>> jasmine.clock = function() {};
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> /** @constructor */
>>>>>>>>>>>>>>>>>>>>>>>>>>>> jasmine.Clock = function() {};
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> /** */
>>>>>>>>>>>>>>>>>>>>>>>>>>>> jasmine.Clock.prototype.install = function() {};
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> /** */
>>>>>>>>>>>>>>>>>>>>>>>>>>>> jasmine.Clock.prototype.uninstall = function()
>>> {};
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> /** @param {number} ms */
>>>>>>>>>>>>>>>>>>>>>>>>>>>> jasmine.Clock.prototype.tick = function(ms) {};
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> /** @param {!Date} date */
>>>>>>>>>>>>>>>>>>>>>>>>>>>> jasmine.Clock.prototype.mockDate =
>>> function(date)
>>>>> {};
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> -----------------------------
>>>>>>>>>>>>>>>>>>>>>>>>>>>> In jasmine.as
>>>>>>>>>>>>>>>>>>>>>>>>>>>> -----------------------------
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> /**
>>>>>>>>>>>>>>>>>>>>>>>>>>>> * @see [jasmine-2.0]
>>>>>>>>>>>>>>>>>>>>>>>>>>>> * @returns {jasmine.Clock}
>>>>>>>>>>>>>>>>>>>>>>>>>>>> */
>>>>>>>>>>>>>>>>>>>>>>>>>>>> public static function clock():jasmine.Clock {
>>>>> return
>>>>>>>>>>>>> null; }
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> -----------------------------
>>>>>>>>>>>>>>>>>>>>>>>>>>>> clock.as
>>>>>>>>>>>>>>>>>>>>>>>>>>>> -----------------------------
>>>>>>>>>>>>>>>>>>>>>>>>>>>> package jasmine {
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> /**
>>>>>>>>>>>>>>>>>>>>>>>>>>>> * @see [jasmine-2.0]
>>>>>>>>>>>>>>>>>>>>>>>>>>>> */
>>>>>>>>>>>>>>>>>>>>>>>>>>>> public class Clock {
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> /**
>>>>>>>>>>>>>>>>>>>>>>>>>>>> * @see [jasmine-2.0]
>>>>>>>>>>>>>>>>>>>>>>>>>>>> */
>>>>>>>>>>>>>>>>>>>>>>>>>>>> public function Clock() {
>>>>>>>>>>>>>>>>>>>>>>>>>>>> super();
>>>>>>>>>>>>>>>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> /**
>>>>>>>>>>>>>>>>>>>>>>>>>>>> * Generated doc for missing method JSDoc.
>>>>>>>>>>>>>>>>>>>>>>>>>>>> *
>>>>>>>>>>>>>>>>>>>>>>>>>>>> * @see [jasmine-2.0]
>>>>>>>>>>>>>>>>>>>>>>>>>>>> */
>>>>>>>>>>>>>>>>>>>>>>>>>>>> public function install():void { }
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> /**
>>>>>>>>>>>>>>>>>>>>>>>>>>>> * @param ms [number]
>>>>>>>>>>>>>>>>>>>>>>>>>>>> * @see [jasmine-2.0]
>>>>>>>>>>>>>>>>>>>>>>>>>>>> */
>>>>>>>>>>>>>>>>>>>>>>>>>>>> public function tick(ms:Number):void { }
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> /**
>>>>>>>>>>>>>>>>>>>>>>>>>>>> * Generated doc for missing method JSDoc.
>>>>>>>>>>>>>>>>>>>>>>>>>>>> *
>>>>>>>>>>>>>>>>>>>>>>>>>>>> * @see [jasmine-2.0]
>>>>>>>>>>>>>>>>>>>>>>>>>>>> */
>>>>>>>>>>>>>>>>>>>>>>>>>>>> public function uninstall():void { }
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> /**
>>>>>>>>>>>>>>>>>>>>>>>>>>>> * @param date [Date]
>>>>>>>>>>>>>>>>>>>>>>>>>>>> * @see [jasmine-2.0]
>>>>>>>>>>>>>>>>>>>>>>>>>>>> */
>>>>>>>>>>>>>>>>>>>>>>>>>>>> public function mockDate(date:Date):void { }
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>>>>>>>>>>>>>>>>> Frédéric THOMAS
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>
>>>>>
>>>>>
>>>
>>>
>>
                                          

Reply via email to