On Sun, Jun 28, 2015 at 3:49 PM, Frédéric THOMAS <webdoubl...@hotmail.com> wrote:
> > 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 ? > > Well if I had complete tests I could tell you. ;-) Mike > 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 > >>>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> > >>>>>>>>>>>>> > >>>>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>> > >>>>> > >>>>> > >>> > >>> > >> > >