=== tests/cases/compiler/assignmentCompatability41.ts ===
module __test1__ {
>__test1__ : Symbol(__test1__, Decl(assignmentCompatability41.ts, 0, 0))

    export interface interfaceWithPublicAndOptional<T,U> { one: T; two?: U; };  var obj4: interfaceWithPublicAndOptional<number,string> = { one: 1 };;
>interfaceWithPublicAndOptional : Symbol(interfaceWithPublicAndOptional, Decl(assignmentCompatability41.ts, 0, 18))
>T : Symbol(T, Decl(assignmentCompatability41.ts, 1, 52))
>U : Symbol(U, Decl(assignmentCompatability41.ts, 1, 54))
>one : Symbol(interfaceWithPublicAndOptional.one, Decl(assignmentCompatability41.ts, 1, 58))
>T : Symbol(T, Decl(assignmentCompatability41.ts, 1, 52))
>two : Symbol(interfaceWithPublicAndOptional.two, Decl(assignmentCompatability41.ts, 1, 66))
>U : Symbol(U, Decl(assignmentCompatability41.ts, 1, 54))
>obj4 : Symbol(obj4, Decl(assignmentCompatability41.ts, 1, 83))
>interfaceWithPublicAndOptional : Symbol(interfaceWithPublicAndOptional, Decl(assignmentCompatability41.ts, 0, 18))
>one : Symbol(one, Decl(assignmentCompatability41.ts, 1, 139))

    export var __val__obj4 = obj4;
>__val__obj4 : Symbol(__val__obj4, Decl(assignmentCompatability41.ts, 2, 14))
>obj4 : Symbol(obj4, Decl(assignmentCompatability41.ts, 1, 83))
}
module __test2__ {
>__test2__ : Symbol(__test2__, Decl(assignmentCompatability41.ts, 3, 1))

    export        class classWithTwoPrivate<T,U> { constructor(private one: T, private two: U) {} }  var x6 = new classWithTwoPrivate(1, "a");;
>classWithTwoPrivate : Symbol(classWithTwoPrivate, Decl(assignmentCompatability41.ts, 4, 18))
>T : Symbol(T, Decl(assignmentCompatability41.ts, 5, 44))
>U : Symbol(U, Decl(assignmentCompatability41.ts, 5, 46))
>one : Symbol(classWithTwoPrivate.one, Decl(assignmentCompatability41.ts, 5, 63))
>T : Symbol(T, Decl(assignmentCompatability41.ts, 5, 44))
>two : Symbol(classWithTwoPrivate.two, Decl(assignmentCompatability41.ts, 5, 78))
>U : Symbol(U, Decl(assignmentCompatability41.ts, 5, 46))
>x6 : Symbol(x6, Decl(assignmentCompatability41.ts, 5, 104))
>classWithTwoPrivate : Symbol(classWithTwoPrivate, Decl(assignmentCompatability41.ts, 4, 18))

    export var __val__x6 = x6;
>__val__x6 : Symbol(__val__x6, Decl(assignmentCompatability41.ts, 6, 14))
>x6 : Symbol(x6, Decl(assignmentCompatability41.ts, 5, 104))
}
__test2__.__val__x6 = __test1__.__val__obj4
>__test2__.__val__x6 : Symbol(__test2__.__val__x6, Decl(assignmentCompatability41.ts, 6, 14))
>__test2__ : Symbol(__test2__, Decl(assignmentCompatability41.ts, 3, 1))
>__val__x6 : Symbol(__test2__.__val__x6, Decl(assignmentCompatability41.ts, 6, 14))
>__test1__.__val__obj4 : Symbol(__test1__.__val__obj4, Decl(assignmentCompatability41.ts, 2, 14))
>__test1__ : Symbol(__test1__, Decl(assignmentCompatability41.ts, 0, 0))
>__val__obj4 : Symbol(__test1__.__val__obj4, Decl(assignmentCompatability41.ts, 2, 14))

