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

Log of /branches/eth/eve/Src/Eiffel/API/evaluated_type/type_set_a.e

Parent Directory Parent Directory | Revision Log Revision Log


Links to HEAD: (view) (annotate)
Sticky Revision:

Revision 94983 - (view) (annotate) - [select for diffs]
Modified Fri May 2 11:05:28 2014 UTC (5 years, 9 months ago) by jasonw
File length: 39152 byte(s)
Diff to previous 92723
<<Merged from trunk#94978.>>

Revision 92723 - (view) (annotate) - [select for diffs]
Modified Fri Jun 21 07:47:04 2013 UTC (6 years, 8 months ago) by jasonw
File length: 39182 byte(s)
Diff to previous 92684
<<Merged from trunk#92722.>>

Revision 92684 - (view) (annotate) - [select for diffs]
Modified Fri Jun 7 15:28:53 2013 UTC (6 years, 8 months ago) by jasonw
File length: 38525 byte(s)
Diff to previous 92408
<<Merged from trunk#92682.>>

Revision 92408 - (view) (annotate) - [select for diffs]
Modified Fri Apr 5 09:22:00 2013 UTC (6 years, 10 months ago) by jasonw
File length: 38525 byte(s)
Diff to previous 91005
<<Merged from trunk#92407.>>

Revision 91005 - (view) (annotate) - [select for diffs]
Modified Mon Jan 28 14:40:26 2013 UTC (7 years ago) by jasonw
File length: 37841 byte(s)
Diff to previous 89347
<<Merged from trunk#90997.>>

Revision 89347 - (view) (annotate) - [select for diffs]
Modified Fri Aug 10 15:09:25 2012 UTC (7 years, 6 months ago) by jasonw
File length: 37837 byte(s)
Diff to previous 88881
<<Merged from trunk#89346.>>

Revision 88881 - (view) (annotate) - [select for diffs]
Modified Fri Jun 15 12:21:45 2012 UTC (7 years, 8 months ago) by jasonw
File length: 59077 byte(s)
Diff to previous 86354
<<Merged from trunk#88880.>>

Revision 86354 - (view) (annotate) - [select for diffs]
Modified Fri Apr 29 18:23:18 2011 UTC (8 years, 9 months ago) by jasonw
File length: 59066 byte(s)
Diff to previous 84557
<<Merged from trunk#86353.>>

Revision 84557 - (view) (annotate) - [select for diffs]
Modified Mon Oct 11 21:01:52 2010 UTC (9 years, 4 months ago) by jasonw
File length: 58441 byte(s)
Diff to previous 84470
<<Merged from trunk#84547.>>


Revision 84470 - (view) (annotate) - [select for diffs]
Modified Fri Oct 1 14:01:07 2010 UTC (9 years, 4 months ago) by jasonw
File length: 58214 byte(s)
Diff to previous 84268
<<Merged from trunk#84468.>>


Revision 84268 - (view) (annotate) - [select for diffs]
Modified Tue Aug 24 14:02:11 2010 UTC (9 years, 6 months ago) by jasonw
File length: 57759 byte(s)
Diff to previous 83928
<<Merged from trunk#84267.>>

Revision 83928 - (view) (annotate) - [select for diffs]
Modified Fri Jul 16 15:21:01 2010 UTC (9 years, 7 months ago) by mpei
File length: 56154 byte(s)
Diff to previous 83445
<<Merged from trunk#83927>>

Revision 83445 - (view) (annotate) - [select for diffs]
Modified Sat Jun 5 15:29:40 2010 UTC (9 years, 8 months ago) by jasonw
File length: 55738 byte(s)
Diff to previous 83441
<<Merged from trunk@83442.>>

Revision 83441 - (view) (annotate) - [select for diffs]
Modified Sat Jun 5 13:52:53 2010 UTC (9 years, 8 months ago) by jasonw
File length: 54713 byte(s)
Diff to previous 83331
Renamed branch eve3 to eve. The eve branch serves as the new branch for the EVE project.

Revision 83331 - (view) (annotate) - [select for diffs]
Modified Wed May 26 18:49:35 2010 UTC (9 years, 8 months ago) by jasonw
Original Path: branches/eth/eve3/Src/Eiffel/API/evaluated_type/type_set_a.e
File length: 54713 byte(s)
Diff to previous 83039
<<Breanched from trunk@83330>> Created a branch to upgrade Eiffel Transform library to trunk.

Revision 83039 - (view) (annotate) - [select for diffs]
Modified Sun May 2 11:19:43 2010 UTC (9 years, 9 months ago) by alexk
Original Path: trunk/Src/Eiffel/API/evaluated_type/type_set_a.e
File length: 54713 byte(s)
Diff to previous 79132
Implemented `is_computable_using_ancestors' for types that depend on other types.

Revision 79132 - (view) (annotate) - [select for diffs]
Modified Mon Jun 8 17:39:40 2009 UTC (10 years, 8 months ago) by manus
Original Path: trunk/Src/Eiffel/API/evaluated_type/type_set_a.e
File length: 54457 byte(s)
Diff to previous 77402
Use `append' instead of merge_right which is more optimized for the same effect.


Revision 77402 - (view) (annotate) - [select for diffs]
Modified Fri Feb 27 12:13:49 2009 UTC (10 years, 11 months ago) by alexk
Original Path: trunk/Src/Eiffel/API/evaluated_type/type_set_a.e
File length: 53140 byte(s)
Diff to previous 77393
Added a new feature {TYPE_A}.formal_instantiation_in that takes care of
both formal generic and "like Current" resolution, as they should be
evaluated taking into account slightly different context (current
constraint for the formal generics and current type for "like Current", as
the latter may be resolved to a formal generic and should not be resolved
to a signle constraint in a multi-constraint case).
Promoted attachment setting of a formal generic when it is evaluated in a
descendant.
Used "detachable ANY" as a default constraint for a formal generic.
Added a query {TYPE_SET_A}.is_attached that might be used to see if a given
multi-constraint formal is attached.
Changed calculation of a type in the given context when type-checking code
to use the new function.
Implemented detection of VUTA(2) errors for unary and binary operators.
Avoided compiler crash when reporting VWOE error for unary operator in
multi-constraint case.


Revision 77393 - (view) (annotate) - [select for diffs]
Modified Fri Feb 27 08:24:12 2009 UTC (10 years, 11 months ago) by manus
Original Path: trunk/Src/Eiffel/API/evaluated_type/type_set_a.e
File length: 52357 byte(s)
Diff to previous 76432
Fixed completely incorrect checking of inherited binary and unary operations. This fixes eweasel
  test#valid243, test#svalid019, test#svalid020 and test#multicon051. As a consequence we do
  not need the hack of having `is_left_type_converted' in BINARY_AS since the left or right part
  of the binary node will be a CONVERTED_EXPR_AS.
Made sure we report VTCM(2) errors for binary operators, instead of VTMC(1) and a VWOE at the same time
  which was wrong.
However, the handling of multiple constraints is not done properly for inherited code, there is
  a FIXME in `process_binary_as' so that we know it needs to be fixed. For the time being, we pick
  the feature found when checking the routine where it appeared.


Revision 76432 - (view) (annotate) - [select for diffs]
Modified Mon Dec 29 23:41:59 2008 UTC (11 years, 1 month ago) by manus
Original Path: trunk/Src/Eiffel/API/evaluated_type/type_set_a.e
File length: 50423 byte(s)
Diff to previous 76151
Removal of `is' keyword.
Replacement of `is' by `=' for constant definitions.
Replaced `indexing' by `note'.


Revision 76151 - (view) (annotate) - [select for diffs]
Modified Sat Dec 13 05:21:09 2008 UTC (11 years, 2 months ago) by manus
Original Path: trunk/Src/Eiffel/API/evaluated_type/type_set_a.e
File length: 50538 byte(s)
Diff to previous 76125
When changing EiffelBase to not use aliases, we found out that most eweasel tests were now reporting
  a VWOE error for not finding some infix routines. This was because the code handling of names in rename
  clauses of a multiple constraint properly processed infix routines, not aliases. The code now takes
  care of alias and even removal of alias when you do `rename at as at' if `at' was actually `at alias "@"'
  in the constraint class.


Revision 76125 - (view) (annotate) - [select for diffs]
Modified Tue Dec 9 20:24:44 2008 UTC (11 years, 2 months ago) by manus
Original Path: trunk/Src/Eiffel/API/evaluated_type/type_set_a.e
File length: 50399 byte(s)
Diff to previous 75946
Added a context class to `conform_to'. This prevents having to use `System.current_class' in the case
  of formals and thus making the code more robust.


Revision 75946 - (view) (annotate) - [select for diffs]
Modified Fri Nov 28 13:42:30 2008 UTC (11 years, 2 months ago) by alexk
Original Path: trunk/Src/Eiffel/API/evaluated_type/type_set_a.e
File length: 49809 byte(s)
Diff to previous 75456
Corrected setting attachment marks for anchored types, so that the attachment status is of an anchored type itself if it has an explicit mark or of the anchor type otherwise.

Revision 75456 - (view) (annotate) - [select for diffs]
Modified Thu Nov 6 16:15:54 2008 UTC (11 years, 3 months ago) by alexk
Original Path: trunk/Src/Eiffel/API/evaluated_type/type_set_a.e
File length: 49012 byte(s)
Diff to previous 75259
Refactored attachment status manipulation so that the design is more consistent (that fixes some issues involving anchored types and formal generics) and used `conformance_type' in conformance checks for formal generic so that it should also work for anchored types.

Revision 75259 - (view) (annotate) - [select for diffs]
Modified Thu Oct 23 18:28:25 2008 UTC (11 years, 4 months ago) by alexk
Original Path: trunk/Src/Eiffel/API/evaluated_type/type_set_a.e
File length: 48799 byte(s)
Diff to previous 72419
Renamed `as_attached' to `as_attached_type' to avoid conflict with a
feature from ANY.
Transformed `to_current_attachment' to `to_other_attachment' as the latter
allows returning an anchored type that permits to avoid reverse assignment.
Implemented features that transform a type to the one with the given
attachment status in TYPE_SET_A which is required to perform conformance
tests for formal generics correctly (see test#attach025).
Taken attachment status of the formal generic when performing conformance
tests (this fixes test#attach025).
Ensured the scope for non-void Result in a postcondition is activated only
when its type is attached as otherwise it is incorrectly treated as
attached regardless of the actual type in void-safe mode. However the
Result is marked as set in the postcondition if it has to be initialized in
the body.
Supported a check for VEVI errors in inherited assertions.
Provided a check for self-initializing attribute bodies.
Avoided a false VEVI error for self-initializing attribute if it is not set
explicitly at the end of a creation procedure.


Revision 72419 - (view) (annotate) - [select for diffs]
Modified Sat Feb 23 00:45:27 2008 UTC (12 years ago) by manus
Original Path: trunk/Src/Eiffel/API/evaluated_type/type_set_a.e
File length: 46959 byte(s)
Diff to previous 70328
Changed SUPPLIER_AS to only create the supplier on demands.

Merged TYPE_I and TYPE_A hierarchies in just TYPE_A one.
1-The major change is that now to compute the associated class type (CLASS_TYPE instance) of a TYPE_A
  one has to provide a context in which the TYPE_A instance appear. If no context is provided, then
  formal generics are not replaced. For example: LIST [G] alone will simply give you the LIST [G]
  CLASS_TYPE, but if you do it in the context of TEST [INTEGER], then it will return the
  LIST [INTEGER] CLASS_TYPE.
2-Updated all callers accordingly.
3-Simplified a few calls where before we did `type.associated_class_type.associated_class' to just
  `type.associated_class'.
4-Added new preconditions to the context provided, it really helped finding out when we were not doing
  things properly especially in code generation when regenerating code from parent into descendant.
5-Eventhough TYPE_I disappeared, I kept TYPE_C and its descendants since they are useful to have
  them for C code generation and quick discimination for TYPE_A instances.
6-Made validity of types better controled by checking more things in `{TYPE_A}.is_valid'. For example
  that if type used to represent a class which was expanded and that it is not expanded anymore, then
  the type is not valid anymore.
7-The most problematic change with TYPE_I/TYPE_A was that they had different notion of `is_external'
  we have added `is_true_external' to simplify the code in certain areas where the old TYPE_I semantic
  was needed.

Code generation change:
1-We now assume that the default context is always `{BYTE_CONTEXT}.context_class_type'. Then in
  `real_type' and `creation_type' we use `{TYPE_A}.evaluated_type_in_descendant' to properly evaluate
  a type from the ancestor code in the current context. Very useful for regeneration of inherited
  assertions and replicated features. Before it worked, but it was not clear how to do things properly,
  now it is clear.
2-Changed the way we generate the type information for like arguments: we simply nest calls to resolve
  the type of the arguments. This affects the interpreter and C code generation which includes a level
  ID for computing the type of generics.

C Code generation change:
1-Because debugging was too difficult at some point during that work and also because the name mapping
  we were using limited us to 32767 types and 131071 routines, I've changed the mechanism to not use
  the `encode.c' modules in C/bench and did everything in Eiffel. So now we simply write for a feature
  name FXXX_YYY where XXX is the type ID and YYY the body index. The same kind of changes have been
  done for other names (See ENCODER class for details.).
2-We also use `type_id' instead of `static_type_id' for names. The reason it is safe to do so is because
  `type_id' never changes in workbench mode and that in finalized mode, even if you have different
  incremental recompilation, 2 projects should generate more or less the same code at the ID levels
  making it easier to compare them.
3-Changed the way type are created. Instead of having a CREATE_INFO instance in the TYPE_I objects
  used to properly generate the type, we simply use the original TYPE_A instance. That way when we
  have an anchor, we either generate its `actual_type' or its anchor spec depending on the value of
  `use_info. We still use CREATE_INFO to generate the type information but instead of being an object
  in each TYPE_I, it is merely a once that we reinitialize each time we need it.
4-ONE CRITICAL ASPECT OF THE CHANGE #3 was that storable depends on the way type descriptions are generated
  and thanks to eweasel test#storable013 I was able to catch this much earlier in the process.
5-Generates less polymorphic tables for attributes and types specification. What happened before was
  that when we needed a polymorphic type specification for example to create `like x' where x is covariantly
  redefined, we were generating at the same time the polymorphic table for `x' even though if `x'
  was not actually used in the system. This reduces by a tiny amount only the size of the executable.
6-Made the DESCRIPTOR entries much smaller than they used to be by computing the number of ancestors
  instead of allocating for the numbers of routines which was really silly.

IL code generation change:
1-Provided a implementation for creation of BIT constants in .NET however it does not completely work yet,
  it has to do with the manner we generate the BIT_REF class.
2-Changed the way we compare signatures, we store a CLASS_TYPE and a routine ID instead. And then when
  needed we refetch the FEATURE_I object to perform the signature comparions. The issue is that the previous
  solution would not work if NATIVE_ARRAY and TYPED_POINTER do not record all the possible genereric
  derivations in which they are present which is now the case for simplicity.
3-Fixed a bug in code generation for a TYPE_FEATURE_I that is instantiated as a basic type. We would
  generate its associated reference type instead of the basic type. It was not caught before because those
  routines where never called at runtime unless you had a formal generic parameter creation constraint.
4-Fixed an inconsistency shown by eweasel test#incr168 where a precondition check was generated eventhough
  none was needed because one inherited routine had a True precondition. The C code was doing it ok, but
  not .NET
5-Found out see eweasel test#final041 that we first generate inherited assertion and then precondition,
  which is the contrary of what is done in melted or C code generation.
6-Simplified creation of manifest ARRAYS and TUPLE by avoiding a local variable.


Debugger:
1-Updated the code accordingly to the TYPE_I/TYPE_A merge
2-Fixed bug in {DBG_EVALUATOR}.prepare_parameters so that we do not use BYTE_CONTEXT to resolve
  the type but `instantiation_in' instead. It seems to solve one case that the previous debugger did
  not handle (See updated comment).
3-Fixed precondition violation in
  {AST_DEBUGGER_EXPRESSION_CHECKER_GENERATOR}.expression_or_instruction_type_check_and_code where
  we were still trying to evaluate in the descendant if the parent evaluation failed. Causing some
  precondition violations since the AST was not completely annotated with IDs needed for resolution.

Bug fixes:
1-Fixed issue with the way we maintained {CLASS_C}.generic_features, because you could rebuild the list
  without recompiling descendants (case of modifying only a contract of the class) and the rebuilding
  would yield new routine IDs. Then during either type checking or code generation the evaluation of 
  `{TYPE_A}.evaluate_type_in_descendant' could fail because it is not find the new routine ID in the
  descendant class. Now we preserve the routine ID as long as we can, same with feature ID.
2-Made `feature_of_rout_id' works to find the invariant feature.
3-Made sure that when removing an ID from a server it is also removed from the TMP server. Added
  a `not_present' postcondition after calling `remove' to ensure that.


Revision 70328 - (view) (annotate) - [select for diffs]
Modified Sat Sep 15 05:02:08 2007 UTC (12 years, 5 months ago) by manus
Original Path: trunk/Src/Eiffel/API/evaluated_type/type_set_a.e
File length: 46568 byte(s)
Diff to previous 69815
Fixed precondition violations while running eweasel test#ccomp064 and test#incr037 with
  a compiler checking assertions.


Revision 69815 - (view) (annotate) - [select for diffs]
Modified Thu Aug 2 19:29:43 2007 UTC (12 years, 6 months ago) by manus
Original Path: trunk/Src/Eiffel/API/evaluated_type/type_set_a.e
File length: 46424 byte(s)
Diff to previous 69812
Cosmetics.


Revision 69812 - (view) (annotate) - [select for diffs]
Modified Thu Aug 2 17:07:09 2007 UTC (12 years, 6 months ago) by manus
Original Path: trunk/Src/Eiffel/API/evaluated_type/type_set_a.e
File length: 46426 byte(s)
Diff to previous 69125
Fixed errors reported by the full class checking which are both insufficient export
  and wrong type being passed around (simply use anchors to solve that)


Revision 69125 - (view) (annotate) - [select for diffs]
Modified Fri Jun 15 18:53:48 2007 UTC (12 years, 8 months ago) by martins
Original Path: trunk/Src/Eiffel/API/evaluated_type/type_set_a.e
File length: 46433 byte(s)
Diff to previous 69057
Minor changes in contracts and cosmetics.
formal_a.e: Better contract.
gen_type_a.e: Cosmetics.
type_set_a.e: Deleted broken post condition.

Revision 69057 - (view) (annotate) - [select for diffs]
Modified Wed Jun 13 18:50:18 2007 UTC (12 years, 8 months ago) by martins
Original Path: trunk/Src/Eiffel/API/evaluated_type/type_set_a.e
File length: 46565 byte(s)
Diff to previous 68998
type_set_a.e: added new feature to complete API: fast access to any feature of a type set by a routine id.
ast_decorated_output_strategy.e and ast_breakable_slot_strategy.e: Fixed various bugs, the ones reported are:
 bug#13077, bug#13011, bug#13010
ast_feature_checker_generator.e: Code to store convert in BINARY_AS + Cosmetics.
binary_as.e: Added flag to store whether left type was converted to right type or not.


Revision 68998 - (view) (annotate) - [select for diffs]
Modified Mon Jun 11 01:41:38 2007 UTC (12 years, 8 months ago) by martins
Original Path: trunk/Src/Eiffel/API/evaluated_type/type_set_a.e
File length: 45743 byte(s)
Diff to previous 68888
vtgc2.e: Error printing improved.
ast_feature_checker_generator.e: Added a protection for NONE types and refactored code. Compare bug#13012 (test#fixed133).
class_c.e and formal_a.e: Bugfix related to bug in ast_feature_checker_generator.e
mc_feature_info.e: added constraint position to output (more information for the user)
renaming_a.e: implemented alias support for multi constraints. Various bugs fixed, see list below.
type_set_a.e: went from is_loose to has_formal as is_loose includes like which is ok.
ast_compiler_factory.e: Added comment about where similar code can be found code.
formal_constraint_as.e: Added code to print erros without using the compiled version of a renaming, as it cannot reproduce the complete information.
rename_clause_as.e: Added two features to support error output generation.

The following bugs are fixed because of better error printing and alias support for multi-constraint formals:
 * bug#12776 with test#multicon044
 * bug#12778 (now there is a proper error message)
 * bug#12877 with test#multicon045
 * bug#12785 with test#multicon047

Revision 68888 - (view) (annotate) - [select for diffs]
Modified Tue Jun 5 18:59:51 2007 UTC (12 years, 8 months ago) by martins
Original Path: trunk/Src/Eiffel/API/evaluated_type/type_set_a.e
File length: 45701 byte(s)
Diff to previous 68852
type_set_a.e: Fix for bug#12781.


Revision 68852 - (view) (annotate) - [select for diffs]
Modified Mon Jun 4 18:15:15 2007 UTC (12 years, 8 months ago) by martins
Original Path: trunk/Src/Eiffel/API/evaluated_type/type_set_a.e
File length: 44599 byte(s)
Diff to previous 68133
Fixed bug#12818 (assigner command).
Added more support for alias features.
vwbr.e: Extended the error class to be able to support multi constraint error messages (switcht from CLACC_C to TYPE_A)
formal_a.e: Removed obsolete feature `has_multi_constraints'
gen_type_a.e: Cosmetics
renaming_a.e: Enabled storage of alias names. Detection of Infix/Prefix is not implemented (see bug#12817). 
type_set_a.e: Changed code related to alias names and added some more contracts.
formal_constraint_as.e: Creation of renaming with alias names
ast_feature_checker_generator.e: Fixed bug#12818 (assigner command) and fixed a bug for infix features.
byte_context.e: Fixed bug#12784 reproduced by test#multicon041.
constraining_type_as.e: refactored code into query
ast_formal_generics_pass2.e: In case of enabled assertions there are cases where the checks fail.


Revision 68133 - (view) (annotate) - [select for diffs]
Modified Fri May 4 22:26:34 2007 UTC (12 years, 9 months ago) by martins
Original Path: trunk/Src/Eiffel/API/evaluated_type/type_set_a.e
File length: 41710 byte(s)
Diff to previous 68097
If a multi-constraint formal is constrained multiple times to the same type the compiler used to ask for a feature renaming.
G -> {COMPARABLE, COMPARABLE} was a case where the programmer had to rename every feature to make the code valid.
I changed this because even though the example above looks silly something like this could make sense:
[G -> COMPARABLE, H -> COMPARABLE, I -> {G, H}]
With the changes done by this commit one can use I without having to rename any feature at all.

Revision 68097 - (view) (annotate) - [select for diffs]
Modified Thu May 3 22:36:52 2007 UTC (12 years, 9 months ago) by martins
Original Path: trunk/Src/Eiffel/API/evaluated_type/type_set_a.e
File length: 40963 byte(s)
Diff to previous 68089
Added comment to class.

Revision 68089 - (view) (annotate) - [select for diffs]
Modified Thu May 3 18:36:31 2007 UTC (12 years, 9 months ago) by martins
Original Path: trunk/Src/Eiffel/API/evaluated_type/type_set_a.e
File length: 40683 byte(s)
Diff to previous 67957
Refactored RENAMED_TYPE_A to RENAMED_TYPE [G -> TYPE_A]
This change allows us to program type safe if possible.

Revision 67957 - (view) (annotate) - [select for diffs]
Modified Mon Apr 23 21:58:30 2007 UTC (12 years, 10 months ago) by martins
Original Path: trunk/Src/Eiffel/API/evaluated_type/type_set_a.e
File length: 40197 byte(s)
Diff to previous 67875
* mostly removed my TODOs
* removed wrong usage of `{CLASS_C}.constraint' from ast_breakable_slot_startegy.e
* refactored constraint_fixed back into constraint
* degree_4.e: removed check as assumptions seemed to be correct


Revision 67875 - (view) (annotate) - [select for diffs]
Modified Wed Apr 18 00:40:15 2007 UTC (12 years, 10 months ago) by martins
Original Path: trunk/Src/Eiffel/API/evaluated_type/type_set_a.e
File length: 40196 byte(s)
Diff to previous 67862
Further adapted refactoring away from EXTENDED_TYPE_A to RENAMED_TYPE_A.

Revision 67862 - (view) (annotate) - [select for diffs]
Modified Tue Apr 17 02:11:27 2007 UTC (12 years, 10 months ago) by martins
Original Path: trunk/Src/Eiffel/API/evaluated_type/type_set_a.e
File length: 40210 byte(s)
Diff to previous 67846
* Fixed minor bug in FORMAL_CONSTRAINT_AS (renaming of single constraint type was not checked)
* Adapted precondition of conformance features in TYPE_SET_A
* Refactored EXTENDED_TYPE_A into RENAMED_TYPE_A.
* Refactored MC_ERROR_REPORT into MC_FEATURE_INFO

Revision 67846 - (view) (annotate) - [select for diffs]
Modified Fri Apr 13 21:29:28 2007 UTC (12 years, 10 months ago) by martins
Original Path: trunk/Src/Eiffel/API/evaluated_type/type_set_a.e
File length: 40107 byte(s)
Diff to previous 67762
cosmetics: proof of concept for removal of double new lines in code


Revision 67762 - (view) (annotate) - [select for diffs]
Modified Fri Apr 6 19:35:57 2007 UTC (12 years, 10 months ago) by martins
Original Path: trunk/Src/Eiffel/API/evaluated_type/type_set_a.e
File length: 40109 byte(s)
Diff to previous 67649
* Fixed a bug#12452 related to test#valid207.
* Added a question to degree 4.
* Changed from VEEN error to VTMC1 for the multi constraint case.
* Fixed bugs in the checking of the creation constraints (reported by multicon14 and multicon115):
  * generic types derived with deferred classes should never be considered creation ready if the according formal has a creation constraint_info
  * creation constraint check was done with feature name after renaming has happend, it should however be done with the original name of the feature.
* conform_to of TYPE_A can now be used transparently with TYPE_SET_A (as TYPE_SET_A was not always an descendant of TYPE_A this was a bug)
* Tried to improve output of constraint_info.e, not yet fully succeeded. Also related to bug#12452.


Revision 67649 - (view) (annotate) - [select for diffs]
Modified Sat Mar 31 01:36:09 2007 UTC (12 years, 10 months ago) by martins
Original Path: trunk/Src/Eiffel/API/evaluated_type/type_set_a.e
File length: 39145 byte(s)
Diff to previous 67428
* Fixed bugs: bug#12316, bug#12420
* Fixed typos and did minor cosmetics

Revision 67428 - (view) (annotate) - [select for diffs]
Modified Wed Mar 21 16:42:51 2007 UTC (12 years, 11 months ago) by manus
Original Path: trunk/Src/Eiffel/API/evaluated_type/type_set_a.e
File length: 37779 byte(s)
Diff to previous 67305
Fixed bug#12317 where a precondition violation was raised in `{TYPE_A}.to_type_set' becaused it was
  not properly redefined in TYPE_SET_A and EXTENDED_TYPE_A.
Fixed eweasel test#term147 showing a bug in {GEN_TYPE_A}.creation_constraint_check.


Revision 67305 - (view) (annotate) - [select for diffs]
Modified Thu Mar 15 01:30:20 2007 UTC (12 years, 11 months ago) by manus
Original Path: trunk/Src/Eiffel/API/evaluated_type/type_set_a.e
File length: 37711 byte(s)
Diff to previous 67298
Removed non-used locals.


Revision 67298 - (view) (annotate) - [select for diffs]
Modified Wed Mar 14 23:38:54 2007 UTC (12 years, 11 months ago) by martins
Original Path: trunk/Src/Eiffel/API/evaluated_type/type_set_a.e
File length: 37771 byte(s)
Diff to previous 67284
- Fixed bug where TYPE_SET_A was not reporting that it is actually a typeset.
- Fixed bug in invaraint of TYPE_A
- Added invariant to EXTENDED_TYPE_A which ensures that neither another EXTENDED_TYPE_A object or a TYPE_SET_A instance can be set as `type'.

Revision 67284 - (view) (annotate) - [select for diffs]
Modified Wed Mar 14 15:46:56 2007 UTC (12 years, 11 months ago) by manus
Original Path: trunk/Src/Eiffel/API/evaluated_type/type_set_a.e
File length: 37655 byte(s)
Diff to previous 67264
Removed non-used locals.


Revision 67264 - (view) (annotate) - [select for diffs]
Modified Wed Mar 14 01:45:26 2007 UTC (12 years, 11 months ago) by martins
Original Path: trunk/Src/Eiffel/API/evaluated_type/type_set_a.e
File length: 37684 byte(s)
Diff to previous 67227
- Fixed bug#12289: Flat view should work in more cases again.
- API changes to TYPE_SET_A and refactoring of feature names.
- Deleted obsolete features from MC_ERROR_REPORT

Revision 67227 - (view) (annotate) - [select for diffs]
Added Tue Mar 13 01:32:16 2007 UTC (12 years, 11 months ago) by martins
Original Path: trunk/Src/Eiffel/API/evaluated_type/type_set_a.e
File length: 33711 byte(s)
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.


This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, enter a numeric revision.

  Diffs between and
  Type of Diff should be a

  ViewVC Help
Powered by ViewVC 1.1.23