@fimbul/mimir
Advanced tools
Comparing version 0.12.0-dev.20180624 to 0.12.0-dev.20180628
{ | ||
"name": "@fimbul/mimir", | ||
"version": "0.12.0-dev.20180624", | ||
"version": "0.12.0-dev.20180628", | ||
"description": "Core rules of the Fimbullinter project", | ||
@@ -5,0 +5,0 @@ "main": "recommended.yaml", |
@@ -49,5 +49,5 @@ # Mímir | ||
[`no-useless-initializer`](docs/no-useless-initializer.md) | :mag_right: :wrench: Disallows unnecessary initialization with `undefined` and useless destructuring defaults. | TSLint's rule `no-unnecessary-initializer` doesn't fix all parameter initializers and gives false positives for destructuring. | ||
`no-useless-jump-label` | Detects `continue label;` and `break label;` where the label is not necessary. | There's no similar TSLint rule. | ||
[`no-useless-jump-label`](docs/no-useless-jump-label.md) | :wrench: Disallows `continue label;` and `break label;` where the label is not necessary. | There's no similar TSLint rule. | ||
`no-useless-predicate` | Detects redundant conditions that are either always true or always false. *requires type information* | Combination of TSLint's `strict-type-predicates`, `typeof-compare` and parts of `strict-boolean-expressions`. | ||
`no-useless-spread` | Detects redundant array and object spread which can safely be removed. | There's no similar TSLint rule. | ||
[`no-useless-spread](docs/no-useless-spread.md)` | :wrench: Disallows redundant array and object spread. | There's no similar TSLint rule. | ||
`parameter-properties` | Enforces or disallows the use of parameter properties. This rule is **not** enabled in `wotan:recommended`. | TSlint only has `no-parameter-properties` to disallow all parameter properties and has no autofixer. | ||
@@ -54,0 +54,0 @@ `prefer-const` | Prefer `const` for variables that are never reassigned. Use option `{destructuring: "any"}` if you want to see failures for each identifier of a destructuring, even if not all of them can be constants. The default is `{destructuring: "all"}`. | TSLint's `prefer-const` rule gives some false positives for merged declarations and variables used in before being declared which results in a compiler error after fixing. |
@@ -67,3 +67,3 @@ "use strict"; | ||
const checker = this.program.getTypeChecker(); | ||
const type = checker.getApparentType(checker.getTypeAtLocation(node)); | ||
let type; | ||
for (let i = 0; i < node.elements.length; ++i) { | ||
@@ -76,3 +76,3 @@ const element = node.elements[i]; | ||
continue; | ||
const symbol = type.getProperty(name); | ||
const symbol = (type || (type = checker.getApparentType(checker.getTypeAtLocation(node)))).getProperty(name); | ||
if (symbol === undefined || symbolMaybeUndefined(checker, symbol, node)) | ||
@@ -79,0 +79,0 @@ continue; |
Sorry, the diff of this file is not supported yet
356486
169