Which warning did you get from the compiler?

EdB



On Thu, Dec 5, 2013 at 6:36 PM, Alex Harui <aha...@adobe.com> wrote:
> OK, can you give more details on what it is checking for?
>
> For the AS interface:
>
> public interface IDataProviderItemRendererMapper extends IBead
>         {
>         function get itemRendererFactory():IItemRendererClassFactory;
>         function set 
> itemRendererFactory(value:IItemRendererClassFactory):void;
>         }
>
> What should the output JS be?  What it was doing (from emitInterface in
> JSGoogEmitter.java) was resulting in warnings from the closure compiler.
> The output was the following and the itemRendererFactory line resulting in
> a warning.
>
> /**
>  *
> org.apache.flex.html.customControls.beads.IDataProviderItemRendererMapper
>  *
>  * @fileoverview
>  *
>  * @suppress {checkTypes}
>  */
>
> goog.provide('org.apache.flex.html.customControls.beads.IDataProviderItemRe
> ndererMapper');
>
>
>
>
> /**
>  * @interface
>  * @extends {org.apache.flex.core.IBead}
>  */
> org.apache.flex.html.customControls.beads.IDataProviderItemRendererMapper
> = function() {
> };
> org.apache.flex.html.customControls.beads.prototype.itemRendererFactory;
>
>
> /**
>  * Metadata
>  *
>  * @type {Object.<string, Array.<Object>>}
>  */
> org.apache.flex.html.customControls.beads.IDataProviderItemRendererMapper.p
> rototype.FLEXJS_CLASS_INFO = { names: [{ name:
> 'IDataProviderItemRendererMapper', qName:
> 'org.apache.flex.html.customControls.beads.IDataProviderItemRendererMapper'
> }], interfaces: [org.apache.flex.core.IBead] };
>
>
>
>
>
>
> On 12/4/13 11:55 PM, "Erik de Bruin" <e...@ixsoftware.nl> wrote:
>
>>The Closure Compiler uses the members of an interface to check if the
>>interface is properly implemented. So, yes, I'd say we need the
>>members emitted...
>>
>>EdB
>>
>>
>>
>>On Thu, Dec 5, 2013 at 7:12 AM,  <aha...@apache.org> wrote:
>>> Don't bother emitting interface members.  The way they were being
>>>emitted were causing warnings from the closure compiler
>>>
>>>
>>> Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo
>>> Commit:
>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/70683e5d
>>> Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/70683e5d
>>> Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/70683e5d
>>>
>>> Branch: refs/heads/develop
>>> Commit: 70683e5d223538713c02eb02029f4e67686c0c7a
>>> Parents: 30fd603
>>> Author: Alex Harui <aha...@apache.org>
>>> Authored: Wed Dec 4 22:11:39 2013 -0800
>>> Committer: Alex Harui <aha...@apache.org>
>>> Committed: Wed Dec 4 22:11:39 2013 -0800
>>>
>>> ----------------------------------------------------------------------
>>>  .../codegen/js/flexjs/JSFlexJSEmitter.java      | 65
>>>++++++++++++++++++++
>>>  1 file changed, 65 insertions(+)
>>> ----------------------------------------------------------------------
>>>
>>>
>>>
>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/70683e5d/compiler
>>>.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitt
>>>er.java
>>> ----------------------------------------------------------------------
>>> diff --git
>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSF
>>>lexJSEmitter.java
>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSF
>>>lexJSEmitter.java
>>> index a65335d..cd67c00 100644
>>> ---
>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSF
>>>lexJSEmitter.java
>>> +++
>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSF
>>>lexJSEmitter.java
>>> @@ -197,6 +197,71 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>implements IJSFlexJSEmitter
>>>      }
>>>
>>>      @Override
>>> +    public void emitInterface(IInterfaceNode node)
>>> +    {
>>> +        ICompilerProject project = getWalker().getProject();
>>> +
>>> +        getDoc().emitInterfaceDoc(node, project);
>>> +
>>> +        String qname = node.getQualifiedName();
>>> +        if (qname != null && !qname.equals(""))
>>> +        {
>>> +            write(qname);
>>> +            write(ASEmitterTokens.SPACE);
>>> +            writeToken(ASEmitterTokens.EQUAL);
>>> +            write(ASEmitterTokens.FUNCTION);
>>> +            write(ASEmitterTokens.PAREN_OPEN);
>>> +            write(ASEmitterTokens.PAREN_CLOSE);
>>> +            write(ASEmitterTokens.SPACE);
>>> +            write(ASEmitterTokens.BLOCK_OPEN);
>>> +            writeNewline();
>>> +            write(ASEmitterTokens.BLOCK_CLOSE);
>>> +            write(ASEmitterTokens.SEMICOLON);
>>> +        }
>>> +
>>> +
>>> +        /* (aharui): is there any reason to emit members at all?
>>> +        final IDefinitionNode[] members =
>>>node.getAllMemberDefinitionNodes();
>>> +        for (IDefinitionNode mnode : members)
>>> +        {
>>> +            boolean isAccessor = mnode.getNodeID() ==
>>>ASTNodeID.GetterID
>>> +                    || mnode.getNodeID() == ASTNodeID.SetterID;
>>> +
>>> +            if (!isAccessor || !propertyNames.contains(qname))
>>> +            {
>>> +                writeNewline();
>>> +
>>> +                write(qname);
>>> +                write(ASEmitterTokens.MEMBER_ACCESS);
>>> +                write(JSEmitterTokens.PROTOTYPE);
>>> +                write(ASEmitterTokens.MEMBER_ACCESS);
>>> +                write(mnode.getQualifiedName());
>>> +
>>> +                if (isAccessor && !propertyNames.contains(qname))
>>> +                {
>>> +                    propertyNames.add(qname);
>>> +                }
>>> +                else
>>> +                {
>>> +                    write(ASEmitterTokens.SPACE);
>>> +                    writeToken(ASEmitterTokens.EQUAL);
>>> +                    write(ASEmitterTokens.FUNCTION);
>>> +
>>> +                    emitParameters(((IFunctionNode)
>>>mnode).getParameterNodes());
>>> +
>>> +                    write(ASEmitterTokens.SPACE);
>>> +                    write(ASEmitterTokens.BLOCK_OPEN);
>>> +                    writeNewline();
>>> +                    write(ASEmitterTokens.BLOCK_CLOSE);
>>> +                }
>>> +
>>> +                write(ASEmitterTokens.SEMICOLON);
>>> +            }
>>> +        }
>>> +        */
>>> +    }
>>> +
>>> +    @Override
>>>      public void emitField(IVariableNode node)
>>>      {
>>>          IDefinition definition = getClassDefinition(node);
>>>
>>
>>
>>
>>--
>>Ix Multimedia Software
>>
>>Jan Luykenstraat 27
>>3521 VB Utrecht
>>
>>T. 06-51952295
>>I. www.ixsoftware.nl
>



-- 
Ix Multimedia Software

Jan Luykenstraat 27
3521 VB Utrecht

T. 06-51952295
I. www.ixsoftware.nl

Reply via email to