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