This commit is contained in:
Бондарев Иван 2019-08-19 21:10:29 +02:00
parent f06558fe8e
commit eee4a4e860
3 changed files with 12 additions and 8 deletions

View file

@ -3050,7 +3050,7 @@ namespace PascalABCCompiler.PCU
//else
//{
// bw.Write((byte)1);
if (meth.function_code == null)
if (meth.function_code == null || meth.name.IndexOf("<yield_helper_error_checkerr>") != -1)
{
VisitStatement(new empty_statement(null));
}
@ -3071,7 +3071,10 @@ namespace PascalABCCompiler.PCU
//(ssyy) метки
VisitLabelDeclarations(func.label_nodes_list);
FixupCode(func);
VisitStatement(func.function_code);
if (func.name.IndexOf("<yield_helper_error_checkerr>") != -1)
VisitStatement(new empty_statement(null));
else
VisitStatement(func.function_code);
}
private void VisitNestedFunctionImplementation(common_in_function_function_node func)

View file

@ -2569,8 +2569,6 @@ namespace PascalABCCompiler.NETGenerator
return false;
}
//Ета штуковина все жутко тормозит. особенно генерацию EXE
private void AddSpecialDebugVariables()
{
if (this.add_special_debug_variables)
@ -2610,7 +2608,10 @@ namespace PascalABCCompiler.NETGenerator
foreach (ICommonNestedInFunctionFunctionNode f in func.functions_nodes)
ConvertFunctionBody(f);
//перевод тела
ConvertBody(func.function_code);
if (func.name.IndexOf("<yield_helper_error_checkerr>") == -1)
ConvertBody(func.function_code);
else
il.Emit(OpCodes.Ret);
//ivan for debug
if (save_debug_info)
{
@ -6100,7 +6101,8 @@ namespace PascalABCCompiler.NETGenerator
}
else
{
ConvertFunctionBody(value, copy_mi, true);
if (value.name.IndexOf("<yield_helper_error_checkerr>") == -1)
ConvertFunctionBody(value, copy_mi, true);
//вызов статического метода-клона
//при этом явно передается this
il = methb.GetILGenerator();

View file

@ -4158,8 +4158,7 @@ namespace PascalABCCompiler.TreeConverter
{
throw new NotSupportedError(get_location(_index_property));
}
//TODO: Если одного из акцессоров нет?
public override void visit(SyntaxTree.simple_property _simple_property)
{
if (_simple_property.accessors == null)