=== tests/cases/compiler/genericReversingTypeParameters2.ts === class BiMap { >BiMap : Symbol(BiMap, Decl(genericReversingTypeParameters2.ts, 0, 0)) >K : Symbol(K, Decl(genericReversingTypeParameters2.ts, 0, 12)) >V : Symbol(V, Decl(genericReversingTypeParameters2.ts, 0, 14)) private inverseBiMap: BiMap; >inverseBiMap : Symbol(inverseBiMap, Decl(genericReversingTypeParameters2.ts, 0, 19)) >BiMap : Symbol(BiMap, Decl(genericReversingTypeParameters2.ts, 0, 0)) >V : Symbol(V, Decl(genericReversingTypeParameters2.ts, 0, 14)) >K : Symbol(K, Decl(genericReversingTypeParameters2.ts, 0, 12)) public get(key: K): V { return null; } >get : Symbol(get, Decl(genericReversingTypeParameters2.ts, 1, 38)) >key : Symbol(key, Decl(genericReversingTypeParameters2.ts, 2, 15)) >K : Symbol(K, Decl(genericReversingTypeParameters2.ts, 0, 12)) >V : Symbol(V, Decl(genericReversingTypeParameters2.ts, 0, 14)) public inverse(): BiMap { return null; } >inverse : Symbol(inverse, Decl(genericReversingTypeParameters2.ts, 2, 42)) >BiMap : Symbol(BiMap, Decl(genericReversingTypeParameters2.ts, 0, 0)) >V : Symbol(V, Decl(genericReversingTypeParameters2.ts, 0, 14)) >K : Symbol(K, Decl(genericReversingTypeParameters2.ts, 0, 12)) } var b = new BiMap(); >b : Symbol(b, Decl(genericReversingTypeParameters2.ts, 6, 3)) >BiMap : Symbol(BiMap, Decl(genericReversingTypeParameters2.ts, 0, 0)) var i = b.inverse(); // used to get the type wrong here. >i : Symbol(i, Decl(genericReversingTypeParameters2.ts, 7, 3)) >b.inverse : Symbol(BiMap.inverse, Decl(genericReversingTypeParameters2.ts, 2, 42)) >b : Symbol(b, Decl(genericReversingTypeParameters2.ts, 6, 3)) >inverse : Symbol(BiMap.inverse, Decl(genericReversingTypeParameters2.ts, 2, 42)) var r2b = i.get(1); >r2b : Symbol(r2b, Decl(genericReversingTypeParameters2.ts, 8, 3)) >i.get : Symbol(BiMap.get, Decl(genericReversingTypeParameters2.ts, 1, 38)) >i : Symbol(i, Decl(genericReversingTypeParameters2.ts, 7, 3)) >get : Symbol(BiMap.get, Decl(genericReversingTypeParameters2.ts, 1, 38))