/[eiffelstudio]/branches/CAT_mono/Src/Eiffel/eiffel/genericity/cl_type_i.e
ViewVC logotype

Diff of /branches/CAT_mono/Src/Eiffel/eiffel/genericity/cl_type_i.e

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 10196 by manus, Fri May 22 01:22:10 1998 UTC revision 10818 by manus, Thu Jul 30 20:33:23 1998 UTC
# Line 12  inherit Line 12  inherit
12                          same_as,                          same_as,
13                          c_type,                          c_type,
14                          instantiation_in,                          instantiation_in,
15                          conforms_to_array                          complete_instantiation_in,
16                            conforms_to_array,
17                            generated_id,
18                            gen_type_string,
19                            make_gen_type_byte_code
20                  end                  end
21    
22  feature  feature
# Line 50  feature Line 54  feature
54                          -- No meta generic in non-generic type                          -- No meta generic in non-generic type
55                  end                  end
56    
57            true_generics : ARRAY [TYPE_I] is
58                            -- Array of generics: no mapping reference -> REFERENCE_I
59                    do
60                            -- Non generic types don't have them
61                    end
62    
63          base_class: CLASS_C is          base_class: CLASS_C is
64                          -- Base class associated to the class type                          -- Base class associated to the class type
65                  do                  do
# Line 79  feature Line 89  feature
89                                          and then other_cl_type.is_expanded = is_expanded                                          and then other_cl_type.is_expanded = is_expanded
90                                          and then other_cl_type.is_separate = is_separate                                          and then other_cl_type.is_separate = is_separate
91                                          and then other_cl_type.meta_generic = Void                                          and then other_cl_type.meta_generic = Void
92                                            and then other_cl_type.true_generics = Void
93                  end                  end
94    
95          instantiation_in (other: GEN_TYPE_I): CL_TYPE_I is          instantiation_in (other: GEN_TYPE_I): CL_TYPE_I is
# Line 89  feature Line 100  feature
100                          Result := Current                          Result := Current
101                  end                  end
102    
103            complete_instantiation_in (other: GEN_TYPE_I): CL_TYPE_I is
104                            -- Instantiation of Current in context of `other'
105                    require else
106                            True
107                    do
108                            Result := Current
109                    end
110    
111          description: ATTR_DESC is          description: ATTR_DESC is
112                          -- Type description for skeletons                          -- Type description for skeletons
113                  local                  local
# Line 275  feature Line 294  feature
294                          Result.set_base_class_id (base_id)                          Result.set_base_class_id (base_id)
295                  end                  end
296    
297    feature -- Generic conformance
298    
299            generated_id (final_mode : BOOLEAN) : INTEGER is
300    
301                    do
302                            if has_associated_class_type then
303                                    if final_mode then
304                                            Result := type_id - 1
305                                    else
306                                            Result := associated_class_type.id.id-1
307                                    end
308    
309                                    if is_expanded then
310                                            Result := -256 - Result
311                                    end
312                            else
313                                    Result := -10       -- Invalid - should never happen
314                            end
315                    end
316    
317            gen_type_string (final_mode : BOOLEAN) : STRING is
318    
319                    do
320                            !!Result.make (0)
321                            Result.append_integer (generated_id (final_mode))
322                            Result.append (", ")
323                    end
324    
325            make_gen_type_byte_code (ba : BYTE_ARRAY) is
326    
327                    do
328                            ba.append_short_integer (generated_id (False))
329                    end
330    
331  end  end

Legend:
Removed from v.10196  
changed lines
  Added in v.10818

  ViewVC Help
Powered by ViewVC 1.1.23