# What's New in Pylint 2.2

Release

  2.2

Date

  2018-11-25

## Summary -- Release highlights

## New checkers

- String checker now reports format string type mismatches.

- `duplicate-string-formatting-argument` was added for detecting duplicate string formatting arguments that should be passed instead as named arguments.

- `logging-format-style` is a new option for the logging checker for usage of str.format() style format strings in calls to loggers.

  It accepts two options: `--logging-format-style=old` for using % style formatting, which is the assumed default, and `--logging-format-style=new` for using {} style formatting.

- `implicit-str-concat-in-sequence` detects string concatenation inside lists, sets & tuples.

  Example of code that would generate such warning:

      woops = ('a', 'b' 'c')

## Other Changes

- `try-except-raise` checker now handles multilevel inheritance hirerachy for exceptions correctly.

  Close #2484

- Ignore import x.y.z as z cases for checker `useless-import-alias`.

- `unnecessary-pass` is now also emitted when a function or class contains only docstring and pass statement, in which case, docstring is enough for empty definition.

- Fix false positive `undefined-variable` and `used-before-assignment` with nonlocal keyword usage.

- Fix exceptions being raised when one of the params is not a ClassDef for `checkers.utils.is_subclass_of()`.

- `pylint` now picks the latest value from the inferred values of the exception that gets raised, when looking for `raising-non-exception`. This helps when reusing a variable name for multiple types, since `pylint` was picking just the first inferred value, leading to spurious false positives.

  Close #2431

- `pylint` used to emit a `not-an-iterable` error when looking at coroutines built with `asyncio.coroutine`. This is no longer the case as we handle coroutines explicitly.

  Close #996

- `pylint` used to emit an `unused-variable` error if unused import was found in the function. Now instead of `unused-variable`, `unused-import` is emitted.

  Close #2421