Also I'm trying to write tests for this pass and I've got something that 
doesn't pass, why the "bar" parameter is consider as optional in the 
collectImport.CollectImports constructor ? 
see the emmitted "@param bar [(foo.Bar|null)] ",  why not "@param bar {foo.Bar} 
" ?

/**
 * @constructor
 * @extends {superClasses.Import}
 * @param {foo.Bar} bar
 * @param {number} value
 */
collectImport.CollectImports = function(bar, value) {};

EMMITTED TO:

package collectImport {

import superClasses.Import;

/**
 * @see [collect_import]
 */
public class CollectImports extends superClasses.Import {

    /**
     * @param bar [(foo.Bar|null)] 
     * @param value [number] 
     * @see [collect_import]
     */
    public function CollectImports(bar:foo.Bar, value:Number) {
        super();
    }

Thanks,
Frédéric THOMAS


----------------------------------------
> From: webdoubl...@hotmail.com
> To: dev@flex.apache.org
> Subject: RE: [Externs] jasmine-2.0.js
> Date: Mon, 6 Jul 2015 00:18:10 +0100
>
>> 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(). :)
>
>
> You can review the add-CollectImportPass branch before I merge it when you 
> have a chance.
> Thanks,
> 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