This commit is contained in:
Бондарев Иван 2019-03-28 20:31:27 +01:00
parent 97b517e798
commit 61e07273a0
6 changed files with 18 additions and 2 deletions

View file

@ -0,0 +1,11 @@
type
TStatic = static class
end;
procedure P<T>();
where T: TStatic;
begin
end;
begin
end.

View file

@ -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);
}

View file

@ -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>

View file

@ -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}'

View file

@ -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}'

View file

@ -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}'