fix #2075
This commit is contained in:
parent
8ab8cadf5b
commit
a0ac0a1a3a
10
TestSuite/errors/err0338_nested_external_function.pas
Normal file
10
TestSuite/errors/err0338_nested_external_function.pas
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
procedure p1;
|
||||
function GetDC(hwnd: System.IntPtr): System.IntPtr;
|
||||
external 'user32.dll';
|
||||
begin
|
||||
GetDC(System.IntPtr.Zero);
|
||||
end;
|
||||
|
||||
begin
|
||||
p1;
|
||||
end.
|
||||
|
|
@ -17317,6 +17317,8 @@ namespace PascalABCCompiler.TreeConverter
|
|||
{
|
||||
string module_name = "";
|
||||
string name = "";
|
||||
if (context.converted_func_stack.size > 1)
|
||||
AddError(context.top_function.loc, "EXTERNAL_METHOD_CANNOT_BE_NESTED");
|
||||
if (context.converted_func_stack.top() is common_method_node && (context.converted_func_stack.top() as common_method_node).polymorphic_state != SemanticTree.polymorphic_state.ps_static)
|
||||
AddError(context.top_function.loc, "EXTERNAL_METHOD_SHOULD_BE_STATIC");
|
||||
if (context.converted_func_stack.top().is_generic_function)
|
||||
|
|
|
|||
|
|
@ -162,6 +162,7 @@ USING_{0}_NOT_ALLOWED_IN_THIS_CONTEXT=Using of {0} is not allowed in this contex
|
|||
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
|
||||
ENUM_MUST_HAVE_SEQUENCED_VALUES=Enum must have sequenced values
|
||||
EXTERNAL_METHOD_CANNOT_BE_NESTED=Nested functions cannot be external
|
||||
%PREFIX%=COMPILATIONERROR_
|
||||
UNIT_MODULE_EXPECTED_LIBRARY_FOUND=Unit expected, library found
|
||||
ASSEMBLY_{0}_READING_ERROR=Error by reading assembly '{0}'
|
||||
|
|
|
|||
|
|
@ -157,6 +157,7 @@ USING_{0}_NOT_ALLOWED_IN_THIS_CONTEXT=Использование {0} недоп
|
|||
OPERATORS_IN_INTERFACES_NOT_ALLOWED=Интерфейсы не могут содержать операторы
|
||||
STATIC_CLASS_CAN_NOT_BE_USED_AS_PARENT_SPECIFICATOR=Нельзя использовать статические классы в качестве ограничений
|
||||
ENUM_MUST_HAVE_SEQUENCED_VALUES=Нельзя использовать пронумерованные перечисления в качестве индексатора массива
|
||||
EXTERNAL_METHOD_CANNOT_BE_NESTED=external-подпрограммы не могут вложенными
|
||||
%PREFIX%=COMPILATIONERROR_
|
||||
UNIT_MODULE_EXPECTED_LIBRARY_FOUND=Ожидался модуль, а встречена библиотека
|
||||
ASSEMBLY_{0}_READING_ERROR=Ошибка при чтении сборки '{0}'
|
||||
|
|
|
|||
|
|
@ -154,6 +154,7 @@ USING_{0}_NOT_ALLOWED_IN_THIS_CONTEXT=Использование {0} недоп
|
|||
OPERATORS_IN_INTERFACES_NOT_ALLOWED=Интерфейсы не могут содержать операторы
|
||||
STATIC_CLASS_CAN_NOT_BE_USED_AS_PARENT_SPECIFICATOR=Нельзя использовать статические классы в качестве ограничений
|
||||
ENUM_MUST_HAVE_SEQUENCED_VALUES=Нельзя использовать пронумерованные перечисления в качестве индексатора массива
|
||||
EXTERNAL_METHOD_CANNOT_BE_NESTED=external-подпрограммы не могут вложенными
|
||||
%PREFIX%=COMPILATIONERROR_
|
||||
UNIT_MODULE_EXPECTED_LIBRARY_FOUND=Очікувався модуль, а зустріли бібліотеку
|
||||
ASSEMBLY_{0}_READING_ERROR=Помилка при читанні збірки '{0}'
|
||||
|
|
|
|||
Loading…
Reference in a new issue