This commit is contained in:
Бондарев Иван 2019-08-18 13:56:13 +02:00
parent 8ab8cadf5b
commit a0ac0a1a3a
5 changed files with 15 additions and 0 deletions

View 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.

View file

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

View file

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

View file

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

View file

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