/[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 3652 by ericb, Mon Jan 15 15:32:22 1996 UTC revision 4623 by xavierl, Thu Apr 11 10:44:28 1996 UTC
# Line 8  inherit Line 8  inherit
8                  redefine                  redefine
9                          is_reference,                          is_reference,
10                          is_expanded,                          is_expanded,
11                            is_separate,
12                          is_valid,                          is_valid,
13                          same_as,                          same_as,
14                          c_type,                          c_type,
# Line 23  feature Line 24  feature
24          is_expanded: BOOLEAN;          is_expanded: BOOLEAN;
25                          -- Is the type expanded ?                          -- Is the type expanded ?
26    
27            is_separate: BOOLEAN;
28                            -- Is the type separate ?
29    
30          set_base_id (c: CLASS_ID) is          set_base_id (c: CLASS_ID) is
31                          -- Assign `c' to `base_id'.                          -- Assign `c' to `base_id'.
32                  do                  do
# Line 35  feature Line 39  feature
39                          is_expanded := b;                          is_expanded := b;
40                  end;                  end;
41    
42            set_is_separate (b: BOOLEAN) is
43                            -- Assign `b' to `is_separate'.
44                    do
45                            is_separate := b;
46                    end;
47    
48          meta_generic: META_GENERIC is          meta_generic: META_GENERIC is
49                          -- Meta generic array describing the type class                          -- Meta generic array describing the type class
50                  do                  do
# Line 71  feature Line 81  feature
81                                                  and then                                                  and then
82                                                  other_cl_type.is_expanded = is_expanded                                                  other_cl_type.is_expanded = is_expanded
83                                                  and then                                                  and then
84                                                    other_cl_type.is_separate = is_separate
85                                                    and then
86                                                  other_cl_type.meta_generic = Void                                                  other_cl_type.meta_generic = Void
87                  end;                  end;
88    
# Line 102  feature Line 114  feature
114    
115                                  is_expanded := True;                                  is_expanded := True;
116                                  Result := exp;                                  Result := exp;
117                            elseif is_separate then
118                                    -- FIXME
119                                    Result := c_type.description
120                          else                          else
121                                  Result := c_type.description;                                  Result := c_type.description;
122                          end;                          end;
# Line 117  feature Line 132  feature
132                  do                  do
133                          if is_expanded then                          if is_expanded then
134                                  st.add_string ("expanded ");                                  st.add_string ("expanded ");
135                            elseif is_separate then
136                                    st.add_string ("separate ");
137                          end;                          end;
138                          base_class.e_class.append_signature (st)                          base_class.e_class.append_signature (st)
139                  end;                  end;
# Line 127  feature Line 144  feature
144                  do                  do
145                          if is_expanded then                          if is_expanded then
146                                  file.putstring ("expanded ");                                  file.putstring ("expanded ");
147                            elseif is_separate then
148                                    file.putstring ("separate ");
149                          end;                          end;
150                          s := clone (base_class.class_name);                          s := clone (base_class.class_name);
151                          s.to_upper;                          s.to_upper;
# Line 141  feature Line 160  feature
160                  do                  do
161                          if is_expanded then                          if is_expanded then
162                                  Result := associated_expanded_class_type                                  Result := associated_expanded_class_type
163                            elseif is_separate then
164                                    Result := associated_separate_class_type
165                          else                          else
166                                  types := base_class.types;                                  types := base_class.types;
167                                  pos := types.index;                                  pos := types.index;
# Line 161  feature Line 182  feature
182                          is_expanded := true;                          is_expanded := true;
183                  end;                  end;
184    
185            associated_separate_class_type: CLASS_TYPE is
186                            -- Associated separate class type
187                    require
188                            is_separate: is_separate
189                    do
190                            is_separate := false;
191                            Result := associated_class_type;
192                            is_separate := true;
193                    end;
194    
195          type_id: INTEGER is          type_id: INTEGER is
196                          -- Type id of the correponding class type                          -- Type id of the correponding class type
197                  do                  do
# Line 176  feature Line 207  feature
207          generate_cecil_value (file: INDENT_FILE) is          generate_cecil_value (file: INDENT_FILE) is
208                          -- Generate cecil value                          -- Generate cecil value
209                  do                  do
210                                    -- FIXME????: separate
211                          if not is_expanded then                          if not is_expanded then
212                                  file.putstring ("SK_DTYPE");                                  file.putstring ("SK_DTYPE");
213                          else                          else
# Line 193  feature Line 225  feature
225          sk_value: INTEGER is          sk_value: INTEGER is
226                          -- Generate SK value associated to the current type.                          -- Generate SK value associated to the current type.
227                  do                  do
228                                    -- FIXME????: separate
229                          if not is_expanded then                          if not is_expanded then
230                                  Result := Sk_ref + (type_id - 1);                                  Result := Sk_ref + (type_id - 1);
231                          else                          else
# Line 204  feature Line 237  feature
237    
238          cecil_value: INTEGER is          cecil_value: INTEGER is
239                  do                  do
240                                    -- FIXME????: separate
241                          if not is_expanded then                          if not is_expanded then
242                                  Result := Sk_dtype                                  Result := Sk_dtype
243                          else                          else
# Line 231  feature Line 265  feature
265                  do                  do
266                          !!Result                          !!Result
267                          Result.set_is_expanded (is_expanded);                          Result.set_is_expanded (is_expanded);
268                            Result.set_is_separate (is_separate);
269                          Result.set_base_class_id (base_id)                          Result.set_base_class_id (base_id)
270                  end                  end
271    

Legend:
Removed from v.3652  
changed lines
  Added in v.4623

  ViewVC Help
Powered by ViewVC 1.1.23