fix #1113
This commit is contained in:
parent
051b867a4d
commit
ea4e70e540
|
|
@ -2,7 +2,7 @@
|
||||||
// This CSharp output file generated by Gardens Point LEX
|
// This CSharp output file generated by Gardens Point LEX
|
||||||
// Version: 1.1.3.301
|
// Version: 1.1.3.301
|
||||||
// Machine: IVAN-PC
|
// Machine: IVAN-PC
|
||||||
// DateTime: 26.08.2018 14:17:42
|
// DateTime: 27.08.2018 21:05:56
|
||||||
// UserName: Ivan
|
// UserName: Ivan
|
||||||
// GPLEX input file <ABCPascal.lex>
|
// GPLEX input file <ABCPascal.lex>
|
||||||
// GPLEX frame file <embedded resource>
|
// GPLEX frame file <embedded resource>
|
||||||
|
|
|
||||||
|
|
@ -3639,6 +3639,10 @@ attribute_variable
|
||||||
{
|
{
|
||||||
$$ = new attribute(null, $1 as named_type_reference, $2 as expression_list, @$);
|
$$ = new attribute(null, $1 as named_type_reference, $2 as expression_list, @$);
|
||||||
}
|
}
|
||||||
|
| template_type optional_expr_list_with_bracket
|
||||||
|
{
|
||||||
|
$$ = new attribute(null, $1 as named_type_reference, $2 as expression_list, @$);
|
||||||
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
dotted_identifier
|
dotted_identifier
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load diff
12
TestSuite/errors/err0260.pas
Normal file
12
TestSuite/errors/err0260.pas
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
type
|
||||||
|
TMyAttribute<T> = class(System.Attribute)
|
||||||
|
end;
|
||||||
|
|
||||||
|
ByteAttribute = TMyAttribute<byte>;
|
||||||
|
|
||||||
|
[ByteAttribute()]
|
||||||
|
TClass = class
|
||||||
|
end;
|
||||||
|
|
||||||
|
begin
|
||||||
|
end.
|
||||||
|
|
@ -11596,6 +11596,8 @@ namespace PascalABCCompiler.TreeConverter
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
AddError(get_location(attr.qualifier), "ATTRIBUTE_QUALIFIER_MUST_BE_FIRST");
|
AddError(get_location(attr.qualifier), "ATTRIBUTE_QUALIFIER_MUST_BE_FIRST");
|
||||||
|
if (tn.is_generic_type_instance || tn.is_generic_type_definition)
|
||||||
|
AddError(get_location(attr), "ATTRIBUTE_CANNOT_BE_GENERIC");
|
||||||
check_for_usage_attribute(ctn, targets, tn.name, get_location(attr), qualifier);
|
check_for_usage_attribute(ctn, targets, tn.name, get_location(attr), qualifier);
|
||||||
|
|
||||||
attribute_converted = false;
|
attribute_converted = false;
|
||||||
|
|
|
||||||
|
|
@ -141,6 +141,7 @@ ABSTRACT_CLASS_CANNOT_BE_SEALED=Abstract classes can not be sealed
|
||||||
EXPRESSION_EXPECTED=Expression expected
|
EXPRESSION_EXPECTED=Expression expected
|
||||||
CLASS_ATTRIBUTE_NOT_ALLOWED_IN_CLASS_PREDEFINTIONS=Can not declare class attributes in class predefintions
|
CLASS_ATTRIBUTE_NOT_ALLOWED_IN_CLASS_PREDEFINTIONS=Can not declare class attributes in class predefintions
|
||||||
GENERIC_RECORDS_CANNOT_HAVE_EXPLICIT_LAYOUT=Generic-records can not have attribute LayoutKind.&Explicit
|
GENERIC_RECORDS_CANNOT_HAVE_EXPLICIT_LAYOUT=Generic-records can not have attribute LayoutKind.&Explicit
|
||||||
|
ATTRIBUTE_CANNOT_BE_GENERIC=Attributes cannot be generic
|
||||||
%PREFIX%=COMPILATIONERROR_
|
%PREFIX%=COMPILATIONERROR_
|
||||||
UNIT_MODULE_EXPECTED_LIBRARY_FOUND=Unit expected, library found
|
UNIT_MODULE_EXPECTED_LIBRARY_FOUND=Unit expected, library found
|
||||||
ASSEMBLY_{0}_READING_ERROR=Error by reading assembly '{0}'
|
ASSEMBLY_{0}_READING_ERROR=Error by reading assembly '{0}'
|
||||||
|
|
|
||||||
|
|
@ -136,6 +136,7 @@ ABSTRACT_CLASS_CANNOT_BE_SEALED=Абстрактный класс не може
|
||||||
EXPRESSION_EXPECTED=Ожидалось выражение
|
EXPRESSION_EXPECTED=Ожидалось выражение
|
||||||
CLASS_ATTRIBUTE_NOT_ALLOWED_IN_CLASS_PREDEFINTIONS=Недопустимо определять атрибуты класса в его предописании
|
CLASS_ATTRIBUTE_NOT_ALLOWED_IN_CLASS_PREDEFINTIONS=Недопустимо определять атрибуты класса в его предописании
|
||||||
GENERIC_RECORDS_CANNOT_HAVE_EXPLICIT_LAYOUT=Генерик-записи не могут иметь атрибут LayoutKind.&Explicit
|
GENERIC_RECORDS_CANNOT_HAVE_EXPLICIT_LAYOUT=Генерик-записи не могут иметь атрибут LayoutKind.&Explicit
|
||||||
|
ATTRIBUTE_CANNOT_BE_GENERIC=Атрибуты не могут быть генерик-классами
|
||||||
%PREFIX%=COMPILATIONERROR_
|
%PREFIX%=COMPILATIONERROR_
|
||||||
UNIT_MODULE_EXPECTED_LIBRARY_FOUND=Ожидался модуль, а встречена библиотека
|
UNIT_MODULE_EXPECTED_LIBRARY_FOUND=Ожидался модуль, а встречена библиотека
|
||||||
ASSEMBLY_{0}_READING_ERROR=Ошибка при чтении сборки '{0}'
|
ASSEMBLY_{0}_READING_ERROR=Ошибка при чтении сборки '{0}'
|
||||||
|
|
|
||||||
|
|
@ -134,6 +134,7 @@ ABSTRACT_CLASS_CANNOT_BE_SEALED=Абстрактный класс не може
|
||||||
EXPRESSION_EXPECTED=Ожидалось выражение
|
EXPRESSION_EXPECTED=Ожидалось выражение
|
||||||
CLASS_ATTRIBUTE_NOT_ALLOWED_IN_CLASS_PREDEFINTIONS=Недопустимо определять атрибуты класса в его предописании
|
CLASS_ATTRIBUTE_NOT_ALLOWED_IN_CLASS_PREDEFINTIONS=Недопустимо определять атрибуты класса в его предописании
|
||||||
GENERIC_RECORDS_CANNOT_HAVE_EXPLICIT_LAYOUT=Генерик-записи не могут иметь атрибут LayoutKind.&Explicit
|
GENERIC_RECORDS_CANNOT_HAVE_EXPLICIT_LAYOUT=Генерик-записи не могут иметь атрибут LayoutKind.&Explicit
|
||||||
|
ATTRIBUTE_CANNOT_BE_GENERIC=Атрибуты не могут быть генерик-классами
|
||||||
%PREFIX%=COMPILATIONERROR_
|
%PREFIX%=COMPILATIONERROR_
|
||||||
UNIT_MODULE_EXPECTED_LIBRARY_FOUND=Очікувався модуль, а зустріли бібліотеку
|
UNIT_MODULE_EXPECTED_LIBRARY_FOUND=Очікувався модуль, а зустріли бібліотеку
|
||||||
ASSEMBLY_{0}_READING_ERROR=Помилка при читанні збірки '{0}'
|
ASSEMBLY_{0}_READING_ERROR=Помилка при читанні збірки '{0}'
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue