fix #1884
This commit is contained in:
parent
97b517e798
commit
61e07273a0
11
TestSuite/errors/err0313.pas
Normal file
11
TestSuite/errors/err0313.pas
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
type
|
||||
TStatic = static class
|
||||
end;
|
||||
|
||||
procedure P<T>();
|
||||
where T: TStatic;
|
||||
begin
|
||||
end;
|
||||
|
||||
begin
|
||||
end.
|
||||
|
|
@ -12349,7 +12349,7 @@ namespace PascalABCCompiler.TreeConverter
|
|||
{
|
||||
type_node spec_type = ret.visit(ntr);
|
||||
if (spec_type is ref_type_node || spec_type == SystemLibrary.SystemLibrary.void_type || spec_type == SystemLibrary.SystemLibrary.pointer_type)
|
||||
ErrorsList.Add(new SimpleSemanticError(get_location(specificators[i]), "INAVLID_TYPE"));
|
||||
AddError(new SimpleSemanticError(get_location(specificators[i]), "INAVLID_TYPE"));
|
||||
if (spec_type.IsInterface)
|
||||
{
|
||||
if (used_interfs[spec_type] != null)
|
||||
|
|
@ -12380,6 +12380,8 @@ namespace PascalABCCompiler.TreeConverter
|
|||
{
|
||||
AddError(get_location(specificators[i]), "ENUM_CAN_NOT_BE_USED_AS_PARENT_SPECIFICATOR");
|
||||
}
|
||||
if (spec_type.IsStatic)
|
||||
AddError(get_location(specificators[i]), "STATIC_CLASS_CAN_NOT_BE_USED_AS_PARENT_SPECIFICATOR");
|
||||
check_cycle_inheritance(param, spec_type);
|
||||
param.SetBaseType(spec_type);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
<OldToolsVersion>4.0</OldToolsVersion>
|
||||
<UpgradeBackupLocation>
|
||||
</UpgradeBackupLocation>
|
||||
<TargetFrameworkVersion>v4.7.1</TargetFrameworkVersion>
|
||||
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
|
||||
<IsWebBootstrapper>false</IsWebBootstrapper>
|
||||
<TargetFrameworkProfile />
|
||||
<PublishUrl>publish\</PublishUrl>
|
||||
|
|
|
|||
|
|
@ -160,6 +160,7 @@ ARRAY_RANK_CANNOT_BE_GREATER_32=Rank of multidimensional unsized array cannot be
|
|||
CANNOT_GET_POINTER_TO_DISPOSE=Cannot get a pointer to intrinsic procedure Dispose
|
||||
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
|
||||
%PREFIX%=COMPILATIONERROR_
|
||||
UNIT_MODULE_EXPECTED_LIBRARY_FOUND=Unit expected, library found
|
||||
ASSEMBLY_{0}_READING_ERROR=Error by reading assembly '{0}'
|
||||
|
|
|
|||
|
|
@ -155,6 +155,7 @@ ARRAY_RANK_CANNOT_BE_GREATER_32=Размерность многомерного
|
|||
CANNOT_GET_POINTER_TO_DISPOSE=Нельзя получить указатель на процедуру Dispose
|
||||
USING_{0}_NOT_ALLOWED_IN_THIS_CONTEXT=Использование {0} недопустимо в данном контексте
|
||||
OPERATORS_IN_INTERFACES_NOT_ALLOWED=Интерфейсы не могут содержать операторы
|
||||
STATIC_CLASS_CAN_NOT_BE_USED_AS_PARENT_SPECIFICATOR=Нельзя использовать статические классы в качестве ограничений
|
||||
%PREFIX%=COMPILATIONERROR_
|
||||
UNIT_MODULE_EXPECTED_LIBRARY_FOUND=Ожидался модуль, а встречена библиотека
|
||||
ASSEMBLY_{0}_READING_ERROR=Ошибка при чтении сборки '{0}'
|
||||
|
|
|
|||
|
|
@ -152,6 +152,7 @@ ARRAY_RANK_CANNOT_BE_GREATER_32=Размерность многомерного
|
|||
CANNOT_GET_POINTER_TO_DISPOSE=Нельзя получить указатель на процедуру Dispose
|
||||
USING_{0}_NOT_ALLOWED_IN_THIS_CONTEXT=Использование {0} недопустимо в данном контексте
|
||||
OPERATORS_IN_INTERFACES_NOT_ALLOWED=Интерфейсы не могут содержать операторы
|
||||
STATIC_CLASS_CAN_NOT_BE_USED_AS_PARENT_SPECIFICATOR=Нельзя использовать статические классы в качестве ограничений
|
||||
%PREFIX%=COMPILATIONERROR_
|
||||
UNIT_MODULE_EXPECTED_LIBRARY_FOUND=Очікувався модуль, а зустріли бібліотеку
|
||||
ASSEMBLY_{0}_READING_ERROR=Помилка при читанні збірки '{0}'
|
||||
|
|
|
|||
Loading…
Reference in a new issue