fix #2275
This commit is contained in:
parent
6a2f92afcc
commit
bc12063981
|
|
@ -180,7 +180,11 @@ namespace PascalABCCompiler.TreeRealization
|
|||
return new SimpleSemanticError(null, "USING_STATIC_CLASS_NOT_VALID");
|
||||
if (gpe.has_default_ctor)
|
||||
{
|
||||
if (tn.IsAbstract || tn.IsStatic || !tn.is_value && !generic_convertions.type_has_default_ctor(tn, false))
|
||||
if (tn.IsAbstract)
|
||||
{
|
||||
return new SimpleSemanticError(null, "PARAMETER_{0}_MUST_NOT_BE_ABSTRACT", tn.PrintableName);
|
||||
}
|
||||
if (tn.IsStatic || !tn.is_value && !generic_convertions.type_has_default_ctor(tn, false))
|
||||
{
|
||||
return new SimpleSemanticError(null, "PARAMETER_{0}_MUST_HAVE_DEFAULT_CONSTRUCTOR", tn.PrintableName);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@ DESTRUCTOR_IN_INTERFACE=Interfaces cannot contain destructors
|
|||
CAN_NOT_CALL_CONSTRUCTOR_AS_PROCEDURE=Cannot call constructor as a procedure
|
||||
CANNOT_USE_POINTER_AS_GENERIC_ARGUMENT=Cannot use pointer type as generic argument
|
||||
PARAMETER_{0}_MUST_HAVE_DEFAULT_CONSTRUCTOR='{0}' must have public default constructor
|
||||
PARAMETER_{0}_MUST_NOT_BE_ABSTRACT=Type {0} cannot be abstract
|
||||
PARAMETER_{0}_MUST_BE_REFERENCE_TYPE='{0}' must be reference type
|
||||
PARAMETER_{0}_MUST_BE_VALUE_TYPE='{0}' must be value type
|
||||
PARAMETER_{0}_MUST_BE_DERIVED_FROM_{1}=The type '{0}' cannot be used as type parameter, because there is no implicit reference conversion from '{0}' to '{1}'
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@ ASSIGN_TO_EVENT=Оператор := не применим к событиям;
|
|||
DESTRUCTOR_IN_INTERFACE=Деструкторы не могут присутствовать в интерфейсе
|
||||
CAN_NOT_CALL_CONSTRUCTOR_AS_PROCEDURE=Нельзя вызвать конструктор через объект
|
||||
CANNOT_USE_POINTER_AS_GENERIC_ARGUMENT=Тип-указатель не может выступать в качестве параметра обобщения
|
||||
PARAMETER_{0}_MUST_NOT_BE_ABSTRACT=Невозможно инстанцировать, так как тип {0} не должен быть абстрактным
|
||||
PARAMETER_{0}_MUST_HAVE_DEFAULT_CONSTRUCTOR=Невозможно инстанцировать, так как у типа {0} нет конструктора без параметров с уровнем доступа public
|
||||
PARAMETER_{0}_MUST_BE_REFERENCE_TYPE=Невозможно инстанцировать, так как тип {0} не является ссылочным (классом)
|
||||
PARAMETER_{0}_MUST_BE_VALUE_TYPE=Невозможно инстанцировать, так как тип {0} не является размерным
|
||||
|
|
|
|||
Loading…
Reference in a new issue