fix #2007
This commit is contained in:
parent
b2f42cca9c
commit
717b73cb60
|
|
@ -15,7 +15,7 @@ internal static class RevisionClass
|
|||
public const string Major = "3";
|
||||
public const string Minor = "5";
|
||||
public const string Build = "0";
|
||||
public const string Revision = "2129";
|
||||
public const string Revision = "2133";
|
||||
|
||||
public const string MainVersion = Major + "." + Minor;
|
||||
public const string FullVersion = Major + "." + Minor + "." + Build + "." + Revision;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
%MINOR%=5
|
||||
%REVISION%=2129
|
||||
%REVISION%=2133
|
||||
%COREVERSION%=0
|
||||
%MAJOR%=3
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
!define VERSION '3.5.0.2129'
|
||||
!define VERSION '3.5.0.2133'
|
||||
|
|
|
|||
|
|
@ -1,14 +1,14 @@
|
|||
(************************************************************************************)
|
||||
//*****************************************************************************************************\\
|
||||
// Copyright (©) Cergey Latchenko ( github.com/SunSerega | forum.mmcs.sfedu.ru/u/sun_serega )
|
||||
// This code is distributed under the Unlicense
|
||||
// For details please see LICENSE.md or here:
|
||||
// For details see LICENSE.md file or this:
|
||||
// https://github.com/SunSerega/PascalABC.Net-BlockFileOfT/blob/master/LICENSE.md
|
||||
(************************************************************************************)
|
||||
// Copyright (©) Сергей латченко ( github.com/SunSerega | forum.mmcs.sfedu.ru/u/sun_serega )
|
||||
//*****************************************************************************************************\\
|
||||
// Copyright (©) Сергей Латченко ( github.com/SunSerega | forum.mmcs.sfedu.ru/u/sun_serega )
|
||||
// Этот код распространяется под Unlicense
|
||||
// Для деталей смотрите в файл LICENSE.md или сюда:
|
||||
// Для деталей смотрите в файл LICENSE.md или это:
|
||||
// https://github.com/SunSerega/PascalABC.Net-BlockFileOfT/blob/master/LICENSE.md
|
||||
(************************************************************************************)
|
||||
//*****************************************************************************************************\\
|
||||
|
||||
///Модуль, содержащий тип BlockFileOf<T>
|
||||
///Тип-альтернатива стандартному file of T
|
||||
|
|
|
|||
|
|
@ -3950,6 +3950,8 @@ end;
|
|||
|
||||
function operator**(x: real; n: integer): real; extensionmethod := Power(x, n);
|
||||
|
||||
function operator**(x: single; n: integer): real; extensionmethod := Power(x, n);
|
||||
|
||||
function operator**(x, y: integer): real; extensionmethod := Power(real(x), y);
|
||||
|
||||
function operator**(x, y: real): real; extensionmethod := Power(x, y);
|
||||
|
|
|
|||
16
TestSuite/Lambda_double_capture_b-6.pas
Normal file
16
TestSuite/Lambda_double_capture_b-6.pas
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
type
|
||||
t0<T> = class end;
|
||||
t1<T> = class(t0<T>)
|
||||
public procedure p1();
|
||||
begin
|
||||
var b: T;
|
||||
var p: procedure := ()->
|
||||
begin
|
||||
var b1 := b;
|
||||
var b2 := b;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
begin
|
||||
end.
|
||||
|
|
@ -392,12 +392,13 @@ namespace TreeConverter.LambdaExpressions.Closure
|
|||
if (idRef == null) //TODO: Осторожнее переделать
|
||||
{
|
||||
{
|
||||
/*var index = -1;
|
||||
var index = -1;
|
||||
for (var i=0; i < sc.VariablesDefinedInScope.Count; i++)
|
||||
{
|
||||
if (sc.VariablesDefinedInScope[i].SymbolInfo.sym_info is var_definition_node vdn && vdn.name.ToLower() == id.name.ToLower()) // SSM #2001 и подобные - исключаю одноимённые
|
||||
{
|
||||
index = i;
|
||||
si = sc.VariablesDefinedInScope[i].SymbolInfo;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -406,14 +407,16 @@ namespace TreeConverter.LambdaExpressions.Closure
|
|||
sc.VariablesDefinedInScope.Add(new CapturedVariablesTreeNode.CapturedSymbolInfo(null, si));
|
||||
index = sc.VariablesDefinedInScope.Count - 1;
|
||||
}
|
||||
|
||||
idRef = sc.VariablesDefinedInScope[index];*/
|
||||
return; // SSM 21/06/19 - так было
|
||||
idRef = sc.VariablesDefinedInScope[index];
|
||||
if (!(idRef.SymbolInfo.sym_info is IVAriableDefinitionNode))
|
||||
return; // SSM 21/06/19 - так было
|
||||
}
|
||||
}
|
||||
|
||||
if (_currentTreeNode.CorrespondingSyntaxTreeNode != null)
|
||||
{
|
||||
if (!(idRef.SymbolInfo.sym_info is IVAriableDefinitionNode)) // SSM 21/06/19
|
||||
return;
|
||||
var varName = ((IVAriableDefinitionNode)idRef.SymbolInfo.sym_info).name; //TODO: случай параметров и полей класса!!!!!!!!!!!!!!!!!!
|
||||
var substKey = new SubstitutionKey(varName, idRef.SyntaxTreeNodeWithVarDeclaration, _currentTreeNode.CorrespondingSyntaxTreeNode);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue