nameExpr is T decl is T: function with parameters signed int returning signed int newExpr is Variable Expression: T: function with parameters signed int returning signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: T: function with parameters signed int returning signed int (types: pointer to function with parameters signed int returning signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): constant expression 3 signed int (types: signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): constant expression 3 signed int (types: signed int ) Environment: working on alternative: Cost ( 0, 0, 0 ): Variable Expression: T: function with parameters signed int returning signed int (types: pointer to function with parameters signed int returning signed int ) Environment: formal type is signed int actual type is signed int need assertions: ============= original indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== ============= new indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== actual expression: constant expression 3 signed int --- results are signed int converting signed int to signed int cost is( 0, 0, 0 ) Case +++++++++++++ formals are: signed int actuals are: constant expression 3 signed int bindings are: cost of conversion is:( 0, 0, 0 ) alternatives before prune: Cost ( 0, 0, 0 ): Application of Variable Expression: T: function with parameters signed int returning signed int to arguments constant expression 3 signed int (types: signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 1 ): Cast of: Application of Variable Expression: T: function with parameters signed int returning signed int to arguments constant expression 3 signed int to: nothing (types: ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination nameExpr is ?=? decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct __anonymous0 _src: instance of struct __anonymous0 returning instance of struct __anonymous0 with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: T: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct __anonymous0 Member Expression, with field: T: signed int from aggregate: Variable Expression: _src: instance of struct __anonymous0 Return Statement, returning: Variable Expression: _src: instance of struct __anonymous0 newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct __anonymous0 _src: instance of struct __anonymous0 returning instance of struct __anonymous0 alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct __anonymous0 _src: instance of struct __anonymous0 returning instance of struct __anonymous0 (types: pointer to function with parameters _dst: pointer to instance of struct __anonymous0 _src: instance of struct __anonymous0 returning instance of struct __anonymous0 ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Member Expression, with field: T: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct __anonymous0 (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Address of: Member Expression, with field: T: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct __anonymous0 (types: pointer to signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Address of: Member Expression, with field: T: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct __anonymous0 (types: pointer to signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Member Expression, with field: T: signed int from aggregate: Variable Expression: _src: instance of struct __anonymous0 (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Member Expression, with field: T: signed int from aggregate: Variable Expression: _src: instance of struct __anonymous0 (types: lvalue signed int ) Environment: working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct __anonymous0 _src: instance of struct __anonymous0 returning instance of struct __anonymous0 (types: pointer to function with parameters _dst: pointer to instance of struct __anonymous0 _src: instance of struct __anonymous0 returning instance of struct __anonymous0 ) Environment: formal type is pointer to instance of struct __anonymous0 actual type is pointer to signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct __anonymous0 (types: lvalue instance of struct __anonymous0 ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Cast of: Variable Expression: _src: instance of struct __anonymous0 to: instance of struct __anonymous0 (types: instance of struct __anonymous0 ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): constant expression 3 signed int (types: signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): constant expression 3 signed int (types: signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 1 ): Cast of: constant expression 3 signed int to: nothing (types: ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): constant expression 3 signed int (types: signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 1 ): Cast of: constant expression 3 signed int to: nothing (types: ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): constant expression 3 signed int (types: signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 1 ): Cast of: constant expression 3 signed int to: nothing (types: ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): constant expression 3 signed int (types: signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 1 ): Cast of: constant expression 3 signed int to: nothing (types: ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): constant expression 10 signed int (types: signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 2 ): Cast of: constant expression 10 signed int to: long unsigned int (types: long unsigned int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination Error: No reasonable alternatives for expression Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: T: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct __anonymous0 Member Expression, with field: T: signed int from aggregate: Variable Expression: _src: instance of struct __anonymous0 Error: No reasonable alternatives for expression Cast of: constant expression 3 signed int to: instance of struct __anonymous0