46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
{
DiagnosticsContext dc( 0, "When invoking Initialize." );
if( initializer )
{
initResult = InvokeOverloadSet( c,
c.env()->extInitialize(),
MakeClosedTuple( ToValue( lv ).setLocationId( locId ), *initializer ) );
}
else
{
initResult = InvokeOverloadSet( c,
c.env()->extInitialize(),
MakeClosedTuple( ToValue( lv ).setLocationId( locId ) ) );
}
}
if( !initResult.isPoison() )
{
DiagnosticsContext dc2( initResult.locationId(), "When invoking DropValue." );
InvokeOverloadSet( c, c.env()->extDropValue(),
MakeClosedTuple( c.builder(), move( initResult ) ) );
}
auto locVar = ToValue( lv );
auto identity = AppendToVectorTerm( c.identity(), name );
c.env()->storeValue( identity, ANYTERM( _ ),
ValueToEIR( locVar ) );
|
|
|
|
|
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
{
DiagnosticsContext dc( 0, "When invoking Initialize." );
if( initializer )
{
initResult = InvokeOverloadSet( c,
c.env()->extInitialize(),
MakeClosedTuple( ToValue( lv ).setLocationId( locId ), *initializer ), locId );
}
else
{
initResult = InvokeOverloadSet( c,
c.env()->extInitialize(),
MakeClosedTuple( ToValue( lv ).setLocationId( locId ) ), locId );
}
}
if( !initResult.isPoison() )
{
DiagnosticsContext dc2( initResult.locationId(), "When invoking DropValue." );
InvokeOverloadSet( c, c.env()->extDropValue(),
MakeClosedTuple( c.builder(), move( initResult ) ), initResult.locationId() );
}
auto locVar = ToValue( lv );
auto identity = AppendToVectorTerm( c.identity(), name );
c.env()->storeValue( identity, ANYTERM( _ ),
ValueToEIR( locVar ) );
|