getMName returns a Name with the same namespace as calling getNamespaceReference() on the definition.
That still doesn't help me when the property is a [Bindable] var in a class in a SWC. The definition is a VariableDefinition with the BindableNamespace which represents the backing variable for the generated [Bindable] code. I somehow have to find a SetterDefinition and figure out its namespace. Any thoughts on that? Thanks, -Alex On 9/26/13 12:13 PM, "Gordon Smith" <gosm...@adobe.com> wrote: >I was able to browse the Apache repo. getMName() is on DefinitionBase, but >not on IDefinition. So try >((DefinitionBase)propertyNode.getDefinition()).getMName() and see whether >it returns the right kind of Name when the property is private or >protected. > >- Gordon > >On 9/26/13 12:05 PM, "Gordon Smith" <gosm...@adobe.com> wrote: > >>I'm in a meeting in San Jose and don't have access to the Falcon code at >>the moment. But I think Idefinition (or maybe only DefinitionBase) has a >>getMName() method that returns a Name. >> >>- Gordon >> >> >>On 9/26/13 11:37 AM, "Alex Harui" <aha...@adobe.com> wrote: >> >>>It turns out that MXMLPropertySpecifierNode just calls its definition's >>>getBaseName(). There doesn't seem to be any API on IDefinition to >>>return >>>a fully qualified name. I can get the INamespaceReference from the >>>definition, but then how to I convert the INamespaceReference to a >>>Namespace I can pass into Name? >>> >>>Thanks, >>>-Alex >>> >>>On 9/26/13 11:28 AM, "Gordon Smith" <gosm...@adobe.com> wrote: >>> >>>>I don't think using a Binding should be necessary. I think the bug is >>>>the >>>>getName() of MXMLPropertySpecifierNode isn't returning the right kind >>>>of >>>>Name when the property is protected or private. >>>> >>>>- Gordon >>>> >>>> >>>>On 9/26/13 11:13 AM, "Alex Harui" <aha...@adobe.com> wrote: >>>> >>>>>Darrell, Gordon (mostly), >>>>> >>>>>I'm having trouble with the codegen for a Binding destination >>>>>function. >>>>>I >>>>>have an MXMLPropertySpecifierNode for the property to be set. This >>>>>property can be protected or private as well as public. I want to use >>>>>the >>>>>OP_setproperty instruction which seems to take a Name. However, the >>>>>MXMLPropertySpecifierNode's getName() returns a Name that isn't >>>>>qualified >>>>>as protected or private. In looking around, I see that other code >>>>>that >>>>>uses OP_setproperty seems to have a Binding and the getName() of that >>>>>Binding is used. >>>>> >>>>>I passed in the LexicalScope from the class and called getBinding on >>>>>the >>>>>MXMLPropertySpecifierNode's getDefinition() and that worked for >>>>>protected >>>>>and private members of the class, but what I'm seeing is that if the >>>>>public variable is [Bindable] and comes from a class in a SWC then the >>>>>MXMLPropertySpecifierNode has a VariableDefinition (instead of a >>>>>SynthesizedBindableSetterDefinition) and getBinding returns a binding >>>>>with >>>>>the namespace set to the BindableNamespace instead of a public setter. >>>>> >>>>>I'm wondering if the MXMLPropertySpecifierNode's definition should be >>>>>something other than a VariableDefinition when coming from a SWC, or >>>>>the >>>>>code should somehow special case that VariableDefinition and go >>>>>hunting >>>>>for a SetterDefinition, or something else. >>>>> >>>>>Thanks, >>>>>-Alex >>>>> >>>> >>> >> >