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

Diff of /branches/eth/eve/Src/Eiffel/API/evaluated_type/like_current.e

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 72954 by alexk, Fri Mar 28 11:47:23 2008 UTC revision 72955 by alexk, Sat Apr 5 07:27:44 2008 UTC
# Line 15  inherit Line 15  inherit
15                          generics, has_associated_class, has_associated_class_type, instantiated_in, duplicate,                          generics, has_associated_class, has_associated_class_type, instantiated_in, duplicate,
16                          is_basic, is_expanded, is_external, is_like_current, is_none, is_reference,                          is_basic, is_expanded, is_external, is_like_current, is_none, is_reference,
17                          meta_type, set_actual_type, evaluated_type_in_descendant, is_tuple,                          meta_type, set_actual_type, evaluated_type_in_descendant, is_tuple,
18                          set_attached_mark, set_detachable_mark, set_is_implicitly_attached, description, c_type, is_explicit,                          set_attached_mark, set_detachable_mark, set_is_implicitly_attached,
19                            unset_is_implicitly_attached, description, c_type, is_explicit,
20                          generated_id, generate_cid, generate_cid_array, generate_cid_init,                          generated_id, generate_cid, generate_cid_array, generate_cid_init,
21                          make_gen_type_byte_code, generate_gen_type_il, internal_is_valid_for_class,                          make_gen_type_byte_code, generate_gen_type_il, internal_is_valid_for_class,
22                          maximum_interval_value, minimum_interval_value, is_optimized_as_frozen,                          maximum_interval_value, minimum_interval_value, is_optimized_as_frozen,
# Line 343  feature {COMPILER_EXPORTER} -- Modificat Line 344  feature {COMPILER_EXPORTER} -- Modificat
344                                          conformance_type := a                                          conformance_type := a
345                                  end                                  end
346                          elseif has_detachable_mark then                          elseif has_detachable_mark then
347                                  if not a.is_expanded and then a.is_attached then                                  if not a.is_expanded and then (a.is_attached or else a.is_implicitly_attached) then
348                                          conformance_type := a.as_detachable                                          conformance_type := a.as_detachable
349                                  else                                  else
350                                          conformance_type := a                                          conformance_type := a
351                                  end                                  end
352                          else                          else
353                                  conformance_type := a                                  if not is_implicitly_attached and then a.is_implicitly_attached then
354                                            conformance_type := a.as_implicitly_detachable
355                                    else
356                                            conformance_type := a
357                                    end
358                          end                          end
359                          actual_type := Current                          actual_type := Current
360                  end                  end
# Line 367  feature {COMPILER_EXPORTER} -- Modificat Line 372  feature {COMPILER_EXPORTER} -- Modificat
372                          -- Set class type declaration as having an explicit detachable mark.                          -- Set class type declaration as having an explicit detachable mark.
373                  do                  do
374                          Precursor                          Precursor
375                          if not is_expanded and then conformance_type.is_attached then                          if not is_expanded and then (conformance_type.is_attached or else conformance_type.is_implicitly_attached) then
376                                  conformance_type := conformance_type.as_detachable                                  conformance_type := conformance_type.as_detachable
377                          end                          end
378                  end                  end
# Line 378  feature {COMPILER_EXPORTER} -- Modificat Line 383  feature {COMPILER_EXPORTER} -- Modificat
383                  do                  do
384                          Precursor                          Precursor
385                          a := conformance_type                          a := conformance_type
386                          if a /= Void and then not a.is_attached then                          if a /= Void and then not a.is_attached and then not a.is_implicitly_attached then
387                                  conformance_type := a.as_implicitly_attached                                  conformance_type := a.as_implicitly_attached
388                          end                          end
389                  end                  end
390    
391            unset_is_implicitly_attached
392                    local
393                            a: like conformance_type
394                    do
395                            Precursor
396                            a := conformance_type
397                            if a /= Void and then not a.is_attached and then a.is_implicitly_attached then
398                                    conformance_type := a.as_implicitly_detachable
399                            end
400                    end
401    
402  feature {COMPILER_EXPORTER} -- Duplication  feature {COMPILER_EXPORTER} -- Duplication
403    
404          duplicate: LIKE_CURRENT          duplicate: LIKE_CURRENT
# Line 423  feature {COMPILER_EXPORTER} -- Primitive Line 439  feature {COMPILER_EXPORTER} -- Primitive
439                                          Result := Result.as_attached                                          Result := Result.as_attached
440                                  end                                  end
441                          elseif has_detachable_mark then                          elseif has_detachable_mark then
442                                  if not Result.is_expanded and then Result.is_attached then                                  if not Result.is_expanded and then (Result.is_attached or else Result.is_implicitly_attached) then
443                                          Result := Result.as_detachable                                          Result := Result.as_detachable
444                                  end                                  end
445                            elseif not is_implicitly_attached and then Result.is_implicitly_attached then
446                                    Result := Result.as_implicitly_detachable
447                          end                          end
448                  end                  end
449    
# Line 456  feature {COMPILER_EXPORTER} -- Primitive Line 474  feature {COMPILER_EXPORTER} -- Primitive
474                                          Result := Result.as_attached                                          Result := Result.as_attached
475                                  end                                  end
476                          elseif has_detachable_mark then                          elseif has_detachable_mark then
477                                  if not Result.is_expanded and then Result.is_attached then                                  if not Result.is_expanded and then (Result.is_attached or else Result.is_implicitly_attached) then
478                                          Result := Result.as_detachable                                          Result := Result.as_detachable
479                                  end                                  end
480                            elseif not is_implicitly_attached and then Result.is_implicitly_attached then
481                                    Result := Result.as_implicitly_detachable
482                          end                          end
483                  end                  end
484    

Legend:
Removed from v.72954  
changed lines
  Added in v.72955

  ViewVC Help
Powered by ViewVC 1.1.23