Skip to content

Commit 3d2a15c

Browse files
committed
#1327: во славу сонара.
1 parent 83ab2e0 commit 3d2a15c

File tree

2 files changed

+28
-33
lines changed

2 files changed

+28
-33
lines changed

src/OneScript.StandardLibrary/TypeDescriptions/TypeDescription.cs

Lines changed: 27 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,6 @@ public class TypeDescription : AutoContext<TypeDescription>
2323
{
2424
private readonly List<BslTypeValue> _types = new List<BslTypeValue>();
2525

26-
private const string TYPE_BINARYDATA_NAME = "ДвоичныеДанные";
27-
2826
public TypeDescription(IEnumerable<BslTypeValue> types = null)
2927
{
3028
if (types != null)
@@ -196,39 +194,36 @@ public static TypeDescription Constructor(
196194
var qualifiers = new[] { null, p2, p3, p4, p5, p6, p7 };
197195

198196
var rawSource = source?.GetRawValue();
199-
if (rawSource == null || rawSource.SystemType == BasicTypes.Undefined)
197+
if (rawSource != null && rawSource.SystemType != BasicTypes.Undefined)
200198
{
201-
// пустой первый параметр - нет объекта-основания
202-
// добавляемые/вычитаемые типы не допускаются, квалификаторы игнорируются
199+
if (rawSource is TypeDescription typeDesc)
200+
{
201+
// Если 1 парарметр - ОписаниеТипов, то 2 - добавляемые типы, 3 - убираемые типы,
202+
builder.SourceDescription(typeDesc);
203203

204-
// квалификакторы передаются только для контроля типов
205-
}
206-
else
207-
if (rawSource is TypeDescription typeDesc)
208-
{
209-
// Если 1 парарметр - ОписаниеТипов, то 2 - добавляемые типы, 3 - убираемые типы,
210-
builder.SourceDescription(typeDesc);
211-
212-
var typesToAdd = CheckAndParseTypeList(context.TypeManager, p2, 2);
213-
var typesToRemove = CheckAndParseTypeList(context.TypeManager, p3, 3);
214-
215-
builder.RemoveTypes(typesToRemove);
216-
builder.AddTypes(typesToAdd);
217-
218-
qualifiers[1] = null; // эти параметры не квалификаторы
219-
qualifiers[2] = null; // эти параметры не квалификаторы
204+
var typesToAdd = CheckAndParseTypeList(context.TypeManager, p2, 2);
205+
var typesToRemove = CheckAndParseTypeList(context.TypeManager, p3, 3);
220206

221-
}
222-
else
223-
if (rawSource.SystemType == BasicTypes.String || rawSource is ArrayImpl)
224-
{
225-
// Если 1 парарметр - Массив или строка, то это набор конкретных типов
226-
// остальные параметры (2 и далее) - клвалификаторы в произвольном порядке
227-
var typesList = CheckAndParseTypeList(context.TypeManager, rawSource, 1);
228-
builder.AddTypes(typesList);
229-
} else
230-
throw RuntimeException.InvalidArgumentValue();
231-
207+
builder.RemoveTypes(typesToRemove);
208+
builder.AddTypes(typesToAdd);
209+
210+
qualifiers[1] = null; // эти параметры не квалификаторы
211+
qualifiers[2] = null; // эти параметры не квалификаторы
212+
}
213+
else if (rawSource.SystemType == BasicTypes.String || rawSource is ArrayImpl)
214+
{
215+
// Если 1 парарметр - Массив или строка, то это набор конкретных типов
216+
// остальные параметры (2 и далее) - клвалификаторы в произвольном порядке
217+
var typesList = CheckAndParseTypeList(context.TypeManager, rawSource, 1);
218+
builder.AddTypes(typesList);
219+
}
220+
else
221+
throw RuntimeException.InvalidArgumentValue();
222+
} /* else
223+
пустой первый параметр - нет объекта-основания
224+
добавляемые/вычитаемые типы не допускаются, квалификаторы игнорируются
225+
квалификакторы передаются только для контроля типов
226+
*/
232227
CheckAndAddQualifiers(builder, qualifiers);
233228
return builder.Build();
234229
}

src/OneScript.StandardLibrary/TypeDescriptions/TypeDescriptionBuilder.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ This Source Code Form is subject to the terms of the
1212

1313
namespace OneScript.StandardLibrary.TypeDescriptions
1414
{
15-
internal partial class TypeDescriptionBuilder
15+
internal class TypeDescriptionBuilder
1616
{
1717
private NumberQualifiers _numberQualifiers;
1818
private StringQualifiers _stringQualifiers;

0 commit comments

Comments
 (0)