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 >> >