528 |
instantiation_in (type: TYPE_A; written_id: INTEGER): TYPE_A |
instantiation_in (type: TYPE_A; written_id: INTEGER): TYPE_A |
529 |
-- Instantiation of Current in the context of `class_type', |
-- Instantiation of Current in the context of `class_type', |
530 |
-- assuming that Current is written in class of id `written_id'. |
-- assuming that Current is written in class of id `written_id'. |
|
local |
|
|
a: ANNOTATED_TYPE_A |
|
531 |
do |
do |
532 |
-- Special cases for calls on a target which is a manifest integer |
-- Special cases for calls on a target which is a manifest integer |
533 |
-- that might be compatible with _8 or _16. The returned |
-- that might be compatible with _8 or _16. The returned |
553 |
Result := Result.to_other_attachment (Current) |
Result := Result.to_other_attachment (Current) |
554 |
elseif Result.is_attached then |
elseif Result.is_attached then |
555 |
-- Remove explicit "attached" mark. |
-- Remove explicit "attached" mark. |
556 |
if attached {ANNOTATED_TYPE_A} Result as t then |
Result := Result.duplicate |
557 |
a := t.duplicate |
Result.set_detachable_mark |
|
a.set_detachable_mark |
|
|
Result := a |
|
|
end |
|
558 |
elseif Result.is_implicitly_attached then |
elseif Result.is_implicitly_attached then |
559 |
Result := Result.as_implicitly_detachable |
Result := Result.as_implicitly_detachable |
560 |
end |
end |