fix #1071
This commit is contained in:
parent
4c3ef12125
commit
50380adb2f
11
TestSuite/errors/err0258.pas
Normal file
11
TestSuite/errors/err0258.pas
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
procedure P<T>();
|
||||
|
||||
type
|
||||
TRecord = record
|
||||
end;
|
||||
|
||||
begin
|
||||
end;
|
||||
|
||||
begin
|
||||
end.
|
||||
|
|
@ -11351,6 +11351,10 @@ namespace PascalABCCompiler.TreeConverter
|
|||
if (cl_def.keyword == SyntaxTree.class_keyword.Record)
|
||||
{
|
||||
string name = record_type_name = _type_declaration.type_name.name;
|
||||
if (context.top_function != null && context.top_function.generic_params != null)
|
||||
{
|
||||
AddError(get_location(_type_declaration.type_name), "NESTED_RECORDS_IN_GENERIC_FUNCTIONS_NOT_ALLOWED");
|
||||
}
|
||||
record_is_generic = is_generic;
|
||||
location loc = get_location(_type_declaration.type_name);
|
||||
context.check_name_free(name, loc);
|
||||
|
|
|
|||
|
|
@ -124,5 +124,6 @@ CONSTRUCTOR_CAN_NOT_BE_GENERIC=Constructor can not be generic
|
|||
GENERIC_DELEGATE_INNER_FUNCTION=Generic delegate can not be defined inside a subroutine
|
||||
GENERIC_NESTED_FUNCTIONS_NOT_ALLOWED=Nested generics are not allowed
|
||||
NESTED_FUNCTIONS_IN_GENERIC_FUNCTIONS_NOT_ALLOWED=Nested subrotines inside generic subrotines are not allowed
|
||||
NESTED_RECORDS_IN_GENERIC_FUNCTIONS_NOT_ALLOWED=Definition of record type inside generic subrotines is not allowed
|
||||
GENERIC_TYPE_{0}_NEEDS_{1}_GENERIC_PARAMETERS=Generic type {0} needs {1} generic parameters
|
||||
EXPRESSION_IS_NOT_ADDRESSED=This expression is not lvalue
|
||||
|
|
|
|||
|
|
@ -114,6 +114,7 @@ CONSTRUCTOR_CAN_NOT_BE_GENERIC=Конструктор не может быть
|
|||
GENERIC_DELEGATE_INNER_FUNCTION=Недопустимо описывать тип шаблонного делегата внутри подпрограммы
|
||||
GENERIC_NESTED_FUNCTIONS_NOT_ALLOWED=Вложенные generic-подпрограммы запрещены
|
||||
NESTED_FUNCTIONS_IN_GENERIC_FUNCTIONS_NOT_ALLOWED=Вложенные подпрограммы запрещены внутри generic-подпрограмм
|
||||
NESTED_RECORDS_IN_GENERIC_FUNCTIONS_NOT_ALLOWED=Определение типа записи в generic-подпрограмме запрещено
|
||||
GENERIC_TYPE_{0}_NEEDS_{1}_GENERIC_PARAMETERS=Количество шаблонных параметров типа {0} должно быть равно {1}
|
||||
EXPRESSION_IS_NOT_ADDRESSED=Это выражение не может стоять в левой части оператора присваивания или передаваться как var-параметр в подпрограмму
|
||||
|
||||
|
|
|
|||
|
|
@ -114,6 +114,7 @@ CONSTRUCTOR_CAN_NOT_BE_GENERIC=Конструктор не може бути ш
|
|||
GENERIC_DELEGATE_INNER_FUNCTION=Неприпустимо описувати тип шаблонного делегата всередині підпрограми
|
||||
GENERIC_NESTED_FUNCTIONS_NOT_ALLOWED=Вкладені generic-підпрограми заборонені
|
||||
NESTED_FUNCTIONS_IN_GENERIC_FUNCTIONS_NOT_ALLOWED=Вкладені підпрограми заборонені всередині generic-підпрограм
|
||||
NESTED_RECORDS_IN_GENERIC_FUNCTIONS_NOT_ALLOWED=Определение типа записи в generic-подпрограмме запрещено
|
||||
GENERIC_TYPE_{0}_NEEDS_{1}_GENERIC_PARAMETERS=Кількість шаблонних параметрів типу {0} має дорівнювати {1}
|
||||
EXPRESSION_IS_NOT_ADDRESSED=Цей вираз не може стояти в лівій частині оператора присвоювання або передаватися як var-параметр в підпрограму
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue