12 |
LIKE_TYPE_A |
LIKE_TYPE_A |
13 |
redefine |
redefine |
14 |
actual_type, deep_actual_type, context_free_type, |
actual_type, deep_actual_type, context_free_type, |
15 |
associated_class, associated_class_type, conform_to, conformance_type, convert_to, |
base_class, associated_class_type, conform_to, conformance_type, convert_to, |
16 |
generics, has_associated_class, has_associated_class_type, formal_instantiated_in, |
generics, has_associated_class, has_associated_class_type, formal_instantiated_in, |
17 |
instantiated_in, duplicate, set_separate_mark, |
instantiated_in, duplicate, set_separate_mark, |
18 |
is_basic, is_expanded, is_external, is_like_current, is_none, is_reference, is_ephemeral, |
is_basic, is_expanded, is_external, is_like_current, is_none, is_reference, is_ephemeral, |
25 |
maximum_interval_value, minimum_interval_value, is_optimized_as_frozen, |
maximum_interval_value, minimum_interval_value, is_optimized_as_frozen, |
26 |
is_generated_as_single_type, heaviest, instantiation_in, adapted_in, |
is_generated_as_single_type, heaviest, instantiation_in, adapted_in, |
27 |
hash_code, internal_generic_derivation, internal_same_generic_derivation_as, |
hash_code, internal_generic_derivation, internal_same_generic_derivation_as, |
28 |
is_class_valid, skeleton_adapted_in, good_generics, has_like_current, is_type_set |
is_class_valid, skeleton_adapted_in, good_generics, has_like_current |
29 |
end |
end |
30 |
|
|
31 |
feature -- Visitor |
feature -- Visitor |
131 |
is_none: BOOLEAN = False |
is_none: BOOLEAN = False |
132 |
-- Is current actual type NONE? |
-- Is current actual type NONE? |
133 |
|
|
|
is_type_set: BOOLEAN |
|
|
-- <Precursor> |
|
|
do |
|
|
Result := conformance_type /= Void and then conformance_type.is_type_set |
|
|
end |
|
|
|
|
134 |
is_basic: BOOLEAN |
is_basic: BOOLEAN |
135 |
-- Is the current actual type a basic one? |
-- Is the current actual type a basic one? |
136 |
do |
do |
180 |
Result := {SHARED_HASH_CODE}.other_code |
Result := {SHARED_HASH_CODE}.other_code |
181 |
end |
end |
182 |
|
|
183 |
associated_class: CLASS_C |
base_class: CLASS_C |
184 |
-- Associated class |
-- Associated class |
185 |
do |
do |
186 |
Result := conformance_type.associated_class |
Result := conformance_type.base_class |
187 |
end |
end |
188 |
|
|
189 |
associated_class_type (a_context_type: TYPE_A): CLASS_TYPE |
associated_class_type (a_context_type: TYPE_A): CLASS_TYPE |
491 |
-- Instantiation of Current in the context of `class_type', |
-- Instantiation of Current in the context of `class_type', |
492 |
-- assuming that Current is written in class of id `written_id'. |
-- assuming that Current is written in class of id `written_id'. |
493 |
local |
local |
494 |
a: ATTACHABLE_TYPE_A |
a: ANNOTATED_TYPE_A |
495 |
do |
do |
496 |
-- Special cases for calls on a target which is a manifest integer |
-- Special cases for calls on a target which is a manifest integer |
497 |
-- that might be compatible with _8 or _16. The returned |
-- that might be compatible with _8 or _16. The returned |
516 |
Result := Result.to_other_attachment (Current) |
Result := Result.to_other_attachment (Current) |
517 |
elseif Result.is_attached then |
elseif Result.is_attached then |
518 |
-- Remove explicit "attached" mark. |
-- Remove explicit "attached" mark. |
519 |
if attached {ATTACHABLE_TYPE_A} Result as t then |
if attached {ANNOTATED_TYPE_A} Result as t then |
520 |
a := t.duplicate |
a := t.duplicate |
521 |
a.set_detachable_mark |
a.set_detachable_mark |
522 |
Result := a |
Result := a |
631 |
end |
end |
632 |
|
|
633 |
note |
note |
634 |
copyright: "Copyright (c) 1984-2011, Eiffel Software" |
copyright: "Copyright (c) 1984-2012, Eiffel Software" |
635 |
license: "GPL version 2 (see http://www.eiffel.com/licensing/gpl.txt)" |
license: "GPL version 2 (see http://www.eiffel.com/licensing/gpl.txt)" |
636 |
licensing_options: "http://www.eiffel.com/licensing" |
licensing_options: "http://www.eiffel.com/licensing" |
637 |
copying: "[ |
copying: "[ |