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

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

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

    export          class classWithOptional<T> { constructor(public one?: T) {} }                       var x3 = new classWithOptional<number>();;
>classWithOptional : Symbol(classWithOptional, Decl(assignmentCompatability9.ts, 4, 18))
>T : Symbol(T, Decl(assignmentCompatability9.ts, 5, 44))
>one : Symbol(one, Decl(assignmentCompatability9.ts, 5, 61))
>T : Symbol(T, Decl(assignmentCompatability9.ts, 5, 44))
>x3 : Symbol(x3, Decl(assignmentCompatability9.ts, 5, 107))
>classWithOptional : Symbol(classWithOptional, Decl(assignmentCompatability9.ts, 4, 18))

    export var __val__x3 = x3;
>__val__x3 : Symbol(__val__x3, Decl(assignmentCompatability9.ts, 6, 14))
>x3 : Symbol(x3, Decl(assignmentCompatability9.ts, 5, 107))
}
__test2__.__val__x3 = __test1__.__val__obj4
>__test2__.__val__x3 : Symbol(__test2__.__val__x3, Decl(assignmentCompatability9.ts, 6, 14))
>__test2__ : Symbol(__test2__, Decl(assignmentCompatability9.ts, 3, 1))
>__val__x3 : Symbol(__test2__.__val__x3, Decl(assignmentCompatability9.ts, 6, 14))
>__test1__.__val__obj4 : Symbol(__test1__.__val__obj4, Decl(assignmentCompatability9.ts, 2, 14))
>__test1__ : Symbol(__test1__, Decl(assignmentCompatability9.ts, 0, 0))
>__val__obj4 : Symbol(__test1__.__val__obj4, Decl(assignmentCompatability9.ts, 2, 14))

