/[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 55396 by alexk, Thu Oct 27 09:09:39 2005 UTC revision 55707 by alexk, Fri Nov 11 19:03:48 2005 UTC
# Line 47  inherit Line 47  inherit
47    
48  create  create
49          make          make
50            
51  feature {NONE} -- Initialization  feature {NONE} -- Initialization
52    
53          make (id: INTEGER) is          make (id: INTEGER) is
# Line 64  feature {NONE} -- Initialization Line 64  feature {NONE} -- Initialization
64                  ensure                  ensure
65                          class_id_set: class_id = id                          class_id_set: class_id = id
66                  end                  end
67                    
68  feature -- Access  feature -- Access
69    
70          class_id: INTEGER          class_id: INTEGER
# Line 99  feature -- Access Line 99  feature -- Access
99                  do                  do
100                          Result := Current                          Result := Current
101                  end                  end
102                    
103          type_a: CL_TYPE_A is          type_a: CL_TYPE_A is
104                  do                  do
105                          create Result.make (class_id)                          create Result.make (class_id)
# Line 112  feature -- Access Line 112  feature -- Access
112                  do                  do
113                          Result := base_name                          Result := base_name
114                  end                  end
115                    
116          instantiation_in (other: CLASS_TYPE): CL_TYPE_I is          instantiation_in (other: CLASS_TYPE): CL_TYPE_I is
117                          -- Instantation of Current in `other'                          -- Instantation of Current in `other'
118                  do                  do
119                          Result := Current                          Result := Current
120                  end                  end
121                    
122          il_type_name (a_prefix: STRING): STRING is          il_type_name (a_prefix: STRING): STRING is
123                          -- Class name of current type.                          -- Class name of current type.
124                  local                  local
# Line 218  feature -- Status Line 218  feature -- Status
218                          -- Void element type                          -- Void element type
219                  do                  do
220                          if is_expanded then                          if is_expanded then
221                                  Result := {MD_SIGNATURE_CONSTANTS}.Element_type_valuetype                                                                Result := {MD_SIGNATURE_CONSTANTS}.Element_type_valuetype
222                          else                          else
223                                  if class_id = System.system_string_class.compiled_class.class_id then                                  if class_id = System.system_string_class.compiled_class.class_id then
224                                          Result := {MD_SIGNATURE_CONSTANTS}.Element_type_string                                          Result := {MD_SIGNATURE_CONSTANTS}.Element_type_string
# Line 237  feature -- Status Line 237  feature -- Status
237                  do                  do
238                          Result := {SHARED_GEN_CONF_LEVEL}.reference_tuple_code                          Result := {SHARED_GEN_CONF_LEVEL}.reference_tuple_code
239                  end                  end
240                    
241          is_expanded: BOOLEAN          is_expanded: BOOLEAN
242                          -- Is the type expanded?                          -- Is the type expanded?
243    
# Line 264  feature -- Status Line 264  feature -- Status
264                          l_base_class := base_class                          l_base_class := base_class
265                          Result := is_basic or (not l_base_class.is_basic and l_base_class.is_external)                          Result := is_basic or (not l_base_class.is_basic and l_base_class.is_external)
266                  end                  end
267                    
268          is_generated_as_single_type: BOOLEAN is          is_generated_as_single_type: BOOLEAN is
269                          -- 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
270                          -- an implementation type.                          -- an implementation type.
271                  do                  do
272                                  -- External classes have only one type.                                  -- External classes have only one type.
# Line 288  feature -- Status Line 288  feature -- Status
288                  end                  end
289    
290          is_reference: BOOLEAN is          is_reference: BOOLEAN is
291                          -- Is the type a reference type ?                          -- Is the type a reference type?
292                  do                  do
293                          Result := not is_expanded                          Result := not is_expanded
294                  end;                  end
295    
296          is_explicit: BOOLEAN is          is_explicit: BOOLEAN is
297                          -- Is Current type fixed at compile time?                          -- Is Current type fixed at compile time?
# Line 410  feature -- Generic conformance Line 410  feature -- Generic conformance
410                                  use_info and then (cr_info /= Void)                                  use_info and then (cr_info /= Void)
411                                  and then not is_expanded                                  and then not is_expanded
412                          then                          then
413                                          -- It's an anchored type                                          -- It's an anchored type
414                                  cr_info.generate_cid (buffer, final_mode)                                  cr_info.generate_cid (buffer, final_mode)
415                          else                          else
416                                  buffer.put_integer (generated_id (final_mode))                                  buffer.put_integer (generated_id (final_mode))
# Line 424  feature -- Generic conformance Line 424  feature -- Generic conformance
424                                  use_info and then (cr_info /= Void)                                  use_info and then (cr_info /= Void)
425                                  and then not is_expanded                                  and then not is_expanded
426                          then                          then
427                                  -- It's an anchored type                                  -- It's an anchored type
428                                  cr_info.make_gen_type_byte_code (ba)                                  cr_info.make_gen_type_byte_code (ba)
429                          else                          else
430                                  ba.append_short_integer (generated_id (False))                                  ba.append_short_integer (generated_id (False))
431                          end                          end
432                  end                  end
433    
434          generate_cid_array (buffer : GENERATION_BUFFER;          generate_cid_array (buffer : GENERATION_BUFFER;
435                                                  final_mode, use_info : BOOLEAN; idx_cnt : COUNTER) is                                                  final_mode, use_info : BOOLEAN; idx_cnt : COUNTER) is
436                  local                  local
437                          dummy : INTEGER                          dummy : INTEGER
# Line 440  feature -- Generic conformance Line 440  feature -- Generic conformance
440                                  use_info and then (cr_info /= Void)                                  use_info and then (cr_info /= Void)
441                                  and then not is_expanded                                  and then not is_expanded
442                          then                          then
443                                          -- It's an anchored type                                          -- It's an anchored type
444                                  cr_info.generate_cid_array (buffer, final_mode, idx_cnt)                                  cr_info.generate_cid_array (buffer, final_mode, idx_cnt)
445                          else                          else
446                                  buffer.put_integer (generated_id (final_mode))                                  buffer.put_integer (generated_id (final_mode))
# Line 451  feature -- Generic conformance Line 451  feature -- Generic conformance
451                          end                          end
452                  end                  end
453    
454          generate_cid_init (buffer : GENERATION_BUFFER;          generate_cid_init (buffer : GENERATION_BUFFER;
455                                             final_mode, use_info : BOOLEAN; idx_cnt : COUNTER) is                                             final_mode, use_info : BOOLEAN; idx_cnt : COUNTER) is
456                  local                  local
457                          dummy : INTEGER                          dummy : INTEGER
# Line 460  feature -- Generic conformance Line 460  feature -- Generic conformance
460                                  use_info and then (cr_info /= Void)                                  use_info and then (cr_info /= Void)
461                                  and then not is_expanded                                  and then not is_expanded
462                          then                          then
463                                  -- It's an anchored type                                  -- It's an anchored type
464                                  cr_info.generate_cid_init (buffer, final_mode, idx_cnt)                                  cr_info.generate_cid_init (buffer, final_mode, idx_cnt)
465                          else                          else
466                                  dummy := idx_cnt.next                                  dummy := idx_cnt.next
# Line 470  feature -- Generic conformance Line 470  feature -- Generic conformance
470  feature -- Generic conformance for IL  feature -- Generic conformance for IL
471    
472          generate_gen_type_il (il_generator: IL_CODE_GENERATOR; use_info : BOOLEAN) is          generate_gen_type_il (il_generator: IL_CODE_GENERATOR; use_info : BOOLEAN) is
473                          -- `use_info' is true iff we generate code for a                          -- `use_info' is true iff we generate code for a
474                          -- creation instruction.                          -- creation instruction.
475                  do                  do
476                          if use_info and then cr_info /= Void then                          if use_info and then cr_info /= Void then
477                                          -- It's an anchored type, we call feature                                          -- It's an anchored type, we call feature
478                                          -- that will tell us the real type of the                                          -- that will tell us the real type of the
479                                          -- anchor in the context of Current.                                          -- anchor in the context of Current.
480                                  cr_info.generate_il_type                                  cr_info.generate_il_type
481                          else                          else
482                                  il_generator.generate_class_type_instance (Current)                                  il_generator.generate_class_type_instance (Current)
483                          end                              end
484                  end                  end
485    
486  feature {NONE} -- Implementation  feature {NONE} -- Implementation

Legend:
Removed from v.55396  
changed lines
  Added in v.55707

  ViewVC Help
Powered by ViewVC 1.1.23