/[eiffelstudio]/branches/CAT_mono/Src/Eiffel/eiffel/AST/parser_override/type_a.e
ViewVC logotype

Log of /branches/CAT_mono/Src/Eiffel/eiffel/AST/parser_override/type_a.e

Parent Directory Parent Directory | Revision Log Revision Log


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

Revision 69700 - (view) (annotate) - [select for diffs]
Modified Thu Jul 26 20:01:12 2007 UTC (12 years, 4 months ago) by martins
File length: 26187 byte(s)
Diff to previous 69699
added warning: error PCAT (potential CAT issue)
protected conform to from a Void system.current_class for now
(crash occured during the checking of root type properties)

Revision 69699 - (view) (annotate) - [select for diffs]
Modified Thu Jul 26 19:39:43 2007 UTC (12 years, 4 months ago) by juliant
File length: 26079 byte(s)
Diff to previous 69690
added conformance checking which does not raise warnings
added conformance checking for variant generics


Revision 69690 - (view) (annotate) - [select for diffs]
Modified Wed Jul 25 23:42:05 2007 UTC (12 years, 4 months ago) by juliant
File length: 24845 byte(s)
Diff to previous 69650
Renamed "conform_to" to "is_conforming_descendant"
TYPE_A.conform_to now checks monomorphic types

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: 22341 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: 22249 byte(s)
Diff to previous 68945
Creation of CAT_mono branch to implement variant/invariant proposal

Revision 68945 - (view) (annotate) - [select for diffs]
Modified Fri Jun 8 14:58:16 2007 UTC (12 years, 6 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/parser_override/type_a.e
File length: 22249 byte(s)
Diff to previous 68135
Renamed `{SYSTEM_I}.set_freeze' and `{SYSTEM_I}.private_freeze' into
`request_freeze' and `is_freeze_requested' respectively to highlight the
fact that freezing happens because of compiler needs rather than due to
project settings or users' request.
Made `{SYSTEM_I}.is_freeze_requested' available for call to allow quick
test if the system is about to be frozen anyway to avoid more complex
checks.
Changed code generation for CECIL table in workbench mode to call wrappers
that convert CECIL types into EIF_UNION and back, so that CECIL interface
is preserved (this fixes code generation issues in test#ccomp063).
Ensured that if visible features are recompiled, the code is frozen so that
CECIL wrappers are generated.
Removed precondition "has_current_class" from `{TYPE_A}.create_info'
because it is not required for the implementation.
Removed byte code generation for CECIL table as it is not used in the
current implementation.


Revision 68135 - (view) (annotate) - [select for diffs]
Modified Fri May 4 22:29:11 2007 UTC (12 years, 7 months ago) by martins
Original Path: trunk/Src/Eiffel/eiffel/AST/parser_override/type_a.e
File length: 22300 byte(s)
Diff to previous 68089
type_a.e: Added missing precondition to `same_as': other /= Void

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

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/eiffel/AST/parser_override/type_a.e
File length: 22239 byte(s)
Diff to previous 67948
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 67948 - (view) (annotate) - [select for diffs]
Modified Sat Apr 21 00:50:00 2007 UTC (12 years, 7 months ago) by martins
Original Path: trunk/Src/Eiffel/eiffel/AST/parser_override/type_a.e
File length: 22696 byte(s)
Diff to previous 67875
formal_a.e: Added feature to check whether a formals constraint has a renaming or not. This is a necessary adaptation to handle single constraints which have a renaming correctly.
gen_type_a.e: provide location information.
renamed_type_a.e: Fixed bug in is_equivalent
renaming_a.e: Added a feature to map old names onto their new names.
type_a.e: added feature allows to check for certain conditions without a reverse assignment to formal_a.e
formal_constraint_as.e: removed too strong error handling (eweasel tests failed because of this, that's why it is removed)
ast_feature_checker_generator.e: Bug fix for bug#12503 and bug#12504
formal_constraint_as.e: Added a feature to support changes in formal.a and fixed a plain wrong feature.
named_tuple_type_as.e: fixed a bug which printed one comma too much in the `dump' feature



Revision 67875 - (view) (annotate) - [select for diffs]
Modified Wed Apr 18 00:40:15 2007 UTC (12 years, 8 months ago) by martins
Original Path: trunk/Src/Eiffel/eiffel/AST/parser_override/type_a.e
File length: 22321 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, 8 months ago) by martins
Original Path: trunk/Src/Eiffel/eiffel/AST/parser_override/type_a.e
File length: 22221 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, 8 months ago) by martins
Original Path: trunk/Src/Eiffel/eiffel/AST/parser_override/type_a.e
File length: 22222 byte(s)
Diff to previous 67428
cosmetics: proof of concept for removal of double new lines in code


Revision 67428 - (view) (annotate) - [select for diffs]
Modified Wed Mar 21 16:42:51 2007 UTC (12 years, 8 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/parser_override/type_a.e
File length: 22223 byte(s)
Diff to previous 67298
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 67298 - (view) (annotate) - [select for diffs]
Modified Wed Mar 14 23:38:54 2007 UTC (12 years, 9 months ago) by martins
Original Path: trunk/Src/Eiffel/eiffel/AST/parser_override/type_a.e
File length: 22380 byte(s)
Diff to previous 67227
- 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 67227 - (view) (annotate) - [select for diffs]
Modified Tue Mar 13 01:32:16 2007 UTC (12 years, 9 months ago) by martins
Original Path: trunk/Src/Eiffel/eiffel/AST/parser_override/type_a.e
File length: 22223 byte(s)
Diff to previous 67176
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.


Revision 67176 - (view) (annotate) - [select for diffs]
Modified Sat Mar 10 01:10:13 2007 UTC (12 years, 9 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/parser_override/type_a.e
File length: 19066 byte(s)
Diff to previous 66957
Added `evaluated_type_in_descendant' in TYPE_A to evaluate a type in the context of a descendant class.
  The existing instantiation_in would not do it since it does it in a CL_TYPE_A version of the descandant
  class. Although not yet done, `instantiation_in' could be rewritten in a much simpler fashion by using
  this new routine and the existing `instantiated_in'.
Full class checking:
 - Added `full_class_checking' option in the configuration library and removed the system option
   in SYSTEM_OPTIONS.full_type_checking and the associated settings in the configuration library.
 - Updated code in AST_FEATURE_CHECKER_GENERATOR to perform a correct full class checking.
 - Changed EIFFEL_CLASS_C.pass3 to properly initialize the checker to perform full class checking,
   also melted routine without assertions are checked normally (i.e. `to_melt_in' on DEF_PROC_I
   are now the same as FEATURE_I).
First result of applying catcall checking on the compiler:
 - Fixed a validity error in `is_safe_equivalent' from TYPE_A.
 - Fixed a validity error in CLASS_TYPE.make


Revision 66957 - (view) (annotate) - [select for diffs]
Modified Tue Feb 27 20:56:04 2007 UTC (12 years, 9 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/parser_override/type_a.e
File length: 17681 byte(s)
Diff to previous 64420
Renamed `is_deep_equal' into `is_safe_equivalent' since there is `is_deep_equal' from
  ANY when compiling with FreeELKS.


Revision 64420 - (view) (annotate) - [select for diffs]
Modified Wed Oct 18 17:29:39 2006 UTC (13 years, 1 month ago) by patrickr
Original Path: trunk/Src/Eiffel/eiffel/AST/parser_override/type_a.e
File length: 17676 byte(s)
Copied from: trunk/Src/Eiffel/API/evaluated_type/type_a.e revision 64389
Diff to previous 64415
some more moving of files

Revision 64415 - (view) (annotate) - [select for diffs]
Modified Wed Oct 18 15:23:06 2006 UTC (13 years, 2 months ago) by patrickr
Original Path: trunk/Src/Eiffel/parser_override/type_a.e
File length: 17676 byte(s)
Copied from: trunk/Src/Eiffel/API/evaluated_type/type_a.e revision 64389
Diff to previous 61551
refactored configuration library into two parts, parser that handles parsing and writing configuration files, compiler that does the compiler specific part (degree 6)
moved some classes around and created some new libraries to be able to use the parser and configuration system as a library in the compiler
cleaned up the ec.ecf

Revision 61551 - (view) (annotate) - [select for diffs]
Modified Fri Jul 21 23:22:40 2006 UTC (13 years, 4 months ago) by tedf
Original Path: trunk/Src/Eiffel/API/evaluated_type/type_a.e
File length: 17676 byte(s)
Diff to previous 61537
Added `has_like_argument' in TYPE_A.
In AST_DECORATED_OUTPUT_STRATEGY we test return type of found feature using `has_like_argument' so that we can solve the type by when there are like argument types appears in it. By doing this, most of the time we avoid expression visiting.
Slightly refactored output strategy for documentation generation.

Revision 61537 - (view) (annotate) - [select for diffs]
Modified Fri Jul 21 14:52:22 2006 UTC (13 years, 4 months ago) by alexk
Original Path: trunk/Src/Eiffel/API/evaluated_type/type_a.e
File length: 17547 byte(s)
Diff to previous 59403
Provided code generation for CHARACTER_32.
Supported reattachment of a result type anchored to an argument of a
reference formal type with an expanded actual type to this expanded type.


Revision 59403 - (view) (annotate) - [select for diffs]
Modified Mon Jun 5 15:50:03 2006 UTC (13 years, 6 months ago) by paulb
Original Path: trunk/Src/Eiffel/API/evaluated_type/type_a.e
File length: 17429 byte(s)
Diff to previous 58610
Added base implementation for is_enum, which indicates if type is a .NET enum.

Revision 58610 - (view) (annotate) - [select for diffs]
Modified Mon May 1 18:04:21 2006 UTC (13 years, 7 months ago) by patrickr
Original Path: trunk/Src/Eiffel/API/evaluated_type/type_a.e
File length: 17324 byte(s)
Diff to previous 58567
added possibility to disable/enable warnings globally
refactored warnings so that they are now directly in CONF_OPTION

Revision 58567 - (view) (annotate) - [select for diffs]
Modified Fri Apr 28 20:49:07 2006 UTC (13 years, 7 months ago) by patrickr
Original Path: trunk/Src/Eiffel/API/evaluated_type/type_a.e
File length: 17325 byte(s)
Diff to previous 58325


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/type_a.e
File length: 17279 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/type_a.e
File length: 17279 byte(s)
Diff to previous 57781
Fixed mixing paranthesis in indexing clause for the licensing.
Added missing license reference in newly created Eiffel classes.


Revision 57781 - (view) (annotate) - [select for diffs]
Modified Mon Mar 27 17:11:27 2006 UTC (13 years, 8 months ago) by patrickr
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 17269 byte(s)
Diff to previous 57426
New compiler with new configuration system
For now only the batch compiler works


Revision 57426 - (view) (annotate) - [select for diffs]
Modified Fri Mar 10 20:30:45 2006 UTC (13 years, 9 months ago) by tedf
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 17192 byte(s)
Diff to previous 57371
1. Removed all STRUCTURED_TEXT within the compiler.
2. Replaced with TEXT_FORMATTER for editor and documentation output formatting.
 Generally, there are five descendents for the moment.
-OUTPUT_WINDOW: For simple string output. i.e. Command line, file, buffered string etc.
-TEXT_FILTER: For various documentation formatting.
-EB_OUPUT_MANAGER: Mainly for EB_GRAPHICAL_OUTPUT_MANAGER decoration.
-EDITOR_TOKEN_WRITER: Editor tokens are translated here for colorized editor views.
-TEXT_FORMATTER_DECORATOR: A decorator of TEXT_FORMATTERS. Handles context and formatting information. AST visits for outputs are mainly mediated here.
 There are two sets of interface, process_* and add_*. The main one is process_* which is recommended to use. add_* is from STRUCTURED_TEXT which does not exist any more. As it affected vastly, I still keep its interfaces.
3. SHARED_TEXT_ITEMS are all strings now, as items in structured text have been removed.
4. Wrote AST_OUTPUT_STRATEGY which is an AST_VISITOR processing AST to TEXT_FORMATTER. Wrote AST_DECORATED_OUTPUT_STRATEGY a client of TEXT_FORMATTER_DECORATOR. And one AST_DOCUMENTATION_OUTPUT_STRATEGY only for documentation.
5. Removed flat/short views buffering of STRUCTURED_TEXT. It is slightly slower than before, but in my opinion acceptable.
6. Wrote a AST_TYPE_OUTPUT_STRATEGY which visit a type and print its ‘text’ representation output to a TEXT_FORMATTER.
7. Rewrote TOKEN_VISITOR and a descendant EIFFEL_TOKEN_VISITOR for editor tokens in library and in the compiler.
8. Leave printer command prints simple text in current editor. Further work will be done a little later.
9. We gain 22% faster of documentation generation for the moment. Less than we expected, I think, mainly because of additions and accuracy we gain.



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/type_a.e
File length: 17165 byte(s)
Diff to previous 57234
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 57234 - (view) (annotate) - [select for diffs]
Modified Thu Mar 2 01:57:13 2006 UTC (13 years, 9 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 16052 byte(s)
Diff to previous 57173
Wrote a TYPE_A visitor.


Revision 57173 - (view) (annotate) - [select for diffs]
Modified Mon Feb 27 05:28:09 2006 UTC (13 years, 9 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 15865 byte(s)
Diff to previous 56868
Implementation of labeled tuples with a limitation which is that the identifier
  list is reduced to only one element, as it is causing the grammar to be too
  difficult. But the current implementation is fully equipped to handle multiple
  entries as soon as the parser is fixed.


Revision 56868 - (view) (annotate) - [select for diffs]
Modified Thu Feb 2 23:38:26 2006 UTC (13 years, 10 months ago) by jasonw
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 15246 byte(s)
Diff to previous 56645
Added dummy first_token and last_token in TYPE_A.

Revision 56645 - (view) (annotate) - [select for diffs]
Modified Fri Jan 20 20:26:24 2006 UTC (13 years, 10 months ago) by jasonw
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 15230 byte(s)
Diff to previous 56535
Added `fist_token' and `last_token'.

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


Revision 56475 - (view) (annotate) - [select for diffs]
Modified Tue Jan 10 00:01:15 2006 UTC (13 years, 11 months ago) by jasonw
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 13877 byte(s)
Diff to previous 55789
Added complete_start_location and complete_end_location to give the pricise position of an AST node. And changed start_location/end_location to call the above 2 features.


Revision 55789 - (view) (annotate) - [select for diffs]
Modified Fri Nov 18 08:11:53 2005 UTC (14 years ago) by alexk
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 13889 byte(s)
Diff to previous 55787
Moved implementation of `update_dependance' together with the associated
data to the class LIKE_FEATURE to avoid reverse assignment, to reduce
class interdependance and to simplify the code.


Revision 55787 - (view) (annotate) - [select for diffs]
Modified Fri Nov 18 07:52:50 2005 UTC (14 years ago) by alexk
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 14338 byte(s)
Diff to previous 55395
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.


Revision 55395 - (view) (annotate) - [select for diffs]
Modified Thu Oct 27 09:07:25 2005 UTC (14 years, 1 month ago) by alexk
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 14251 byte(s)
Diff to previous 50240
Added a check to prevent inheritance links to external classes from
expanded types.


Revision 50240 - (view) (annotate) - [select for diffs]
Modified Wed Apr 20 16:46:27 2005 UTC (14 years, 7 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 13839 byte(s)
Diff to previous 50190
Simply redefine `solved_type' as it is now defined in TYPE_AS.


Revision 50190 - (view) (annotate) - [select for diffs]
Modified Tue Apr 19 04:52:41 2005 UTC (14 years, 8 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 13826 byte(s)
Diff to previous 49799
Replaced `conformance_type' by `actual_argument_type' which is used to
  resolve anchors to arguments, it uses an array as argument rather than
  having it shared in SHARED_ARG_TYPE (which has now been removed).


Revision 49799 - (view) (annotate) - [select for diffs]
Modified Mon Apr 4 06:37:15 2005 UTC (14 years, 8 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 13695 byte(s)
Diff to previous 49681
Removed `check_conformance' which was not used.
Added dummy implementation for `start_location' and `end_location'.
Added inheritance to SHARED_TEXT_ITEMS since it is not inherited anymore in
  AST_EIFFEL.


Revision 49681 - (view) (annotate) - [select for diffs]
Modified Thu Mar 31 15:29:30 2005 UTC (14 years, 8 months ago) by alexk
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 13986 byte(s)
Diff to previous 49374
Added a feature to get an intrinsic type of manifest constant.


Revision 49374 - (view) (annotate) - [select for diffs]
Modified Tue Mar 22 01:26:15 2005 UTC (14 years, 8 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 13841 byte(s)
Diff to previous 48688
Moved precondition of `create_info' from LIKE_FEATURE_A to TYPE_A as otherwise
  it was useless.


Revision 48688 - (view) (annotate) - [select for diffs]
Modified Wed Feb 23 20:45:08 2005 UTC (14 years, 9 months ago) by alexk
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 13780 byte(s)
Diff to previous 47808
Removed `has_formal_generic' as now it is declared in TYPE_AS.


Revision 47808 - (view) (annotate) - [select for diffs]
Modified Mon Jan 24 23:30:56 2005 UTC (14 years, 10 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 13907 byte(s)
Diff to previous 47234
Added `is_natural' for easy recognition of NATURAL_XX types.


Revision 47234 - (view) (annotate) - [select for diffs]
Modified Sat Dec 25 00:19:09 2004 UTC (14 years, 11 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 13807 byte(s)
Diff to previous 44434
Provided new class names, new feature names to entities representing
  basic types so that they are close to the new basic type names:
    real -> real_32
	double -> double_32
	float -> real_32
	long -> integer
	....


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/type_a.e
File length: 13789 byte(s)
Diff to previous 43410
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 43410 - (view) (annotate) - [select for diffs]
Modified Wed Jun 2 00:07:27 2004 UTC (15 years, 6 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 13716 byte(s)
Diff to previous 42625
Renamed TYPE into TYPE_AS


Revision 42625 - (view) (annotate) - [select for diffs]
Modified Fri Apr 9 02:51:57 2004 UTC (15 years, 8 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 13713 byte(s)
Diff to previous 41744
Implemented constraints that are either reference or expanded.
Added `is_reference' to help us validate that indeed the actual generic
  parameter matches a formal generic parameter declared as always be a
  reference type.


Revision 41744 - (view) (annotate) - [select for diffs]
Modified Fri Mar 5 22:16:47 2004 UTC (15 years, 9 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 13598 byte(s)
Diff to previous 40762
Now `is_true_expanded' represents an expanded type which is not basic; and
`is_expanded' states if a type is expanded or not.
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.
Added `is_named_type' and `is_full_named_type' to find out if we handle a type
  which does not have anchors.

Updated `check_const_gen_conformance' to use VTCG7 instead of VTCG5 as VTCG7
now covers the constraint case too.

Renamed `internal_conform_to' into `conform_to' since nd removed `in_generics'
parameter as conformance does not play a different role when used for checking
validity of generic parameters.

Removed `redeclaration_conform_to' since we should use the strict definition
of conformance for a redeclaration, not a custom made one.

Removed `heaviest' since we are now relying on the conversion mechanism and
  not on the balancing rules.

Moved `generate_constraint_error' from GEN_TYPE_A to TYPE_A. Added
`delayed_convert_constraint_check' to perform late check for checking conversion
in generic parameters.

Changed semantic of `valid_expanded_creation' to check that `default_create'
is indeed a creation procedure for a given expanded 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/type_a.e
File length: 11004 byte(s)
Diff to previous 39175
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 39175 - (view) (annotate) - [select for diffs]
Modified Sun Sep 21 22:44:43 2003 UTC (16 years, 2 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 11015 byte(s)
Diff to previous 37827
First imlementation of TYPED_POINTER: now all $x expression where x is a local,
argument, Current, Result or an attribute are of type TYPED_POINTER [type of x].


Revision 37827 - (view) (annotate) - [select for diffs]
Modified Fri Jun 27 22:26:49 2003 UTC (16 years, 5 months ago) by julieng
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 11004 byte(s)
Diff to previous 37662
Implement visitor feature `process' inhertied from AST_EIFFEL.


Revision 37662 - (view) (annotate) - [select for diffs]
Modified Tue Jun 10 23:37:06 2003 UTC (16 years, 6 months ago) by julieng
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 10912 byte(s)
Diff to previous 37129
Replace creation keyword with create keyword.


Revision 37129 - (view) (annotate) - [select for diffs]
Modified Mon May 5 18:06:59 2003 UTC (16 years, 7 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 10893 byte(s)
Diff to previous 37039
No more `is_out' flag. We are going to use the type TYPED_POINTER [XX] to
  represent an out parameter.


Revision 37039 - (view) (annotate) - [select for diffs]
Modified Wed Apr 30 00:03:19 2003 UTC (16 years, 7 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 11003 byte(s)
Diff to previous 36958
Added `convert_to' function to find out if a type convert to another.


Revision 36958 - (view) (annotate) - [select for diffs]
Modified Thu Apr 24 22:23:35 2003 UTC (16 years, 7 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 10769 byte(s)
Diff to previous 35178
Fixed revision tag for CVS.


Revision 35178 - (view) (annotate) - [select for diffs]
Modified Mon Dec 23 20:08:09 2002 UTC (16 years, 11 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 10770 byte(s)
Diff to previous 34001
Added `is_out' which is used to mark a parameter type has been a `out' parameter.
Only used for interfaces with languages that support out parameters.


Revision 34001 - (view) (annotate) - [select for diffs]
Modified Sat Aug 24 02:30:55 2002 UTC (17 years, 3 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 10658 byte(s)
Diff to previous 33448
A .NET class which is expanded is always valid for us even if it has more
than one creation procedure available.


Revision 33448 - (view) (annotate) - [select for diffs]
Modified Tue Aug 6 22:32:57 2002 UTC (17 years, 4 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 10571 byte(s)
Diff to previous 32562
Added export to NONE of all inherited features of SHARED_TYPE_I.


Revision 32562 - (view) (annotate) - [select for diffs]
Modified Fri Jun 21 21:06:53 2002 UTC (17 years, 5 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 10542 byte(s)
Diff to previous 32513
Fixed incorrect precondition to `heaviest'.


Revision 32513 - (view) (annotate) - [select for diffs]
Modified Mon Jun 17 23:06:17 2002 UTC (17 years, 6 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 10537 byte(s)
Diff to previous 30798
Revisited `heaviest' to make code simpler to understand and not to rely
on manifest integer values to give the `weight' (feature which has been
removed).


Revision 30798 - (view) (annotate) - [select for diffs]
Modified Thu Feb 21 02:24:00 2002 UTC (17 years, 9 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 10661 byte(s)
Diff to previous 30263
Updated to new name of `position' in AST_EIFFEL, i.e. `start_position'.


Revision 30263 - (view) (annotate) - [select for diffs]
Modified Mon Jan 21 01:35:39 2002 UTC (17 years, 10 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 10655 byte(s)
Diff to previous 30223
Removed non-used feature `set'.
Added precondition to `conform_to' and `redeclaration_conform_to'.
Use HASH_TABLE instead of EXTEND_TABLE as they are now semantically identical.


Revision 30223 - (view) (annotate) - [select for diffs]
Modified Thu Jan 17 00:51:18 2002 UTC (17 years, 11 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 10591 byte(s)
Diff to previous 30051
Added precondition to `ext_append_to'.


Revision 30051 - (view) (annotate) - [select for diffs]
Modified Sun Jan 6 03:51:49 2002 UTC (17 years, 11 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 10528 byte(s)
Diff to previous 27514
Moved precondition located in GEN_TYPE_A for `valid_generic' in TYPE_A as it should
  be in the parent and not in the descendant.
Redefined `instantiation_in' in GEN_TYPE_A so that if it is not a class, the
  instantiation is done on all generic parameter of Current. This solve Eric Bezault's
  problem where he had A [G-> B] and in B there is a feature `f' returning `C [like Current]'.
  In A he has b: C [G] and a: G and he tries to do `b := a.f' then the type of `f'
  is C [like Current] which does not conform to C [G] because `like Current' was
  not instantiated in the context of G. After doing the instantiation no correctly,
  it becomes C [G].


Revision 27514 - (view) (annotate) - [select for diffs]
Modified Tue Sep 11 03:07:45 2001 UTC (18 years, 3 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 10415 byte(s)
Diff to previous 26913
Now LIKE_FEATURE is using a name ID instead of a STRING to represent `feature_name'.
Updated corresponding classes.


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/type_a.e
File length: 10409 byte(s)
Diff to previous 14875
Merged branch `dev46_manu' to the trunc.


Revision 14875 - (view) (annotate) - [select for diffs]
Modified Mon Jun 14 00:07:48 1999 UTC (20 years, 6 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 9928 byte(s)
Diff to previous 14244
Added `update_dependance' which is needed to fix a DCR bug because we do not keep
the dependance to a `like x' where x is a feature.
Added the redefinition of `conformance_type' in GEN_TYPE_A to translate the definition
of `like x' statement so that we can test the conformance between A[X] and A[like x] where
x: X.


Revision 14244 - (view) (annotate) - [select for diffs]
Modified Tue May 4 18:09:42 1999 UTC (20 years, 7 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 9379 byte(s)
Diff to previous 12233
Modified completeley the validity checking of the constraint part of
a generic class. Before, it was not able starting from scratch to detect
invalid use of creation constraint clause, now it is.

Fixed a bug of command/query separation for `check_constraints' defined in TYPE_A.

The remaining problems are a missing incrementallity check when someone changes
the creation clause of a class used as a generic parameter of a generic class.


Revision 12233 - (view) (annotate) - [select for diffs]
Modified Tue Dec 8 21:07:08 1998 UTC (21 years ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 9382 byte(s)
Diff to previous 11342
New implementation for routine object which can be of the form:
	~r
	~r (a,b)
	~{A}r
	~{A}r (a,b)
	~~r


Revision 11342 - (view) (annotate) - [select for diffs]
Modified Wed Sep 16 03:03:22 1998 UTC (21 years, 3 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 9066 byte(s)
Diff to previous 11302
Replaced all the occurences to the old AST *_AS_B by *_AS.


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/type_a.e
File length: 9070 byte(s)
Diff to previous 11202
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 11202 - (view) (annotate) - [select for diffs]
Modified Thu Sep 3 21:47:59 1998 UTC (21 years, 3 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 9367 byte(s)
Diff to previous 11128
We add the TUPLE class in the compiler


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/type_a.e
File length: 9291 byte(s)
Diff to previous 9946
We removed E_CLASS from the system, we should now use CLASS_C instead.


Revision 9946 - (view) (annotate) - [select for diffs]
Modified Wed Apr 22 03:14:09 1998 UTC (21 years, 7 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 9291 byte(s)
Diff to previous 9656
Removed the feature `check_generics' and replaced it by `check_constraints' which
is more meaningful.

Changed the way to implement the depedency between generics, it now checks correctly
when there is a constraint which is a formal generic parameter, ie
FOO [G, H -> G]

now a: FOO [K, STRING] where K is a generic parameter.

It used to be OK, but it should not since a generic parameter is conform only to
itself


Revision 9656 - (view) (annotate) - [select for diffs]
Modified Sun Mar 15 02:19:40 1998 UTC (21 years, 9 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 9549 byte(s)
Diff to previous 4623
Cosmetics
Changed some inheritance scheme concerning types
Add the depedency between genrics in GEN_TYPE_A


Revision 4623 - (view) (annotate) - [select for diffs]
Modified Thu Apr 11 10:44:28 1996 UTC (23 years, 8 months ago) by xavierl
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 9671 byte(s)
Diff to previous 3652
implementation of `is_separate'


Revision 3652 - (view) (annotate) - [select for diffs]
Modified Mon Jan 15 15:32:22 1996 UTC (23 years, 11 months ago) by ericb
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 9566 byte(s)
Diff to previous 3632
new abstractions for system counters (class ids and type ids)


Revision 3632 - (view) (annotate) - [select for diffs]
Modified Mon Jan 15 11:35:14 1996 UTC (23 years, 11 months ago) by guusl
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 9715 byte(s)
Diff to previous 3375
output done through STRUCTURED_TEXT instead of OUTPUT_WINDOW


Revision 3375 - (view) (annotate) - [select for diffs]
Modified Mon Dec 4 11:38:01 1995 UTC (24 years ago) by dinov
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 9710 byte(s)
Diff to previous 3182
cosmetics (indexing, feature clauses, comments)


Revision 3182 - (view) (annotate) - [select for diffs]
Modified Tue Nov 21 16:41:01 1995 UTC (24 years ago) by dinov
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 9624 byte(s)
Diff to previous 3078
reorganization in feature clauses
different output routines
export status


Revision 3078 - (view) (annotate) - [select for diffs]
Modified Mon Oct 30 11:24:52 1995 UTC (24 years, 1 month ago) by dinov
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 9671 byte(s)
Diff to previous 2659
features moved in specific feature clauses (Access, Output, ...)
implementation of the API


Revision 2659 - (view) (annotate) - [select for diffs]
Modified Wed Jul 5 16:25:31 1995 UTC (24 years, 5 months ago) by dewij
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 8796 byte(s)
Diff to previous 1167
abstract parser: <type> => <type_B>


Revision 1167 - (view) (annotate) - [select for diffs]
Modified Tue Oct 4 23:00:57 1994 UTC (25 years, 2 months ago) by grator
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 8792 byte(s)
Diff to previous 605
case stuff


Revision 605 - (view) (annotate) - [select for diffs]
Modified Tue Jun 28 16:58:24 1994 UTC (25 years, 5 months ago) by grator
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 8408 byte(s)
Diff to previous 411
*** empty log message ***


Revision 411 - (view) (annotate) - [select for diffs]
Modified Tue Nov 2 18:51:32 1993 UTC (26 years, 1 month ago) by grator
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 8397 byte(s)
Diff to previous 400
*** empty log message ***


Revision 400 - (view) (annotate) - [select for diffs]
Modified Mon Oct 25 16:53:45 1993 UTC (26 years, 1 month ago) by grator
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 8294 byte(s)
Diff to previous 388
*** empty log message ***


Revision 388 - (view) (annotate) - [select for diffs]
Modified Fri Oct 15 14:29:26 1993 UTC (26 years, 2 months ago) by grator
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 8156 byte(s)
Diff to previous 333
*** empty log message ***


Revision 333 - (view) (annotate) - [select for diffs]
Modified Thu Aug 26 20:25:16 1993 UTC (26 years, 3 months ago) by grator
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 7701 byte(s)
Diff to previous 329
*** empty log message ***


Revision 329 - (view) (annotate) - [select for diffs]
Modified Thu Aug 26 19:17:21 1993 UTC (26 years, 3 months ago) by grator
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 7608 byte(s)
Diff to previous 296
*** empty log message ***


Revision 296 - (view) (annotate) - [select for diffs]
Modified Thu Aug 19 20:09:35 1993 UTC (26 years, 4 months ago) by grator
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 7231 byte(s)
Diff to previous 280
*** empty log message ***


Revision 280 - (view) (annotate) - [select for diffs]
Modified Fri Jul 16 13:31:07 1993 UTC (26 years, 5 months ago) by grator
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 7087 byte(s)
Diff to previous 240
*** empty log message ***


Revision 240 - (view) (annotate) - [select for diffs]
Modified Tue Jun 8 12:44:31 1993 UTC (26 years, 6 months ago) by grator
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 6916 byte(s)
Diff to previous 237
*** empty log message ***


Revision 237 - (view) (annotate) - [select for diffs]
Modified Tue Jun 8 12:23:41 1993 UTC (26 years, 6 months ago) by grator
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 6801 byte(s)
Diff to previous 214
*** empty log message ***


Revision 214 - (view) (annotate) - [select for diffs]
Modified Fri May 28 11:07:19 1993 UTC (26 years, 6 months ago) by grator
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 6905 byte(s)
Diff to previous 186
*** empty log message ***


Revision 186 - (view) (annotate) - [select for diffs]
Modified Mon May 10 17:23:27 1993 UTC (26 years, 7 months ago) by grator
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 6864 byte(s)
Diff to previous 18
*** empty log message ***


Revision 18 - (view) (annotate) - [select for diffs]
Added Fri Mar 12 17:44:01 1993 UTC (26 years, 9 months ago) by grator
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/type_a.e
File length: 6402 byte(s)
Initial revision


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