This commit is contained in:
Ivan Bondarev 2024-07-02 20:49:12 +02:00
parent 50a0fdc4fc
commit 33e8b383be
2 changed files with 32 additions and 0 deletions

7
TestSuite/bigint2.pas Normal file
View file

@ -0,0 +1,7 @@
begin
var b := BigInteger(1);
var b1 := b / 2;
assert(TypeName(b1) = 'real');
var b2 := b div 2;
assert(TypeName(b2) = 'BigInteger');
end.

View file

@ -1536,12 +1536,37 @@ namespace PascalABCCompiler.NetHelper
//TODO: проанализировать и изменить алгоритмы, использующие поиск.
//List<SymbolInfo> si_list = new List<SymbolInfo>();
if (tmp_name == "/" && mis.Count > 1)
{
List<MemberInfo> tmp_mis = new List<MemberInfo>();
bool has_fdiv_ext = false;
foreach (MemberInfo mi in mis)
{
if (mi.Name == "/")
{
tmp_mis.Add(mi);
has_fdiv_ext = true;
break;
}
}
foreach (MemberInfo mi in mis)
{
if (mi.Name != "/" && !(has_fdiv_ext && mi.Name == "div"))
{
tmp_mis.Add(mi);
}
}
mis = tmp_mis;
}
foreach (MemberInfo mi in mis)
{
if (mi.DeclaringType != null && PABCSystemType != null && mi.DeclaringType.Assembly == PABCSystemType.Assembly && !UsePABCRtl)
continue;
if (is_visible(mi))
{
//if (tmp_name == "/" && (mi.Name == "op_Division" || mi.Name == "div") && mi.DeclaringType.FullName == "System.Numerics.BigInteger")
// continue;
SymbolInfo temp = null;
switch (mi.MemberType)
{