529 |
local |
local |
530 |
l_cat_result: BOOLEAN |
l_cat_result: BOOLEAN |
531 |
-- l_warning: SOME_TYPE |
-- l_warning: SOME_TYPE |
532 |
|
l_pcat: PCAT |
533 |
do |
do |
534 |
if system.current_class.is_cat_call_detection then |
if system.current_class /= Void and then system.current_class.is_cat_call_detection then |
535 |
|
|
536 |
-- Increase check level. This tells us when we are on the lowest |
-- Increase check level. This tells us when we are on the lowest |
537 |
-- level of checking a generic class so we emit the warning only once |
-- level of checking a generic class so we emit the warning only once |
563 |
-- and it's the first level (i.e. the base class for a generic) |
-- and it's the first level (i.e. the base class for a generic) |
564 |
-- then we emit a warning |
-- then we emit a warning |
565 |
if conformance_check.level = 1 and then (conformance_check.cat_result xor Result) then |
if conformance_check.level = 1 and then (conformance_check.cat_result xor Result) then |
566 |
do_nothing |
create l_pcat |
567 |
-- create l_warning.make (system.current_class, Void) |
context.init_error (l_pcat) |
568 |
-- l_warning.set_result (Result, not Result) |
l_pcat.set_source_type (Current) |
569 |
-- l_warning.set_types (Current, other) |
l_pcat.set_target_type (other) |
570 |
-- error_handler.insert_warning (l_warning) |
if context.current_feature /= Void then |
571 |
-- l_warning.update_statistics |
l_pcat.set_location (context.current_feature.e_feature.ast.start_location) |
572 |
|
end |
573 |
|
error_handler.insert_warning (l_pcat) |
574 |
end |
end |
575 |
conformance_check.level := conformance_check.level - 1 |
conformance_check.level := conformance_check.level - 1 |
576 |
else |
else |