fix #1892
This commit is contained in:
parent
9d391b246a
commit
d7cbac142d
12
TestSuite/errors/err0314.pas
Normal file
12
TestSuite/errors/err0314.pas
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
type
|
||||
e1 = (
|
||||
ef1 = 2,
|
||||
ef2 = 4,
|
||||
ef3 = 8
|
||||
);
|
||||
|
||||
begin
|
||||
var a: array[e1] of byte;
|
||||
a[ef2] := 4;
|
||||
readln;
|
||||
end.
|
||||
|
|
@ -14071,6 +14071,24 @@ namespace PascalABCCompiler.TreeConverter
|
|||
{
|
||||
AddError(new OrdinalTypeExpected(get_location(td)));
|
||||
}
|
||||
if (tn.IsEnum && tn is common_type_node)
|
||||
{
|
||||
common_type_node enum_ctn = tn as common_type_node;
|
||||
int c = 0;
|
||||
for (int i = 0; i < enum_ctn.const_defs.Count; i++)
|
||||
{
|
||||
class_constant_definition ccdn = enum_ctn.const_defs[i];
|
||||
if (ccdn.constant_value != null)
|
||||
{
|
||||
int nextc = Convert.ToInt32(ccdn.constant_value.value);
|
||||
if (nextc - c != 1 && i != 0)
|
||||
AddError(get_location(td), "ENUM_MUST_HAVE_SEQUENCED_VALUES");
|
||||
else if (nextc != 0 && i == 0)
|
||||
AddError(get_location(td), "ENUM_MUST_HAVE_SEQUENCED_VALUES");
|
||||
c = nextc;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (tn.type_special_kind == SemanticTree.type_special_kind.diap_type)
|
||||
{
|
||||
if (tn.base_type == SystemLibrary.SystemLibrary.uint_type || tn.base_type == SystemLibrary.SystemLibrary.int64_type ||
|
||||
|
|
|
|||
|
|
@ -161,6 +161,7 @@ CANNOT_GET_POINTER_TO_DISPOSE=Cannot get a pointer to intrinsic procedure Dispos
|
|||
USING_{0}_NOT_ALLOWED_IN_THIS_CONTEXT=Using of {0} is not allowed in this context
|
||||
OPERATORS_IN_INTERFACES_NOT_ALLOWED=Interfaces can not contain operators
|
||||
STATIC_CLASS_CAN_NOT_BE_USED_AS_PARENT_SPECIFICATOR=Static classes can not be used as generic constraints
|
||||
ENUM_MUST_HAVE_SEQUENCED_VALUES=Enum must have sequenced values
|
||||
%PREFIX%=COMPILATIONERROR_
|
||||
UNIT_MODULE_EXPECTED_LIBRARY_FOUND=Unit expected, library found
|
||||
ASSEMBLY_{0}_READING_ERROR=Error by reading assembly '{0}'
|
||||
|
|
|
|||
|
|
@ -156,6 +156,7 @@ CANNOT_GET_POINTER_TO_DISPOSE=Нельзя получить указатель
|
|||
USING_{0}_NOT_ALLOWED_IN_THIS_CONTEXT=Использование {0} недопустимо в данном контексте
|
||||
OPERATORS_IN_INTERFACES_NOT_ALLOWED=Интерфейсы не могут содержать операторы
|
||||
STATIC_CLASS_CAN_NOT_BE_USED_AS_PARENT_SPECIFICATOR=Нельзя использовать статические классы в качестве ограничений
|
||||
ENUM_MUST_HAVE_SEQUENCED_VALUES=Нельзя использовать пронумерованные перечисления в качестве индексатора массива
|
||||
%PREFIX%=COMPILATIONERROR_
|
||||
UNIT_MODULE_EXPECTED_LIBRARY_FOUND=Ожидался модуль, а встречена библиотека
|
||||
ASSEMBLY_{0}_READING_ERROR=Ошибка при чтении сборки '{0}'
|
||||
|
|
|
|||
|
|
@ -153,6 +153,7 @@ CANNOT_GET_POINTER_TO_DISPOSE=Нельзя получить указатель
|
|||
USING_{0}_NOT_ALLOWED_IN_THIS_CONTEXT=Использование {0} недопустимо в данном контексте
|
||||
OPERATORS_IN_INTERFACES_NOT_ALLOWED=Интерфейсы не могут содержать операторы
|
||||
STATIC_CLASS_CAN_NOT_BE_USED_AS_PARENT_SPECIFICATOR=Нельзя использовать статические классы в качестве ограничений
|
||||
ENUM_MUST_HAVE_SEQUENCED_VALUES=Нельзя использовать пронумерованные перечисления в качестве индексатора массива
|
||||
%PREFIX%=COMPILATIONERROR_
|
||||
UNIT_MODULE_EXPECTED_LIBRARY_FOUND=Очікувався модуль, а зустріли бібліотеку
|
||||
ASSEMBLY_{0}_READING_ERROR=Помилка при читанні збірки '{0}'
|
||||
|
|
|
|||
Loading…
Reference in a new issue