/[eiffelstudio]/branches/CAT_mono/Src/Eiffel/API/evaluated_type/like_type_a.e
ViewVC logotype

Log of /branches/CAT_mono/Src/Eiffel/API/evaluated_type/like_type_a.e

Parent Directory Parent Directory | Revision Log Revision Log


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

Revision 69650 - (view) (annotate) - [select for diffs]
Modified Tue Jul 24 17:18:14 2007 UTC (12 years, 4 months ago) by juliant
File length: 5297 byte(s)
Diff to previous 69629
Added monomorph mark for class types, either "frozen" or "invariant".
First (simple) conformance check for monomorphic types.

Revision 69629 - (view) (annotate) - [select for diffs]
Modified Mon Jul 23 21:36:18 2007 UTC (12 years, 4 months ago) by manus
File length: 5076 byte(s)
Diff to previous 68030
Creation of CAT_mono branch to implement variant/invariant proposal

Revision 68030 - (view) (annotate) - [select for diffs]
Modified Mon Apr 30 18:38:45 2007 UTC (12 years, 7 months ago) by martins
Original Path: trunk/Src/Eiffel/API/evaluated_type/like_type_a.e
File length: 5076 byte(s)
Diff to previous 58325
Main change: I merged many occurences of "constrained_type" like features into `FORMAL_A'
Renamed `is_multi_constrained_formal' into `is_multi_constrained'
type_a.e: I moved some features into FORMAL_A because the usage pattern suggests that they are not needed in TYPE_A (to improve speed).
renamed_type_a.e: added implementation for `conformance_type', this was a bug (not reported)
formal_dec_as.e: fixed a bug in `is_multi_constrained' (not reported)

Revision 58325 - (view) (annotate) - [select for diffs]
Modified Thu Apr 20 16:05:16 2006 UTC (13 years, 7 months ago) by manus
Original Path: trunk/Src/Eiffel/API/evaluated_type/like_type_a.e
File length: 5076 byte(s)
Diff to previous 58027
Moved trunk/Src/bench/Eiffel to trunk/Src/Eiffel.

Revision 58027 - (view) (annotate) - [select for diffs]
Modified Wed Apr 5 07:08:57 2006 UTC (13 years, 8 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/like_type_a.e
File length: 5076 byte(s)
Diff to previous 57371
Fixed mixing paranthesis in indexing clause for the licensing.
Added missing license reference in newly created Eiffel classes.


Revision 57371 - (view) (annotate) - [select for diffs]
Modified Wed Mar 8 00:05:46 2006 UTC (13 years, 9 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/like_type_a.e
File length: 5066 byte(s)
Diff to previous 56535
Refactoring which separate TYPE_AS from TYPE_A.
* The TYPE_AS classes specific to the compiler have been removed, we now use the one from the
  parser cluster. Only INTEGER_CONSTANT and FORMAL_CONSTRAINT_AS are compiler specific, but defined
  as descendants of INTEGER_AS and FORMAL_DEC_AS.
* The return type and arguments' type are of type TYPE_A, which help us in removing many calls to
  `actual_type' when the purpose was to get the TYPE_A instance as statically it was a TYPE_AS, but
  dynamically it was TYPE_A.
* Rewritten the way we go from TYPE_AS to TYPE_A. This is now done in two steps.
  1 - convert TYPE_AS into TYPE_A using the AST_TYPE_A_GENERATOR visitor. For Bits symbol and anchors
      we get an UNEVALUATED_XX version.
  2 - evaluate and check validity of TYPE_A we obtained by 1), this is done using TYPE_A_CHECKER.
      TYPE_A_CHECKER is modular in the sense that it can be configured to trigger or not errors.
	  Useful to disable when we are in part of the UI of EiffelStudio who does not care about an
	  error reporting.
* Thanks to the above refactoring, I fixed eweasel tests: test#valid104, test#valid131, test#valid135.
  It was due to a bug that when solving an anchor type, we did not update `feature_id', as a consequence
  a comparison would yield False instead of True, because they were referring to the same anchor.
* In TYPE_A, try to add some preconditions to `associated_class' and fix all incorrect usage of it.
  Use `is_valid' a lot to ensure that we have a valid type (used to check validity of types in
  inheritance clause and constraints).
* Changed formatting so that we see G#x and arg#x (whereas it was Generic #x, Formal #x and arg # x)
  to make things more compact.
* Updated all the other part of EiffelStudio that depended on the above changes.
* New version number 5.7.0806



Revision 56535 - (view) (annotate) - [select for diffs]
Modified Tue Jan 17 01:37:10 2006 UTC (13 years, 10 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/like_type_a.e
File length: 5212 byte(s)
Diff to previous 56027
Added text of the GPL license to all classes of the compiler.


Revision 56027 - (view) (annotate) - [select for diffs]
Modified Tue Dec 6 10:43:09 2005 UTC (14 years ago) by alexk
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/like_type_a.e
File length: 3807 byte(s)
Diff to previous 55790
Redefined `conformance_type' to call this feature on `actual_type' because `actual_type' may yield another anchored type. This fixes eweasel test valid171.

Revision 55790 - (view) (annotate) - [select for diffs]
Modified Fri Nov 18 08:16:50 2005 UTC (14 years ago) by alexk
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/like_type_a.e
File length: 3521 byte(s)
Diff to previous 50374
Changed conformance tests to use a new feature `conformance_type'
because now `actual_type' can return LIKE_CURRENT due to changes
in processing of "like Current" type.
Changed signature of `instantiated_in' to accept LIKE_CURRENT that can
now be used during type checking in addition to the previously used
CL_TYPE_A.
Moved declaration of `class_id' into the class LIKE_FEATURE because it
is used only there.


Revision 50374 - (view) (annotate) - [select for diffs]
Modified Sat Apr 23 15:07:18 2005 UTC (14 years, 7 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/like_type_a.e
File length: 3588 byte(s)
Diff to previous 50192
`convert_to' should be called on `actual_type'. This solves eweasel test valid 166.


Revision 50192 - (view) (annotate) - [select for diffs]
Modified Tue Apr 19 04:53:40 2005 UTC (14 years, 7 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/like_type_a.e
File length: 3299 byte(s)
Diff to previous 48822
Added proper definition of `is_none' for anchored types.


Revision 48822 - (view) (annotate) - [select for diffs]
Modified Tue Mar 1 10:37:05 2005 UTC (14 years, 9 months ago) by alexk
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/like_type_a.e
File length: 3188 byte(s)
Diff to previous 44434
Added a feature to determine whether type is completely fixed or is subject
to changes because of anchored and/or formal generic types that are used
in its definition.


Revision 44434 - (view) (annotate) - [select for diffs]
Modified Wed Jul 21 04:49:24 2004 UTC (15 years, 4 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/like_type_a.e
File length: 3082 byte(s)
Diff to previous 42626
Removed support for `reference' types:
  - removed `reference_actual_type'.
  - added `is_conformant_to' which enables us to find if one type inherits
    from another one in a conformant way. It is needed for checking constraint
	genericity when actual generic is an expanded and constraint is a reference.
	Before we were using `reference_actual_type.conform_to' but since we
	removed it, we need something else and this is `is_conformant_to'.


Revision 42626 - (view) (annotate) - [select for diffs]
Modified Fri Apr 9 02:52:52 2004 UTC (15 years, 8 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/like_type_a.e
File length: 3294 byte(s)
Diff to previous 41738
Implemented constraints that are either reference or expanded.
Added proper redefinition of newly introduced `is_reference' in TYPE_A.
Fixed missing redefinition of `is_expanded' from TYPE_A.


Revision 41738 - (view) (annotate) - [select for diffs]
Modified Fri Mar 5 18:59:26 2004 UTC (15 years, 9 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/like_type_a.e
File length: 3020 byte(s)
Diff to previous 40762
Added definition of `is_external' to find if we are handling an external type.
Added definition of `reference_actual_type' in case we anchor to a basic type.
Renamed `internal_conform_to' into `conform_to' since `internal_conform_to'
  has now been removed from parent.
Fixed `type_i' so that when the type is expanded, there is no need to have
  a CREATE_INFO instance because no redefinition can occur on the anchor type.


Revision 40762 - (view) (annotate) - [select for diffs]
Modified Thu Dec 11 23:17:07 2003 UTC (16 years ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/like_type_a.e
File length: 2638 byte(s)
Diff to previous 30264
Use `deep_twin' instead of `deep_clone' which is now made obsolete.
Use `twin' instead of `clone' which is now made obsolete.
Use `as_lower' and `as_upper' whenever appropriate instead of cloning and
  then calling `to_lower' or `to_upper'.


Revision 30264 - (view) (annotate) - [select for diffs]
Modified Mon Jan 21 01:39:29 2002 UTC (17 years, 10 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/like_type_a.e
File length: 2649 byte(s)
Diff to previous 26913
Removed `rout_id' as it is only used in the LIKE_FEATURE descendant and therefore
we save a small amount of space.


Revision 26913 - (view) (annotate) - [select for diffs]
Modified Sun Aug 12 23:50:20 2001 UTC (18 years, 4 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/like_type_a.e
File length: 2767 byte(s)
Diff to previous 12165
Merged branch `dev46_manu' to the trunc.


Revision 12165 - (view) (annotate) - [select for diffs]
Modified Sat Dec 5 19:29:49 1998 UTC (21 years ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/like_type_a.e
File length: 2772 byte(s)
Diff to previous 11302
Before when compiling this code:

	secret: REAL
	guess_history: ARRAY [like secret]

	do_something is
		local
			gh: like guess_history
		do
			gh := guess_history
		end

you got the following error:

Error code: VJAR
Type error: source of assignment does not conform to target.
What to do: make sure that type of source (right-hand side)
  conforms (in the sense of inheritance rule) to type of target.

Class: GUESSBOX
Feature: is_closest
Target name: gh
Target type: ARRAY [[like secret]: REAL]
Source_type: ARRAY [[like secret]: REAL]

because we forget to take the actual type of `other' in internal_conforms_to.


Revision 11302 - (view) (annotate) - [select for diffs]
Modified Sun Sep 13 22:35:07 1998 UTC (21 years, 3 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/like_type_a.e
File length: 2760 byte(s)
Diff to previous 11128
Removed `evaluated_type' and `associated_eclass' from TYPE_A and from their
descendants.

The first one, because it was a synonym to `actual_type'
The second one because it was the same as `associated_class'

Removed also useless precondition which were not exactly doing what their author
expected.


Revision 11128 - (view) (annotate) - [select for diffs]
Modified Mon Aug 24 02:25:56 1998 UTC (21 years, 3 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/like_type_a.e
File length: 2940 byte(s)
Diff to previous 10886
We removed E_CLASS from the system, we should now use CLASS_C instead.


Revision 10886 - (view) (annotate) - [select for diffs]
Modified Mon Aug 10 23:49:22 1998 UTC (21 years, 4 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/like_type_a.e
File length: 2940 byte(s)
Diff to previous 9658
Fixed a bug in the generic conformance when handling with anchored types.


Revision 9658 - (view) (annotate) - [select for diffs]
Added Sun Mar 15 02:27:12 1998 UTC (21 years, 9 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/like_type_a.e
File length: 2771 byte(s)
Add a new class to the system for simplification purpose


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