It is possible to use `await` on values which are not `Promise`s, but it's useless and misleading. The point of `await` is to pause execution until the `Promise`'s asynchronous code has run to completion. With anything other than a `Promise`, there's nothing to wait for.

This rule raises an issue when an `await`ed value is guaranteed not to be a `Promise`.

## Noncompliant Code Example

    let x = 42;
    await x; // Noncompliant

## Compliant Solution

    let x = new Promise(resolve => resolve(42));
    await x;

    let y = p ? 42 : new Promise(resolve => resolve(42));
    await y;