| 
             
Fix bug where pointer and reference types allow unsound initialization and return.  Fixes #189 
 
There are two instances of the same basic change, which is using conversionCost instead of castCost for resolving... 
A: an InitExpr, always; affects variable initializations 
B: a CastExpr, for type-system-generated casts only; affects function returns 
 
Changing the behaviour of the typechecker on initialization (do A) and cast (do B): 
src/ResolvExpr/AlternativeFinder.cc 
src/SynTree/Expression.h 
testsinit1.* 
 
Making type of string literal consistent with how C defines it (accommodate A): 
src/Parser/ExpressionNode.cc 
 
Making type system happy with incumbent use of void* (accommodate A): 
libcfa/src/concurrency/kernel.cfa 
libcfa/src/containers/list.hfa 
tests/bugs/66.cfa 
tests/avltree/avl1.cfa 
tests/concurrent/signal/block.cfa 
tests/searchsort.cfa 
 
Making type system happy with incumbent plan-9 downcast (accommodate B): 
libcfa/src/containers/list.hfa 
 
Fixing previously incorrect constness of declarations (accommodate A): 
tests/exceptions/defaults.cfa 
libcfa/src/iostream.hfa 
 
Fixing previously incorrect isGenerated classification of casts that desugaring introduces (accommodate B): 
src/Concurrency/Keywords.cc 
src/Concurrency/Waitfor.cc 
 
Working around trac #207 (revealed by A): 
tests/io2.cfa 
 
Working around trac #208 (speculatively created by B): 
libcfa/src/bits/locks.hfa 
libcfa/src/concurrency/preemption.cfa 
 
Misc: 
tests/exceptions/conditional.cfa (accommodate A) 
 
a _msg function for an exception was declared with wrong return type, so it was not compatible for assignment into the vtable instance 
 
 
libcfa/src/stdlib.hfa 
 
the compiler now prohibits a prior attempt to call a nonexistent realloc overload; calling alloc_align in its place 
 
 
           |