mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-06-11 10:46:28 -05:00
Show error about entity name visibility on entity name resulting in the error
This commit is contained in:
@@ -1001,28 +1001,9 @@ module ts {
|
||||
var symbol = resolveName(enclosingDeclaration, (<Identifier>firstIdentifier).text, meaning, /*nodeNotFoundErrorMessage*/ undefined, /*nameArg*/ undefined);
|
||||
|
||||
// Verify if the symbol is accessible
|
||||
var isVisible = hasVisibleDeclarations(symbol);
|
||||
if (isVisible) {
|
||||
return isVisible;
|
||||
}
|
||||
|
||||
// Not visible populate error info
|
||||
var errorSymbolName: string;
|
||||
var errorModuleName: string;
|
||||
// TODO(shkamat) For now lets just do this for alias declarations, but in all cases only first identifier text should be enough
|
||||
if (entityName.parent.kind === SyntaxKind.ImportDeclaration) {
|
||||
errorSymbolName = getTextOfNode(firstIdentifier);
|
||||
}
|
||||
else {
|
||||
errorSymbolName = getTextOfNode(entityName);
|
||||
errorModuleName = entityName.kind === SyntaxKind.QualifiedName ?
|
||||
getTextOfNode(firstIdentifier) :
|
||||
undefined;
|
||||
}
|
||||
return <SymbolAccessiblityResult>{
|
||||
return hasVisibleDeclarations(symbol) || <SymbolAccessiblityResult>{
|
||||
accessibility: SymbolAccessibility.NotAccessible,
|
||||
errorSymbolName: errorSymbolName,
|
||||
errorModuleName: errorModuleName
|
||||
errorSymbolName: getTextOfNode(firstIdentifier),
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -2562,7 +2562,7 @@ module ts {
|
||||
setWriter(oldWriter);
|
||||
}
|
||||
|
||||
function handleSymbolAccessibilityError(symbolAccesibilityResult: SymbolAccessiblityResult) {
|
||||
function handleSymbolAccessibilityError(symbolAccesibilityResult: SymbolAccessiblityResult, errorNode?: Node) {
|
||||
if (symbolAccesibilityResult.accessibility === SymbolAccessibility.Accessible) {
|
||||
// write the aliases
|
||||
if (symbolAccesibilityResult && symbolAccesibilityResult.aliasesToMakeVisible) {
|
||||
@@ -2575,14 +2575,14 @@ module ts {
|
||||
var errorInfo = writer.getSymbolAccessibilityDiagnostic(symbolAccesibilityResult);
|
||||
if (errorInfo) {
|
||||
if (errorInfo.typeName) {
|
||||
diagnostics.push(createDiagnosticForNode(errorInfo.errorNode,
|
||||
diagnostics.push(createDiagnosticForNode(errorNode || errorInfo.errorNode,
|
||||
errorInfo.diagnosticMessage,
|
||||
getSourceTextOfLocalNode(errorInfo.typeName),
|
||||
symbolAccesibilityResult.errorSymbolName,
|
||||
symbolAccesibilityResult.errorModuleName));
|
||||
}
|
||||
else {
|
||||
diagnostics.push(createDiagnosticForNode(errorInfo.errorNode,
|
||||
diagnostics.push(createDiagnosticForNode(errorNode || errorInfo.errorNode,
|
||||
errorInfo.diagnosticMessage,
|
||||
symbolAccesibilityResult.errorSymbolName,
|
||||
symbolAccesibilityResult.errorModuleName));
|
||||
@@ -2690,7 +2690,7 @@ module ts {
|
||||
// Aliases can be written asynchronously so use correct enclosing declaration
|
||||
entityName.parent.kind === SyntaxKind.ImportDeclaration ? entityName.parent : enclosingDeclaration);
|
||||
|
||||
handleSymbolAccessibilityError(visibilityResult);
|
||||
handleSymbolAccessibilityError(visibilityResult, entityName);
|
||||
writeEntityName(entityName);
|
||||
|
||||
function writeEntityName(entityName: EntityName) {
|
||||
|
||||
Reference in New Issue
Block a user