diff --git a/TreeConverter/TreeConversion/syntax_tree_visitor.cs b/TreeConverter/TreeConversion/syntax_tree_visitor.cs index 6766e3839..87459e62a 100644 --- a/TreeConverter/TreeConversion/syntax_tree_visitor.cs +++ b/TreeConverter/TreeConversion/syntax_tree_visitor.cs @@ -4275,9 +4275,14 @@ namespace PascalABCCompiler.TreeConverter List sil = context.find_definition_node(ntr, get_location(_simple_property.property_name), true); if (!(sil[0].sym_info as type_node).IsInterface) - AddError(get_location(_simple_property.property_name), "INTERFACE_AWAITED"); + AddError(get_location(_simple_property.property_name), "EXPECTED_INTERFACE"); name = (sil[0].sym_info as type_node).BaseFullName + "." + name; expl_interface = sil[0].sym_info as type_node; + sil = expl_interface.find_in_type(_simple_property.property_name.name); + if (sil == null) + AddError(new MemberIsNotDeclaredInType(_simple_property.property_name, get_location(_simple_property.property_name), expl_interface)); + if (!(sil[0].sym_info is property_node)) + AddError(get_location(_simple_property.property_name), "EXPECTED_PROPERTY"); } common_property_node pn = context.add_property(name, get_location(_simple_property.property_name)); assign_doc_info(pn, _simple_property); diff --git a/bin/Lng/Eng/SemanticErrors_ib.dat b/bin/Lng/Eng/SemanticErrors_ib.dat index daffab3c0..d72d36018 100644 --- a/bin/Lng/Eng/SemanticErrors_ib.dat +++ b/bin/Lng/Eng/SemanticErrors_ib.dat @@ -169,7 +169,8 @@ PARTIAL_CLASS_PARENTS_MISMATCH=Partial declarations must not specify different b PARAMETER_{0}_HAS_TYPE_{1}_FROM_UNIT_{2}=Parameter {0} has type {1} from unit {2}. Add unit {2} to uses section. PARTIAL_CLASS_PREDEFINITION_NOT_ALLOWED=Predefinitions of partial classes are not allowed AMBIGUOUS_DELEGATES=Ambiguous delegates detected -INTERFACE_AWAITED=Interface expected +EXPECTED_INTERFACE=Interface expected +EXPECTED_PROPERTY=Property expected %PREFIX%=COMPILATIONERROR_ UNIT_MODULE_EXPECTED_LIBRARY_FOUND=Unit expected, library found ASSEMBLY_{0}_READING_ERROR=Error by reading assembly '{0}' diff --git a/bin/Lng/Rus/SemanticErrors_ib.dat b/bin/Lng/Rus/SemanticErrors_ib.dat index b5e13848a..87d1da237 100644 --- a/bin/Lng/Rus/SemanticErrors_ib.dat +++ b/bin/Lng/Rus/SemanticErrors_ib.dat @@ -164,7 +164,8 @@ PARTIAL_CLASS_PARENTS_MISMATCH=partial-класс не может иметь и PARAMETER_{0}_HAS_TYPE_{1}_FROM_UNIT_{2}=Параметр {0} имеет тип {1} из неподключенного модуля {2}. Добавьте модуль {2} в секцию uses. PARTIAL_CLASS_PREDEFINITION_NOT_ALLOWED=Предописания partial-классов недопустимы AMBIGUOUS_DELEGATES=Невозможно выбрать конкретный делегат из перегруженных -INTERFACE_AWAITED=Ожидалось имя интерфейса +EXPECTED_INTERFACE=Ожидалось имя интерфейса +EXPECTED_PROPERTY=Ожидалось свойство %PREFIX%=COMPILATIONERROR_ UNIT_MODULE_EXPECTED_LIBRARY_FOUND=Ожидался модуль, а встречена библиотека ASSEMBLY_{0}_READING_ERROR=Ошибка при чтении сборки '{0}' diff --git a/bin/Lng/Ukr/SemanticErrors_ib.dat b/bin/Lng/Ukr/SemanticErrors_ib.dat index 358d0974c..167598fa4 100644 --- a/bin/Lng/Ukr/SemanticErrors_ib.dat +++ b/bin/Lng/Ukr/SemanticErrors_ib.dat @@ -161,7 +161,8 @@ PARTIAL_CLASS_PARENTS_MISMATCH=partial-класс не может иметь и PARAMETER_{0}_HAS_TYPE_{1}_FROM_UNIT_{2}=Параметр {0} имеет тип {1} из неподключенного модуля {2}. Добавьте модуль {2} в секцию uses. PARTIAL_CLASS_PREDEFINITION_NOT_ALLOWED=Предописания partial-классов недопустимы# AMBIGUOUS_DELEGATES=Невозможно выбрать конкретный делегат из перегруженных -INTERFACE_AWAITED=Ожидалось имя интерфейса +EXPECTED_INTERFACE=Ожидалось имя интерфейса +EXPECTED_PROPERTY=Ожидалось свойство %PREFIX%=COMPILATIONERROR_ UNIT_MODULE_EXPECTED_LIBRARY_FOUND=Очікувався модуль, а зустріли бібліотеку ASSEMBLY_{0}_READING_ERROR=Помилка при читанні збірки '{0}'