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