From 3e14a1d812b1640a6f8c7edfc19e7c2594c9fccf Mon Sep 17 00:00:00 2001 From: Daniel Freedman Date: Tue, 27 Jun 2017 18:39:39 -0700 Subject: [PATCH] zero warnings left --- closure.log | 265 ------------------------ externs/closure-types.js | 196 +++++++++--------- externs/polymer-closure-types.html | 157 ++++++++++++++ externs/polymer-externs.js | 13 +- externs/webcomponents-externs.js | 3 + gulpfile.js | 37 +++- lib/elements/array-selector.html | 11 +- lib/elements/custom-style.html | 1 + lib/elements/dom-bind.html | 2 + lib/elements/dom-module.html | 1 + lib/legacy/class.html | 10 +- lib/legacy/legacy-element-mixin.html | 1 + lib/legacy/mutable-data-behavior.html | 7 +- lib/mixins/element-mixin.html | 6 +- lib/mixins/gesture-event-listeners.html | 1 + lib/mixins/mutable-data.html | 1 + lib/mixins/property-accessors.html | 1 + lib/mixins/property-effects.html | 117 ++++++----- lib/mixins/template-stamp.html | 39 ++-- lib/utils/templatize.html | 49 +++-- 20 files changed, 450 insertions(+), 468 deletions(-) delete mode 100644 closure.log create mode 100644 externs/polymer-closure-types.html diff --git a/closure.log b/closure.log deleted file mode 100644 index bd9bdcfe0b..0000000000 --- a/closure.log +++ /dev/null @@ -1,265 +0,0 @@ -gulp-google-closure-compiler: WARNING - Type annotation references non-existent type Polymer.ElementProperties. - -externs/closure-types.js:1053: WARNING - property connectedCallback not defined on any supertype of Polymer_ElementMixin -Polymer_ElementMixin.prototype.connectedCallback = function(){}; -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -externs/closure-types.js:1057: WARNING - property disconnectedCallback not defined on any supertype of Polymer_ElementMixin -Polymer_ElementMixin.prototype.disconnectedCallback = function(){}; -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -polymer.html_script_11.js:464: WARNING - Property negate never defined on $jscomp$destructuring$var0 of type {event: ?} - let {event, negate} = binding.parts[0]; - ^^^^^^ - -polymer.html_script_11.js:490: WARNING - Property target never defined on binding of type {kind: string} - if (binding.kind === 'attribute' && binding.target[0] === '-') { - ^^^^^^^^^^^^^^ - -polymer.html_script_11.js:491: WARNING - Property target never defined on binding of type {kind: string} - console.warn('Cannot set attribute ' + binding.target + - ^^^^^^^^^^^^^^ - -polymer.html_script_11.js:494: WARNING - Property dependencies never defined on part of type Object - let dependencies = part.dependencies; - ^^^^^^^^^^^^^^^^^ - -polymer.html_script_11.js:565: WARNING - Property kind never defined on binding of type {target: string} - value = Polymer.sanitizeDOMValue(value, binding.target, binding.kind, node); - ^^^^^^^^^^^^ - -polymer.html_script_11.js:569: WARNING - Property target never defined on binding of type {kind: ?} - inst._valueToNodeAttribute(/** @type {Element} */(node), value, binding.target); - ^^^^^^^^^^^^^^ - -polymer.html_script_11.js:572: WARNING - Property target never defined on binding of type {kind: ?} - let prop = binding.target; - ^^^^^^^^^^^^^^ - -polymer.html_script_11.js:602: WARNING - Property kind never defined on binding of type Object - if (binding.kind !== 'attribute') { - ^^^^^^^^^^^^ - -polymer.html_script_11.js:604: WARNING - Property target never defined on binding of type Object - if (binding.target === 'textContent' || - ^^^^^^^^^^^^^^ - -polymer.html_script_11.js:605: WARNING - Property target never defined on binding of type Object - (node.localName == 'input' && binding.target == 'value')) { - ^^^^^^^^^^^^^^ - -polymer.html_script_11.js:643: WARNING - Property nodeInfoList never defined on $jscomp$destructuring$var1 of type {nodeList: ?} - let {nodeList, nodeInfoList} = templateInfo; - ^^^^^^^^^^^^ - -polymer.html_script_11.js:731: WARNING - Property methodName never defined on sig of type Object - (typeof dynamicFn !== 'object' || dynamicFn[sig.methodName])); - ^^^^^^^^^^^^^^ - -polymer.html_script_11.js:733: WARNING - Property methodName never defined on sig of type Object - methodName: sig.methodName, - ^^^^^^^^^^^^^^ - -polymer.html_script_11.js:734: WARNING - Property args never defined on sig of type Object - args: sig.args, - ^^^^^^^^ - -polymer.html_script_11.js:738: WARNING - Property args never defined on sig of type Object - for (let i=0, arg; (i=, nodeList: ?, wasPreBound: truthy=} - runEffects(this, templateInfo.propertyEffects, this.__data, null, - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -polymer.html_script_11.js:2323: WARNING - Property templateInfo never defined on dom of type DocumentFragment - let templateInfo = dom.templateInfo; - ^^^^^^^^^^^^^^^^ - -polymer.html_script_11.js:2361: WARNING - Property _parseTemplateNode never defined on propertyEffectsBase of type propertyEffectsBase<|function(new:propertyEffectsBase):?|> - let noted = super._parseTemplateNode(node, templateInfo, nodeInfo); - ^^^^^^^^^^^^^^^^^^^^^^^^ - -polymer.html_script_11.js:2426: WARNING - Property _parseTemplateNodeAttribute never defined on propertyEffectsBase of type propertyEffectsBase<|function(new:propertyEffectsBase):?|> - return super._parseTemplateNodeAttribute(node, templateInfo, nodeInfo, name, value); - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -polymer.html_script_11.js:2444: WARNING - Property _parseTemplateNestedTemplate never defined on propertyEffectsBase of type propertyEffectsBase<|function(new:propertyEffectsBase):?|> - let noted = super._parseTemplateNestedTemplate(node, templateInfo, nodeInfo); - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -polymer.html_script_11.js:2517: WARNING - Property args never defined on $jscomp$destructuring$var2 of type Object - let {args, methodName} = signature; - ^^^^ - -polymer.html_script_11.js:2517: WARNING - Property methodName never defined on $jscomp$destructuring$var2 of type Object - let {args, methodName} = signature; - ^^^^^^^^^^ - -polymer.html_script_11.js:2573: WARNING - Property source never defined on part of type Object - } else if (path != part.source) { - ^^^^^^^^^^^ - -polymer.html_script_11.js:2574: WARNING - Property source never defined on part of type Object - value = Polymer.Path.get(inst, part.source); - ^^^^^^^^^^^ - -polymer.html_script_12.js:158: WARNING - Property prototype never defined on klass of type HTMLElement{__classProperties: Object|null} - let superCtor = Object.getPrototypeOf(klass.prototype).constructor; - ^^^^^^^^^^^^^^^ - -polymer.html_script_12.js:613: WARNING - Property $ never defined on this.root of type DocumentFragment - this.$ = this.root.$; - ^^^^^^^^^^^ - -polymer.html_script_12.js:743: WARNING - Property _parseTemplateContent never defined on polymerElementBase of type polymerElementBase<|function(new:polymerElementBase):?|> - return super._parseTemplateContent(template, templateInfo, nodeInfo); - ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -polymer.html_script_23.js:446: WARNING - Property forceRender never defined on any type in the program - this.shadowRoot.forceRender(); - ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -polymer.html_script_27.js:118: WARNING - Property __dataHost never defined on this.__dataHost of type DataTemplate - let templateHost = this.__dataHost.__dataHost; - ^^^^^^^^^^^^^^^^^^^^^^^^^^ - -polymer.html_script_27.js:190: WARNING - Property __dataHost never defined on model.__dataHost of type DataTemplate - model = model.__dataHost.__dataHost; - ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -polymer.html_script_27.js:232: WARNING - Property _bindTemplate never defined on klass.prototype of type klass.prototype - klass.prototype._bindTemplate(template); - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -polymer.html_script_27.js:250: WARNING - Property _addPropertyEffect never defined on klass.prototype of type polymer_html_script_27$classdecl$var1.prototype - klass.prototype._addPropertyEffect('_host_' + prop, - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -polymer.html_script_27.js:251: WARNING - Property PROPERTY_EFFECT_TYPES never defined on klass.prototype of type polymer_html_script_27$classdecl$var1.prototype - klass.prototype.PROPERTY_EFFECT_TYPES.PROPAGATE, - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -polymer.html_script_27.js:253: WARNING - Property _createNotifyingProperty never defined on klass.prototype of type polymer_html_script_27$classdecl$var1.prototype - klass.prototype._createNotifyingProperty('_host_' + prop); - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -polymer.html_script_29.js:95: WARNING - Property $ never defined on this.root of type DocumentFragment - this.$ = this.root.$; - ^^^^^^^^^^^ - -polymer.html_script_31.js:218: WARNING - property _setRenderedItemCount not defined on any supertype of DomRepeat - renderedItemCount: { - ^^^^^^^^^^^^^^^^^ - -polymer.html_script_31.js:365: WARNING - Property __dataHost never defined on this of type DomRepeat - return this.__dataHost._methodHost || this.__dataHost; - ^^^^^^^^^^^^^^^ - -polymer.html_script_32.js:222: WARNING - Property __dataHost never defined on this of type DomIf{__instance: {_setPendingProperty: LOOSE_TOP_FUNCTION} (loose)} - this.__instance._setPendingProperty(prop, this.__dataHost[prop]); - ^^^^^^^^^^^^^^^ - -polymer.html_script_33.js:169: WARNING - The right side in the assignment is not a subtype of the left side. -Expected : Object -Found : null - - this.selected = this.selectedItem = null; - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -polymer.html_script_33.js:169: WARNING - The right side in the assignment is not a subtype of the left side. -Expected : Object -Found : null - - this.selected = this.selectedItem = null; - ^^^^^^^^^^^^^^^^^^^^^^^^ - -polymer.html_script_33.js:208: WARNING - The right side in the assignment is not a subtype of the left side. -Expected : Object -Found : Array|null -More details: -The found type is a union that includes an unexpected type: null - this.selected = this.multi ? [] : null - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -polymer.html_script_33.js:209: WARNING - The right side in the assignment is not a subtype of the left side. -Expected : Object -Found : null - - this.selectedItem = null; - ^^^^^^^^^^^^^^^^^^^^^^^^ - -polymer.html_script_33.js:229: WARNING - Invalid type for index. -Expected : number -Found : * - - return this.isSelected(this.items[idx]); - ^^^ - -polymer.html_script_33.js:268: WARNING - The right side in the assignment is not a subtype of the left side. -Expected : Object -Found : null - - this.selected = this.selectedItem = null; - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -polymer.html_script_33.js:268: WARNING - The right side in the assignment is not a subtype of the left side. -Expected : Object -Found : null - - this.selected = this.selectedItem = null; - ^^^^^^^^^^^^^^^^^^^^^^^^ - -polymer.html_script_35.js:5: WARNING - Property _mutablePropertyChange never defined on Polymer.MutableData of type function(?):? - let mutablePropertyChange = Polymer.MutableData._mutablePropertyChange; - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -0 error(s), 61 warning(s), 75.7% typed diff --git a/externs/closure-types.js b/externs/closure-types.js index 2f250fed0f..2f905083ec 100644 --- a/externs/closure-types.js +++ b/externs/closure-types.js @@ -126,8 +126,8 @@ Polymer_PropertyAccessors.createPropertiesForAttributes = function(){}; */ function Polymer_TemplateStamp(){} /** -* @param {HTMLTemplateElement} template Template to stamp -* @return {DocumentFragment} +* @param {!HTMLTemplateElement} template Template to stamp +* @return {!StampedTemplate} */ Polymer_TemplateStamp.prototype._stampTemplate = function(template){}; /** @@ -152,10 +152,10 @@ Polymer_TemplateStamp.prototype._addEventListenerToNode = function(node, eventNa */ Polymer_TemplateStamp.prototype._removeEventListenerFromNode = function(node, eventName, handler){}; /** -* @param {HTMLTemplateElement} template Template to parse -* @param {Object=} outerTemplateInfo Template metadata from the outer +* @param {!HTMLTemplateElement} template Template to parse +* @param {TemplateInfo=} outerTemplateInfo Template metadata from the outer template, for parsing nested templates -* @return {Object} +* @return {!TemplateInfo} */ Polymer_TemplateStamp._parseTemplate = function(template, outerTemplateInfo){}; /** @@ -166,36 +166,36 @@ Polymer_TemplateStamp._parseTemplate = function(template, outerTemplateInfo){}; Polymer_TemplateStamp._parseTemplateContent = function(template, templateInfo, nodeInfo){}; /** * @param {Node} node Node to parse -* @param {Object} templateInfo Template metadata for current template -* @param {Object} nodeInfo Node metadata for current template. +* @param {!TemplateInfo} templateInfo Template metadata for current template +* @param {!NodeInfo} nodeInfo Node metadata for current template. * @return {boolean} */ Polymer_TemplateStamp._parseTemplateNode = function(node, templateInfo, nodeInfo){}; /** * @param {Node} root Root node whose `childNodes` will be parsed -* @param {Object} templateInfo Template metadata for current template -* @param {Object} nodeInfo Node metadata for current template. +* @param {!TemplateInfo} templateInfo Template metadata for current template +* @param {!NodeInfo} nodeInfo Node metadata for current template. */ Polymer_TemplateStamp._parseTemplateChildNodes = function(root, templateInfo, nodeInfo){}; /** * @param {HTMLTemplateElement} node Node to parse (a