google / google/closure-compiler

Fails to error on "data" property on any type

Open
#2,062 1 comment 0 reactions 0 assignees View on GitHub
OTI
Dominant language
JavaScript
Stars
7.7k
Forks
1.2k
Avg merge
2d 12h
Merged PRs (30d)
6

Description

The type checker acts like `data` is a valid property of any Object type.

closure-compiler-v20160911.jar --jscomp_error=checkTypes --jscomp_error=checkVars --jscomp_error=missingProperties

``` javascript
/** @type {number} e */
function bar(e) {
var a = new Object();
foo(a.data); // No error!
foo(Object.prototype.data); // No error!
foo(a.blah); // ERROR - Property blah never defined on Object
}

/** @type {number} */
function foo(o) { o++; }
```

Expected: First error on line 4, "Property data never defined on Object"
Actual: First error on line 6, "Property blah never defined on Object"

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.