//// [tests/cases/compiler/accessors_spec_section-4.5_inference.ts] ////

=== accessors_spec_section-4.5_inference.ts ===
class A { }
>A : A
>  : ^

class B extends A { }
>B : B
>  : ^
>A : A
>  : ^

class LanguageSpec_section_4_5_inference {
>LanguageSpec_section_4_5_inference : LanguageSpec_section_4_5_inference
>                                   : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

    public set InferredGetterFromSetterAnnotation(a: A) { }
>InferredGetterFromSetterAnnotation : A
>                                   : ^
>a : A
>  : ^

    public get InferredGetterFromSetterAnnotation() { return new B(); }
>InferredGetterFromSetterAnnotation : A
>                                   : ^
>new B() : B
>        : ^
>B : typeof B
>  : ^^^^^^^^

    public get InferredGetterFromSetterAnnotation_GetterFirst() { return new B(); }
>InferredGetterFromSetterAnnotation_GetterFirst : A
>                                               : ^
>new B() : B
>        : ^
>B : typeof B
>  : ^^^^^^^^

    public set InferredGetterFromSetterAnnotation_GetterFirst(a: A) { }
>InferredGetterFromSetterAnnotation_GetterFirst : A
>                                               : ^
>a : A
>  : ^
    

    public get InferredFromGetter() { return new B(); }
>InferredFromGetter : B
>                   : ^
>new B() : B
>        : ^
>B : typeof B
>  : ^^^^^^^^

    public set InferredFromGetter(a) { }
>InferredFromGetter : B
>                   : ^
>a : B
>  : ^

    public set InferredFromGetter_SetterFirst(a) { }
>InferredFromGetter_SetterFirst : B
>                               : ^
>a : B
>  : ^

    public get InferredFromGetter_SetterFirst() { return new B(); }
>InferredFromGetter_SetterFirst : B
>                               : ^
>new B() : B
>        : ^
>B : typeof B
>  : ^^^^^^^^

    public set InferredSetterFromGetterAnnotation(a) { }
>InferredSetterFromGetterAnnotation : A
>                                   : ^
>a : A
>  : ^

    public get InferredSetterFromGetterAnnotation() : A { return new B(); }
>InferredSetterFromGetterAnnotation : A
>                                   : ^
>new B() : B
>        : ^
>B : typeof B
>  : ^^^^^^^^

    public get InferredSetterFromGetterAnnotation_GetterFirst() : A { return new B(); }
>InferredSetterFromGetterAnnotation_GetterFirst : A
>                                               : ^
>new B() : B
>        : ^
>B : typeof B
>  : ^^^^^^^^

    public set InferredSetterFromGetterAnnotation_GetterFirst(a) { }
>InferredSetterFromGetterAnnotation_GetterFirst : A
>                                               : ^
>a : A
>  : ^
}
