// Repro from #15310

interface Foo {
    foo: string;
}
interface Bar {
    bar: string;
}

function isFoo1(object: {}): object is Foo {
    return 'foo' in object;
}

function isFoo2(this: void, object: {}): object is Foo {
    return 'foo' in object;
}

declare let test: Foo | Bar;

if (isFoo1(test)) {
    test.foo = 'hi';
}

if (isFoo2(test)) {
    test.foo = 'hi';
}
