/[eiffelstudio]/branches/eth/eve/Src/Eiffel/API/evaluated_type/like_current.e
ViewVC logotype

Diff of /branches/eth/eve/Src/Eiffel/API/evaluated_type/like_current.e

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

revision 9655 by xavierl, Fri Jun 28 18:56:07 1996 UTC revision 9656 by manus, Sun Mar 15 02:19:40 1998 UTC
# Line 1  Line 1 
1  indexing  indexing
2            description:"Actual type like Current."
3          description:          date: "$Date$"
                 "Actual type like Current.";  
         date: "$Date$";  
4          revision: "$Revision $"          revision: "$Revision $"
5    
6  class LIKE_CURRENT  class
7            LIKE_CURRENT
8    
9  inherit  inherit
10            LIKE_TYPE_A
         TYPE_A  
11                  redefine                  redefine
12                          actual_type, solved_type, has_like, instantiation_in, is_like,                          is_basic, has_associated_class,
13                          is_basic, instantiated_in, same_as, is_like_current,                          associated_eclass, is_like_current
                         meta_type, has_associated_class  
14                  end                  end
15    
16  feature -- Properties  feature -- Properties
17    
18          actual_type: TYPE_A;          is_like_current: BOOLEAN is True
                         -- Actual type of the type `like Current' in a given class  
   
         is_like_current: BOOLEAN is  
19                          -- Is the current type an anchored type on Current ?                          -- Is the current type an anchored type on Current ?
                 do  
                         Result := True;  
                 end;  
   
         is_like: BOOLEAN is  
                         -- Is the type an anchored one ?  
                 do  
                         Result := True;  
                 end;  
20    
21          is_basic: BOOLEAN is          is_basic: BOOLEAN is
22                          -- Is the current actual type a basic one ?                          -- Is the current actual type a basic one ?
23                  do                  do
24                          Result := actual_type.is_basic;                          Result := actual_type.is_basic
25                  end;                  end
26    
27  feature -- Access  feature -- Access
28    
# Line 45  feature -- Access Line 30  feature -- Access
30                          -- Is the current type the same as `other' ?                          -- Is the current type the same as `other' ?
31                  do                  do
32                          Result := other.is_like_current                          Result := other.is_like_current
33                  end;                  end
34    
35          has_associated_class: BOOLEAN is          has_associated_class: BOOLEAN is
36                          -- Does Current have an associated class?                          -- Does Current have an associated class?
37                  do                  do
38                          Result := evaluated_type /= Void                          Result := evaluated_type /= Void
39                  end;                  end
40    
41          associated_eclass: E_CLASS is          associated_eclass: E_CLASS is
42                          -- Associated class                          -- Associated class
43                  do                  do
44                          Result := actual_type.associated_eclass;                          Result := actual_type.associated_eclass
45                  end;                  end
46    
47  feature -- Comparison  feature -- Comparison
48    
# Line 72  feature -- Output Line 57  feature -- Output
57          dump: STRING is          dump: STRING is
58                          -- Dumped trace                          -- Dumped trace
59                  local                  local
60                          actual_dump: STRING;                          actual_dump: STRING
61                  do                  do
62                          actual_dump := actual_type.dump;                          actual_dump := actual_type.dump
63                          !!Result.make (15 + actual_dump.count);                          !!Result.make (15 + actual_dump.count)
64                          Result.append ("(like Current)");                          Result.append ("(like Current)")
65                          Result.append (actual_dump);                          Result.append (actual_dump)
66                  end;                  end
67    
68          append_to (st: STRUCTURED_TEXT) is          append_to (st: STRUCTURED_TEXT) is
69                  do                  do
70                          st.add_string ("(like Current) ");                          st.add_string ("(like Current) ")
71                          actual_type.append_to (st);                          actual_type.append_to (st)
72                  end;                  end
73    
74  feature {COMPILER_EXPORTER} -- Primitives  feature {COMPILER_EXPORTER} -- Primitives
75    
         set_actual_type (a: TYPE_A) is  
                         -- Assign `a' to `actual_type'.  
                 do  
                         actual_type := a;  
                 end;  
   
76          solved_type (feat_table: FEATURE_TABLE; f: FEATURE_I): LIKE_CURRENT is          solved_type (feat_table: FEATURE_TABLE; f: FEATURE_I): LIKE_CURRENT is
77                          -- Calculated type in function of the feature `f' which has                          -- Calculated type in function of the feature `f' which has
78                          -- the type Current and the feautre table `feat_table'                          -- the type Current and the feautre table `feat_table'
79                  do                  do
80                          !!Result;                          !!Result
81                          Result.set_actual_type (feat_table.associated_class.actual_type);                          Result.set_actual_type (feat_table.associated_class.actual_type)
82                  end;                  end
   
         internal_conform_to (other: TYPE_A; in_generics: BOOLEAN): BOOLEAN is  
                         -- Does `other' conform to `actual_type' ?  
                 do  
                         Result := actual_type.internal_conform_to (other, in_generics);  
                 end;  
83    
84          instantiation_in (type: TYPE_A; written_id: CLASS_ID): LIKE_CURRENT is          instantiation_in (type: TYPE_A; written_id: CLASS_ID): LIKE_CURRENT is
85                          -- Instantiation of Current in the context of `class_type',                          -- Instantiation of Current in the context of `class_type',
86                          -- assuming that Current is written in class of id `written_id'.                          -- assuming that Current is written in class of id `written_id'.
87                  do                  do
88                          !!Result;                          !!Result
89                          Result.set_actual_type (type);                          Result.set_actual_type (type)
90                  end;                  end
   
         instantiated_in (class_type: CL_TYPE_A): like Current is  
                         -- Instantiation of Current in the context of `class_type'  
                         -- assuming that Current is written in the associated class  
                         -- of `class_type'.  
                 do  
                         Result := clone (Current);  
                         Result.set_actual_type (actual_type.instantiated_in (class_type));  
                 end;  
   
         associated_class: CLASS_C is  
                         -- Associated class  
                 require else  
                         actual_type_not_void: actual_type /= Void  
                 do  
                         Result := actual_type.associated_class;  
                 end;  
   
         has_like: BOOLEAN is  
                         -- Does the type have anchored types in its definition ?  
                 do  
                         Result := True;  
                 end;  
   
         type_i: TYPE_I is  
                         -- Reduced type of `actual_type'  
                 do  
                         Result := actual_type.type_i;  
                 end;  
   
         meta_type: TYPE_I is  
                         -- C type for `actual_type'  
                 do  
                         Result := actual_type.meta_type  
                 end;  
91    
92          create_info: CREATE_CURRENT is          create_info: CREATE_CURRENT is
93                          -- Byte code information for entity type creation                          -- Byte code information for entity type creation
94                  once                  once
95                          !!Result                          !!Result
96                  end;                  end
97    
98  feature {COMPILER_EXPORTER} -- Storage information for EiffelCase  feature {COMPILER_EXPORTER} -- Storage information for EiffelCase
99    
# Line 163  feature {COMPILER_EXPORTER} -- Storage i Line 101  feature {COMPILER_EXPORTER} -- Storage i
101                          -- Storage info for Current type in class `classc'                          -- Storage info for Current type in class `classc'
102                  do                  do
103                          !! Result.make ("like Current")                          !! Result.make ("like Current")
104                  end;                  end
105    
106  end -- class LIKE_CURRENT  end -- class LIKE_CURRENT

Legend:
Removed from v.9655  
changed lines
  Added in v.9656

  ViewVC Help
Powered by ViewVC 1.1.23