提交 dde71bc5 编写于 作者: A Allison Chou

Implemented fix, to-do: Fix tests

上级 a37e546a
......@@ -750,6 +750,24 @@ internal class FeaturesResources {
}
}
/// <summary>
/// Looks up a localized string similar to Awaited task returns {0}..
/// </summary>
internal static string Awaited_task_returns_0 {
get {
return ResourceManager.GetString("Awaited_task_returns_0", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Awaited task returns no value..
/// </summary>
internal static string Awaited_task_returns_no_value {
get {
return ResourceManager.GetString("Awaited_task_returns_no_value", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to can&apos;t not construct final tree.
/// </summary>
......
......@@ -700,6 +700,12 @@ Do you want to continue?</value>
<data name="no_value" xml:space="preserve">
<value>no value.</value>
</data>
<data name="Awaited_task_returns_0" xml:space="preserve">
<value>Awaited task returns {0}.</value>
</data>
<data name="Awaited_task_returns_no_value" xml:space="preserve">
<value>Awaited task returns no value.</value>
</data>
<data name="Note_colon_Tab_twice_to_insert_the_0_snippet" xml:space="preserve">
<value>Note: Tab twice to insert the '{0}' snippet.</value>
</data>
......
......@@ -110,19 +110,6 @@ protected abstract partial class AbstractSymbolDescriptionBuilder
protected abstract SymbolDisplayFormat MinimallyQualifiedFormatWithConstants { get; }
protected abstract SymbolDisplayFormat MinimallyQualifiedFormatWithConstantsAndModifiers { get; }
protected void AddPrefixTextForAwaitKeyword()
{
AddToGroup(SymbolDescriptionGroups.MainDescription,
PlainText(FeaturesResources.Awaited_task_returns),
Space());
}
protected void AddTextForSystemVoid()
{
AddToGroup(SymbolDescriptionGroups.MainDescription,
PlainText(FeaturesResources.no_value));
}
protected SemanticModel GetSemanticModel(SyntaxTree tree)
{
if (_semanticModel.SyntaxTree == tree)
......@@ -406,15 +393,42 @@ private async Task AddDescriptionForNamedTypeAsync(INamedTypeSymbol symbol)
var syntaxFactsService = Workspace.Services.GetLanguageServices(token.Language).GetService<ISyntaxFactsService>();
if (syntaxFactsService.IsAwaitKeyword(token))
{
AddPrefixTextForAwaitKeyword();
if (symbol.SpecialType == SpecialType.System_Void)
{
AddTextForSystemVoid();
AddToGroup(SymbolDescriptionGroups.MainDescription,
PlainText(FeaturesResources.Awaited_task_returns_no_value));
return;
}
AddAwaitSymbolDescription(symbol);
}
else
{
AddSymbolDescription(symbol);
}
}
if (!symbol.IsUnboundGenericType && !TypeArgumentsAndParametersAreSame(symbol))
{
var allTypeParameters = symbol.GetAllTypeParameters().ToList();
var allTypeArguments = symbol.GetAllTypeArguments().ToList();
AddTypeParameterMapPart(allTypeParameters, allTypeArguments);
}
}
private void AddAwaitSymbolDescription(INamedTypeSymbol symbol)
{
var symbolIndex = FeaturesResources.Awaited_task_returns_0.IndexOf("{0}");
AddToGroup(SymbolDescriptionGroups.MainDescription,
PlainText(FeaturesResources.Awaited_task_returns_0.Substring(0, symbolIndex)));
AddSymbolDescription(symbol);
AddToGroup(SymbolDescriptionGroups.MainDescription,
PlainText(FeaturesResources.Awaited_task_returns_0.Substring(symbolIndex + 3)));
}
private void AddSymbolDescription(INamedTypeSymbol symbol)
{
if (symbol.TypeKind == TypeKind.Delegate)
{
var style = s_descriptionStyle.WithMiscellaneousOptions(SymbolDisplayMiscellaneousOptions.UseSpecialTypes);
......@@ -426,14 +440,6 @@ private async Task AddDescriptionForNamedTypeAsync(INamedTypeSymbol symbol)
AddToGroup(SymbolDescriptionGroups.MainDescription,
ToDisplayParts(symbol.OriginalDefinition, s_descriptionStyle));
}
if (!symbol.IsUnboundGenericType && !TypeArgumentsAndParametersAreSame(symbol))
{
var allTypeParameters = symbol.GetAllTypeParameters().ToList();
var allTypeArguments = symbol.GetAllTypeArguments().ToList();
AddTypeParameterMapPart(allTypeParameters, allTypeArguments);
}
}
private bool TypeArgumentsAndParametersAreSame(INamedTypeSymbol symbol)
......
......@@ -82,6 +82,16 @@
<target state="translated">Vyhněte se v kódu nepoužitým parametrům. Pokud parametr nelze odebrat, změňte jeho název tak, aby začínal podtržítkem, za kterým volitelně následuje celé číslo, například _, _1, _2 atd. Tyto řetězce se považují za názvy speciálních symbolů pro vyřazení.</target>
<note />
</trans-unit>
<trans-unit id="Awaited_task_returns_0">
<source>Awaited task returns {0}.</source>
<target state="new">Awaited task returns {0}.</target>
<note />
</trans-unit>
<trans-unit id="Awaited_task_returns_no_value">
<source>Awaited task returns no value.</source>
<target state="new">Awaited task returns no value.</target>
<note />
</trans-unit>
<trans-unit id="CannotApplyChangesUnexpectedError">
<source>Cannot apply changes -- unexpected error: '{0}'</source>
<target state="translated">Změny se nedají použít – neočekávaná chyba: {0}</target>
......
......@@ -82,6 +82,16 @@
<target state="translated">Vermeiden Sie nicht verwendete Parameter in Ihrem Code. Wenn der Parameter nicht entfernt werden kann, ändern Sie dessen Namen so, dass er mit einem Unterstrich beginnt, dem optional eine Zahl angefügt wird. Beispiel: "_", "_1", "_2" usw. Diese werden als spezielle Symbolnamen für Ausschussparameter behandelt.</target>
<note />
</trans-unit>
<trans-unit id="Awaited_task_returns_0">
<source>Awaited task returns {0}.</source>
<target state="new">Awaited task returns {0}.</target>
<note />
</trans-unit>
<trans-unit id="Awaited_task_returns_no_value">
<source>Awaited task returns no value.</source>
<target state="new">Awaited task returns no value.</target>
<note />
</trans-unit>
<trans-unit id="CannotApplyChangesUnexpectedError">
<source>Cannot apply changes -- unexpected error: '{0}'</source>
<target state="translated">Änderungen können nicht angewendet werden -- unerwarteter Fehler: "{0}"</target>
......
......@@ -82,6 +82,16 @@
<target state="translated">Evite los parámetros sin usar en el código. Si el parámetro no se puede quitar, cámbielo de nombre para que empiece por un carácter de subrayado, seguido opcionalmente por un entero, como "_", "_1", "_2", etc. Estos se tratan como nombres de símbolos de descarte especiales.</target>
<note />
</trans-unit>
<trans-unit id="Awaited_task_returns_0">
<source>Awaited task returns {0}.</source>
<target state="new">Awaited task returns {0}.</target>
<note />
</trans-unit>
<trans-unit id="Awaited_task_returns_no_value">
<source>Awaited task returns no value.</source>
<target state="new">Awaited task returns no value.</target>
<note />
</trans-unit>
<trans-unit id="CannotApplyChangesUnexpectedError">
<source>Cannot apply changes -- unexpected error: '{0}'</source>
<target state="translated">No se pueden aplicar los cambios. Error inesperado: "{0}"</target>
......
......@@ -82,6 +82,16 @@
<target state="translated">Évitez les paramètres inutilisés dans votre code. Évitez les paramètres inutilisés dans votre code. Si vous ne pouvez pas supprimer un paramètre, changez son nom en le faisant commencer par un trait de soulignement éventuellement suivi d'un entier, par exemple '_', '_1', '_2', etc. Ces types d'élément sont traités en tant que noms de symboles discard spéciaux.</target>
<note />
</trans-unit>
<trans-unit id="Awaited_task_returns_0">
<source>Awaited task returns {0}.</source>
<target state="new">Awaited task returns {0}.</target>
<note />
</trans-unit>
<trans-unit id="Awaited_task_returns_no_value">
<source>Awaited task returns no value.</source>
<target state="new">Awaited task returns no value.</target>
<note />
</trans-unit>
<trans-unit id="CannotApplyChangesUnexpectedError">
<source>Cannot apply changes -- unexpected error: '{0}'</source>
<target state="translated">Impossible d'appliquer les changements -- Erreur inattendue : '{0}'</target>
......
......@@ -82,6 +82,16 @@
<target state="translated">Evitare parametri inutilizzati nel codice. Se non è possibile rimuovere il parametro, modificarne il nome in modo che inizi con un carattere di sottolineatura e, facoltativamente, sia seguito da un numero intero, ad esempio '_', '_1', '_2' e così via. Questi vengono considerati come nomi di simboli speciali di rimozione.</target>
<note />
</trans-unit>
<trans-unit id="Awaited_task_returns_0">
<source>Awaited task returns {0}.</source>
<target state="new">Awaited task returns {0}.</target>
<note />
</trans-unit>
<trans-unit id="Awaited_task_returns_no_value">
<source>Awaited task returns no value.</source>
<target state="new">Awaited task returns no value.</target>
<note />
</trans-unit>
<trans-unit id="CannotApplyChangesUnexpectedError">
<source>Cannot apply changes -- unexpected error: '{0}'</source>
<target state="translated">Non è possibile applicare le modifiche. Errore imprevisto: '{0}'</target>
......
......@@ -82,6 +82,16 @@
<target state="translated">コードに未使用のパラメーターを指定しないでください。パラメーターを削除できない場合は、パラメーターの名前をアンダースコアの後にオプションで整数が続く名前 ('_'、'_1'、'_2' など) に変更してください。これらは、特別なディスカード シンボル名として扱われます。</target>
<note />
</trans-unit>
<trans-unit id="Awaited_task_returns_0">
<source>Awaited task returns {0}.</source>
<target state="new">Awaited task returns {0}.</target>
<note />
</trans-unit>
<trans-unit id="Awaited_task_returns_no_value">
<source>Awaited task returns no value.</source>
<target state="new">Awaited task returns no value.</target>
<note />
</trans-unit>
<trans-unit id="CannotApplyChangesUnexpectedError">
<source>Cannot apply changes -- unexpected error: '{0}'</source>
<target state="translated">変更を適用できません。予期しないエラー: '{0}'</target>
......
......@@ -82,6 +82,16 @@
<target state="translated">코드에 사용되지 않는 매개 변수를 사용하지 않도록 합니다. 매개 변수를 제거할 수 없는 경우 이름을 변경하여 밑줄로 시작하고 필요에 따라 뒤에 정수가 있도록 합니다(예: '_', '_1', '_2' 등). 해당 이름은 특수 무시 기호 이름으로 처리됩니다.</target>
<note />
</trans-unit>
<trans-unit id="Awaited_task_returns_0">
<source>Awaited task returns {0}.</source>
<target state="new">Awaited task returns {0}.</target>
<note />
</trans-unit>
<trans-unit id="Awaited_task_returns_no_value">
<source>Awaited task returns no value.</source>
<target state="new">Awaited task returns no value.</target>
<note />
</trans-unit>
<trans-unit id="CannotApplyChangesUnexpectedError">
<source>Cannot apply changes -- unexpected error: '{0}'</source>
<target state="translated">변경 내용을 적용할 수 없음 -- 예기치 않은 오류: '{0}'</target>
......
......@@ -82,6 +82,16 @@
<target state="translated">Unikaj nieużywanych parametrów w kodzie. Jeśli nie można usunąć parametru, zmień jego nazwę, tak aby rozpoczynała się od znaku podkreślenia, a opcjonalnie następowała po niej liczba całkowita, na przykład „_”, „_1”, „_2” itp. Są one traktowane jako specjalne nazwy symboli odrzucenia.</target>
<note />
</trans-unit>
<trans-unit id="Awaited_task_returns_0">
<source>Awaited task returns {0}.</source>
<target state="new">Awaited task returns {0}.</target>
<note />
</trans-unit>
<trans-unit id="Awaited_task_returns_no_value">
<source>Awaited task returns no value.</source>
<target state="new">Awaited task returns no value.</target>
<note />
</trans-unit>
<trans-unit id="CannotApplyChangesUnexpectedError">
<source>Cannot apply changes -- unexpected error: '{0}'</source>
<target state="translated">Nie można zastosować zmian — nieoczekiwany błąd: „{0}”</target>
......
......@@ -82,6 +82,16 @@
<target state="translated">Evite parâmetros não usados no seu código. Se o parâmetro não puder ser removido, altere o nome para que ele comece com um sublinhado e seja seguido opcionalmente por um inteiro, como '_', '_1', '_2' etc. Esses nomes são tratados como nomes de símbolo de descarte especiais.</target>
<note />
</trans-unit>
<trans-unit id="Awaited_task_returns_0">
<source>Awaited task returns {0}.</source>
<target state="new">Awaited task returns {0}.</target>
<note />
</trans-unit>
<trans-unit id="Awaited_task_returns_no_value">
<source>Awaited task returns no value.</source>
<target state="new">Awaited task returns no value.</target>
<note />
</trans-unit>
<trans-unit id="CannotApplyChangesUnexpectedError">
<source>Cannot apply changes -- unexpected error: '{0}'</source>
<target state="translated">Não é possível aplicar as alterações – erro inesperado: '{0}'</target>
......
......@@ -82,6 +82,16 @@
<target state="translated">Избегайте неиспользуемых параметров в коде. Если удалить параметр невозможно, измените его имя так, чтобы оно начиналось с символа подчеркивания, за которым при необходимости следует целое число, например, "_", "_1", "_2" и т. д. Эти имена считаются особыми пустыми именами символов.</target>
<note />
</trans-unit>
<trans-unit id="Awaited_task_returns_0">
<source>Awaited task returns {0}.</source>
<target state="new">Awaited task returns {0}.</target>
<note />
</trans-unit>
<trans-unit id="Awaited_task_returns_no_value">
<source>Awaited task returns no value.</source>
<target state="new">Awaited task returns no value.</target>
<note />
</trans-unit>
<trans-unit id="CannotApplyChangesUnexpectedError">
<source>Cannot apply changes -- unexpected error: '{0}'</source>
<target state="translated">Не удается применить изменения, так как возникла непредвиденная ошибка: "{0}"</target>
......
......@@ -82,6 +82,16 @@
<target state="translated">Kodunuzda, kullanılmayan parametrelerden kaçının. Parametre kaldırılamıyorsa adını, bir alt çizgiyle başlayacak ve ardından isteğe bağlı olarak bir tamsayı gelecek ('_', '_1', '_2' gibi) şekilde değiştirin. Bu değerler özel atılabilir sembol adı olarak işlenir.</target>
<note />
</trans-unit>
<trans-unit id="Awaited_task_returns_0">
<source>Awaited task returns {0}.</source>
<target state="new">Awaited task returns {0}.</target>
<note />
</trans-unit>
<trans-unit id="Awaited_task_returns_no_value">
<source>Awaited task returns no value.</source>
<target state="new">Awaited task returns no value.</target>
<note />
</trans-unit>
<trans-unit id="CannotApplyChangesUnexpectedError">
<source>Cannot apply changes -- unexpected error: '{0}'</source>
<target state="translated">Değişiklikler uygulanamıyor - beklenmeyen hata: '{0}'</target>
......
......@@ -82,6 +82,16 @@
<target state="translated">请避免在代码中使用未使用的参数。如果无法删除该参数,请更改其名称,使其以下划线开头,也可在下划线后面跟一个整数(如 "_"、"_1"、"_2" 等)。这些被视为特殊丢弃符号名。</target>
<note />
</trans-unit>
<trans-unit id="Awaited_task_returns_0">
<source>Awaited task returns {0}.</source>
<target state="new">Awaited task returns {0}.</target>
<note />
</trans-unit>
<trans-unit id="Awaited_task_returns_no_value">
<source>Awaited task returns no value.</source>
<target state="new">Awaited task returns no value.</target>
<note />
</trans-unit>
<trans-unit id="CannotApplyChangesUnexpectedError">
<source>Cannot apply changes -- unexpected error: '{0}'</source>
<target state="translated">无法应用更改 - 意外错误:“{0}”</target>
......
......@@ -82,6 +82,16 @@
<target state="translated">請避免在您的程式碼中使用參數。如果無法移除參數,請變更其名稱,使其以底線開頭,並可選擇在後面接著整數,例如 '_'、'_1'、'_2' 等。這些會視為特殊的捨棄符號名稱。</target>
<note />
</trans-unit>
<trans-unit id="Awaited_task_returns_0">
<source>Awaited task returns {0}.</source>
<target state="new">Awaited task returns {0}.</target>
<note />
</trans-unit>
<trans-unit id="Awaited_task_returns_no_value">
<source>Awaited task returns no value.</source>
<target state="new">Awaited task returns no value.</target>
<note />
</trans-unit>
<trans-unit id="CannotApplyChangesUnexpectedError">
<source>Cannot apply changes -- unexpected error: '{0}'</source>
<target state="translated">無法套用變更 -- 未預期的錯誤: '{0}'</target>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册