format1.png

и
частичное исправление 1639
This commit is contained in:
Mikhalkovich Stanislav 2019-07-08 21:52:13 +03:00
parent 663b363ec0
commit d0f350088c
4 changed files with 11 additions and 5 deletions

View file

@ -68,13 +68,13 @@ namespace PascalABCCompiler.SyntaxTreeConverters
/*try
{
root.visit(new SimplePrettyPrinterVisitor(@"d:\\zzz4.txt"));
root.visit(new SimplePrettyPrinterVisitor(@"d:\\zzz1.txt"));
}
catch(Exception e)
{
System.IO.File.AppendAllText(@"d:\\zzz4.txt",e.Message);
}*/
System.IO.File.AppendAllText(@"d:\\zzz1.txt",e.Message);
}*/
#endif

View file

@ -150,9 +150,15 @@ namespace SyntaxVisitors
var stels = seqt.elements_type;
var iteratorClassName = GetClassName(pd);
var classDef = UpperNode(3) as class_definition;
var staticClass = false;
if ((classDef.attribute & class_attribute.Static) != 0)
staticClass = true;
// frninja 08/18/15 - Для захвата self
if (iteratorClassName != null)
if (iteratorClassName != null && !staticClass)
{
// frninja 20/04/16 - поддержка шаблонных классов
var iteratorClassRef = CreateClassReference(iteratorClassName);

View file

@ -20089,7 +20089,7 @@ namespace PascalABCCompiler.TreeConverter
string Consts__Self = YieldHelpers.YieldConsts.Self;
// Find semantic class containing iterator (yield-method) with unknown ident
var iteratorContainingClass = context._ctn.fields.Where(f => f.name == Consts__Self).First().type;
var iteratorContainingClass = context._ctn.fields.Where(f => f.name == Consts__Self).FirstOrDefault()?.type;
//var iteratorContainingClass = context._cmn.types.Where(t => t.name == _unk.ClassName.name).First();
isStaticIdent = false;

Binary file not shown.

After

Width:  |  Height:  |  Size: 587 B