/src/tools/semantics/types/liberty_delayed_resolver.e
Specman e | 53 lines | 30 code | 6 blank | 17 comment | 0 complexity | e3dd23dff123b187f7ad770dd379ac0b MD5 | raw file
1-- This file is part of Liberty Eiffel. 2-- 3-- Liberty Eiffel is free software: you can redistribute it and/or modify 4-- it under the terms of the GNU General Public License as published by 5-- the Free Software Foundation, version 3 of the License. 6-- 7-- Liberty Eiffel is distributed in the hope that it will be useful, 8-- but WITHOUT ANY WARRANTY; without even the implied warranty of 9-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10-- GNU General Public License for more details. 11-- 12-- You should have received a copy of the GNU General Public License 13-- along with Liberty Eiffel. If not, see <http://www.gnu.org/licenses/>. 14-- 15deferred class LIBERTY_DELAYED_RESOLVER 16 -- 17 -- Design pattern: Strategy. Used by LIBERTY_DELAYED_TYPE to resolve a type. 18 -- 19 20insert 21 HASHABLE 22 undefine out_in_tagged_out_memory 23 end 24 LOGGING 25 undefine out_in_tagged_out_memory, is_equal 26 end 27 28feature {LIBERTY_DELAYED_TYPE} 29 can_resolve: BOOLEAN is 30 deferred 31 end 32 33 resolved: LIBERTY_KNOWN_TYPE is 34 require 35 can_resolve 36 deferred 37 ensure 38 Result /= Void 39 end 40 41 full_name: FIXED_STRING is 42 deferred 43 end 44 45 specialized_in (a_type: LIBERTY_ACTUAL_TYPE): like Current is 46 require 47 a_type /= Void 48 deferred 49 ensure 50 Result /= Void 51 end 52 53end -- class LIBERTY_DELAYED_RESOLVER