From fddc2253d7e22d19925698f3b6abfd69530cc620 Mon Sep 17 00:00:00 2001 From: ChrisBubernak Date: Tue, 30 Dec 2014 10:48:44 -0800 Subject: [PATCH] fixed checker and added a test case --- src/compiler/checker.ts | 11 ++++++++++- .../cases/compiler/differentTypesWithSameName.ts | 16 ++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 tests/cases/compiler/differentTypesWithSameName.ts diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index f8c4caa9630..d835a444d3a 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -3508,7 +3508,16 @@ module ts { } if (reportErrors) { headMessage = headMessage || Diagnostics.Type_0_is_not_assignable_to_type_1; - reportError(headMessage, typeToString(source), typeToString(target)); + var sourceType = typeToString(source); + var targetType = typeToString(target); + if (sourceType !== targetType) { + reportError(headMessage, sourceType, targetType); + } else { + // If the types are incompatible but have the same name, use the qualified names to give + // a more insightful error message + reportError(headMessage, getFullyQualifiedName(source.symbol), getFullyQualifiedName(target.symbol)); + } + //reportError(headMessage, typeToString(source), typeToString(target)); } return Ternary.False; } diff --git a/tests/cases/compiler/differentTypesWithSameName.ts b/tests/cases/compiler/differentTypesWithSameName.ts new file mode 100644 index 00000000000..2b40e23c642 --- /dev/null +++ b/tests/cases/compiler/differentTypesWithSameName.ts @@ -0,0 +1,16 @@ +module m { + export class variable{ + s: string; + } + export function doSomething(v: m.variable) { + + } +} + +class variable { + t: number; +} + + +var v: variable = new variable(); +m.doSomething(v); \ No newline at end of file