/[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 43989 by manus, Mon Jun 28 20:05:51 2004 UTC revision 44032 by manus, Wed Jun 30 04:19:23 2004 UTC
# Line 228  feature -- Status Line 228  feature -- Status
228                          else                          else
229                                  if class_id = System.system_string_class.compiled_class.class_id then                                  if class_id = System.system_string_class.compiled_class.class_id then
230                                          Result := feature {MD_SIGNATURE_CONSTANTS}.Element_type_string                                          Result := feature {MD_SIGNATURE_CONSTANTS}.Element_type_string
231                                  elseif class_id = System.system_object_id then                                  elseif class_id = System.system_object_id or class_id = system.any_id then
232                                                    -- For ANY or SYSTEM_OBJECT, we always generate a System.Object
233                                                    -- signature since we can now assign SYSTEM_OBJECTs into ANYs.
234                                          Result := feature {MD_SIGNATURE_CONSTANTS}.Element_type_object                                          Result := feature {MD_SIGNATURE_CONSTANTS}.Element_type_object
235                                  else                                  else
236                                          Result := feature {MD_SIGNATURE_CONSTANTS}.Element_type_class                                          Result := feature {MD_SIGNATURE_CONSTANTS}.Element_type_class
# Line 272  feature -- Status Line 274  feature -- Status
274          is_generated_as_single_type: BOOLEAN is          is_generated_as_single_type: BOOLEAN is
275                          -- Is associated type generated as a single type or as an interface type and                          -- Is associated type generated as a single type or as an interface type and
276                          -- an implementation type.                          -- an implementation type.
                 local  
                         l_class: CLASS_C  
277                  do                  do
278                                  -- FIXME: Manu 06/28/2004: Expanded cannot yet be generated as single type.                                  -- External classes have only one type.
279                                  -- Expanded types do not have an interface since no polymorphic calls                          Result := is_external
                                 -- are done on them.  
 --                      Result := is_expanded  
280                          if not Result then                          if not Result then
281                                  l_class := base_class                                          -- Expanded classes, or classes that inherits from external classes
282                                          -- When `base_class' is a basic class and that we are here, it means                                          -- have only one generated type.
283                                          -- that we are handling the reference version of the basic type, which                                          -- FIXME: Manu 06/28/2004: Expanded cannot yet be generated as single type.
284                                          -- needs to be generated with the interface type and the implementation type  --                              Result := is_expanded or base_class.is_single
285                                  if not l_class.is_basic then                                  Result := base_class.is_single
                                                 -- External classes, or classes marked `frozen', or that  
                                                 -- inherites from external classes have only one generated type.  
                                         Result := l_class.is_single or l_class.is_external  
                                 end  
286                          end                          end
287                  end                  end
288    

Legend:
Removed from v.43989  
changed lines
  Added in v.44032

  ViewVC Help
Powered by ViewVC 1.1.23