/[eiffelstudio]
ViewVC logotype

Revision 67227


Jump to revision: Previous Next
Author: martins
Date: Tue Mar 13 01:32:16 2007 UTC (12 years, 10 months ago)
Changed paths: 106 (showing only 100; show all)
Log Message:
Support for multi constraint generics:
- Central new class is TYPE_SET_A: It provides features for type checking and feature lookup.
  (the TYPE_A interface is not perfectly complete until now)
- Added EXTENDED_TYPE_A: It basically encapsulates a type and a feature renaming.
- Changed parser to accept the new syntax.
- Adapted validity checks for generics to reflect the new rules.
- Changed AST_FEATURE_CHECKER_GENERATOR in particular `process_call' and its siblings
  to select the so called `multi_constrained_static'. This is the actual static type
  of the target. It is done for each access on a multi constraint generic.
- Added error classes VTGC*, VTGD* and VTMC*.
- Changed code which called `constrained_type' feature to make it capable
  of handling multi constraints. This is in most cases achieved through handling these cases
  explicitly: Autocompletion, query language and debugger are not yet adapted and don't work
  properly in the presence of multi constraint formals.
- Changed AST_DECORATED_OUTPUT_STRATEGY and the like to pretty print the multi constraints correctly.

Support for recursive formals:
- I added a second pass AST_FORMAL_GENERICS_PASS2 which handles the registration of suppliers
  and transformation of the types into the right class (formal or class type).

The rest of the changes are targeted to either one of these.


Changed paths

Path Details
Directorytrunk/Src/Eiffel/API/error/common/mc_error_report.e added
Directorytrunk/Src/Eiffel/API/error/eiffel/feature/vgcc.e modified , text changed
Directorytrunk/Src/Eiffel/API/error/eiffel/feature/vwoe.e modified , text changed
Directorytrunk/Src/Eiffel/API/error/eiffel/parents/constraint_info.e modified , text changed
Directorytrunk/Src/Eiffel/API/error/eiffel/unredefined/vgcc2.e modified , text changed
Directorytrunk/Src/Eiffel/API/error/eiffel/unredefined/vtcg6.e modified , text changed
Directorytrunk/Src/Eiffel/API/error/eiffel/unredefined/vtgc.e added
Directorytrunk/Src/Eiffel/API/error/eiffel/unredefined/vtgc1.e added
Directorytrunk/Src/Eiffel/API/error/eiffel/unredefined/vtgc2.e added
Directorytrunk/Src/Eiffel/API/error/eiffel/unredefined/vtgc3.e added
Directorytrunk/Src/Eiffel/API/error/eiffel/unredefined/vtgd.e added
Directorytrunk/Src/Eiffel/API/error/eiffel/unredefined/vtgd1.e added
Directorytrunk/Src/Eiffel/API/error/eiffel/unredefined/vtgd2.e added
Directorytrunk/Src/Eiffel/API/error/eiffel/unredefined/vtgd3.e added
Directorytrunk/Src/Eiffel/API/error/eiffel/unredefined/vtgd4.e added
Directorytrunk/Src/Eiffel/API/error/eiffel/unredefined/vtmc.e added
Directorytrunk/Src/Eiffel/API/error/eiffel/unredefined/vtmc1.e added
Directorytrunk/Src/Eiffel/API/error/eiffel/unredefined/vtmc2.e added
Directorytrunk/Src/Eiffel/API/error/eiffel/unredefined/vtmc3.e added
Directorytrunk/Src/Eiffel/API/evaluated_type/bits_a.e modified , text changed
Directorytrunk/Src/Eiffel/API/evaluated_type/bits_symbol_a.e modified , text changed
Directorytrunk/Src/Eiffel/API/evaluated_type/cl_type_a.e modified , text changed
Directorytrunk/Src/Eiffel/API/evaluated_type/extended_type_a.e added
Directorytrunk/Src/Eiffel/API/evaluated_type/formal_a.e modified , text changed
Directorytrunk/Src/Eiffel/API/evaluated_type/gen_type_a.e modified , text changed
Directorytrunk/Src/Eiffel/API/evaluated_type/like_argument.e modified , text changed
Directorytrunk/Src/Eiffel/API/evaluated_type/like_current.e modified , text changed
Directorytrunk/Src/Eiffel/API/evaluated_type/like_feature.e modified , text changed
Directorytrunk/Src/Eiffel/API/evaluated_type/named_tuple_type_a.e modified , text changed
Directorytrunk/Src/Eiffel/API/evaluated_type/none_a.e modified , text changed
Directorytrunk/Src/Eiffel/API/evaluated_type/open_type_a.e modified , text changed
Directorytrunk/Src/Eiffel/API/evaluated_type/renaming_a.e added
Directorytrunk/Src/Eiffel/API/evaluated_type/tuple_type_a.e modified , text changed
Directorytrunk/Src/Eiffel/API/evaluated_type/type_set_a.e added
Directorytrunk/Src/Eiffel/API/evaluated_type/unevaluated_bits_symbol_a.e modified , text changed
Directorytrunk/Src/Eiffel/API/evaluated_type/unevaluated_like_type.e modified , text changed
Directorytrunk/Src/Eiffel/API/evaluated_type/visitor/ast_type_output_strategy.e modified , text changed
Directorytrunk/Src/Eiffel/API/evaluated_type/visitor/type_a_visitor.e modified , text changed
Directorytrunk/Src/Eiffel/API/evaluated_type/void_a.e modified , text changed
Directorytrunk/Src/Eiffel/API/interface/e_feature.e modified , text changed
Directorytrunk/Src/Eiffel/API/interface/export_i.e modified , text changed
Directorytrunk/Src/Eiffel/API/output/ast_decorated_output_strategy.e modified , text changed
Directorytrunk/Src/Eiffel/API/query_language/ql_common/ql_utility.e modified , text changed
Directorytrunk/Src/Eiffel/API/query_language/ql_result/ql_names.e modified , text changed
Directorytrunk/Src/Eiffel/API/query_language/ql_visitor/ql_ast_visitor.e modified , text changed
Directorytrunk/Src/Eiffel/eiffel/AST/factory/ast_compiler_factory.e modified , text changed
Directorytrunk/Src/Eiffel/eiffel/AST/factory/ast_roundtrip_compiler_factory.e modified , text changed
Directorytrunk/Src/Eiffel/eiffel/AST/factory/ast_roundtrip_compiler_light_factory.e modified , text changed
Directorytrunk/Src/Eiffel/eiffel/AST/parser_override/type_a.e modified , text changed
Directorytrunk/Src/Eiffel/eiffel/AST/skeleton/formal_constraint_as.e modified , text changed
Directorytrunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e modified , text changed
Directorytrunk/Src/Eiffel/eiffel/AST/visitor/type_a_checker.e modified , text changed
Directorytrunk/Src/Eiffel/eiffel/byte_code/access_b.e modified , text changed
Directorytrunk/Src/Eiffel/eiffel/byte_code/argument_bl.e modified , text changed
Directorytrunk/Src/Eiffel/eiffel/byte_code/assign_bl.e modified , text changed
Directorytrunk/Src/Eiffel/eiffel/byte_code/attribute_bl.e modified , text changed
Directorytrunk/Src/Eiffel/eiffel/byte_code/byte_context.e modified , text changed
Directorytrunk/Src/Eiffel/eiffel/byte_code/creation_expr_b.e modified , text changed
Directorytrunk/Src/Eiffel/eiffel/byte_code/external_bl.e modified , text changed
Directorytrunk/Src/Eiffel/eiffel/byte_code/feature_b.e modified , text changed
Directorytrunk/Src/Eiffel/eiffel/byte_code/feature_bl.e modified , text changed
Directorytrunk/Src/Eiffel/eiffel/byte_code/local_bl.e modified , text changed
Directorytrunk/Src/Eiffel/eiffel/byte_code/nested_b.e modified , text changed
Directorytrunk/Src/Eiffel/eiffel/byte_code/opt_feat_bl.e modified , text changed
Directorytrunk/Src/Eiffel/eiffel/byte_code/require_b.e modified , text changed
Directorytrunk/Src/Eiffel/eiffel/byte_code/visitor/melted_generator.e modified , text changed
Directorytrunk/Src/Eiffel/eiffel/compiler/convertibility_checker.e modified , text changed
Directorytrunk/Src/Eiffel/eiffel/compiler/degree_4.e modified , text changed
Directorytrunk/Src/Eiffel/eiffel/compiler/feature_table.e modified , text changed
Directorytrunk/Src/Eiffel/eiffel/genericity/cl_type_i.e modified , text changed
Directorytrunk/Src/Eiffel/eiffel/genericity/meta_generic.e modified , text changed
Directorytrunk/Src/Eiffel/eiffel/genericity/multi_formal_i.e added
Directorytrunk/Src/Eiffel/eiffel/genericity/reference_i.e modified , text changed
Directorytrunk/Src/Eiffel/eiffel/genericity/type_i.e modified , text changed
Directorytrunk/Src/Eiffel/eiffel/interface/class_c.e modified , text changed
Directorytrunk/Src/Eiffel/eiffel/interface/eiffel_class_c.e modified , text changed
Directorytrunk/Src/Eiffel/eiffel/interface/feature_i.e modified , text changed
Directorytrunk/Src/Eiffel/interface/new_graphical/shared/editor_token_utility/eb_local_editor_token_style.e modified , text changed
Directorytrunk/Src/Eiffel/interface/new_graphical/text_window/text/autocomplete/eb_class_info_analyzer.e modified , text changed
Directorytrunk/Src/Eiffel/interface/new_graphical/text_window/text/autocomplete/eb_complete_info_analyzer.e modified , text changed
Directorytrunk/Src/Eiffel/interface/new_graphical/text_window/text/autocomplete/eb_feature_for_completion.e modified , text changed
Directorytrunk/Src/Eiffel/interface/new_graphical/text_window/text/autocomplete/eb_normal_completion_possibilities_provider.e modified , text changed
Directorytrunk/Src/Eiffel/interface/tty/ewb_dump_features.e modified , text changed
Directorytrunk/Src/Eiffel/interface/tty/ewb_dump_operands.e modified , text changed
Directorytrunk/Src/Eiffel/interface/tty/preferences/eb_misc_data.e modified , text changed
Directorytrunk/Src/Eiffel/switch/communication/debug/evaluation/ast_breakable_slot_startegy.e modified , text changed
Directorytrunk/Src/framework/environment/interface/eiffel_env.e modified , text changed
Directorytrunk/Src/framework/parser/AST/compiler_override/type_a.e modified , text changed
Directorytrunk/Src/framework/parser/AST/factory/ast_factory.e modified , text changed
Directorytrunk/Src/framework/parser/AST/factory/ast_null_factory.e modified , text changed
Directorytrunk/Src/framework/parser/AST/skeleton/constraining_type_as.e added
Directorytrunk/Src/framework/parser/AST/skeleton/constraint_list_as.e added
Directorytrunk/Src/framework/parser/AST/skeleton/constraint_triple.e modified , text changed
Directorytrunk/Src/framework/parser/AST/skeleton/eiffel_list.e modified , text changed
Directorytrunk/Src/framework/parser/AST/skeleton/formal_generic_list_as.e modified , text changed
Directorytrunk/Src/framework/parser/AST/skeleton/rename_clause_as.e modified , text changed
Directorytrunk/Src/framework/parser/AST/skeleton/type_dec_as.e modified , text changed
Directorytrunk/Src/framework/parser/AST/types/formal_dec_as.e modified , text changed
Directorytrunk/Src/framework/parser/AST/visitor/ast_formal_generics_pass2.e added
Directorytrunk/Src/framework/parser/AST/visitor/ast_iterator.e modified , text changed
[...]

  ViewVC Help
Powered by ViewVC 1.1.23