nameExpr is ?=? decl is ?=?: forall DT: incomplete type function with parameters pointer to pointer to instance of type DT (not function type) pointer to instance of type DT (not function type) returning pointer to instance of type DT (not function type) newExpr is Variable Expression: ?=?: forall DT: incomplete type function with parameters pointer to pointer to instance of type DT (not function type) pointer to instance of type DT (not function type) returning pointer to instance of type DT (not function type) decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct a_struct _src: instance of struct a_struct returning instance of struct a_struct with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: a: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct a_struct Member Expression, with field: a: signed int from aggregate: Variable Expression: _src: instance of struct a_struct Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: a: char from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct a_struct Member Expression, with field: a: char from aggregate: Variable Expression: _src: instance of struct a_struct Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: a: float from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct a_struct Member Expression, with field: a: float from aggregate: Variable Expression: _src: instance of struct a_struct Return Statement, returning: Variable Expression: _src: instance of struct a_struct newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct a_struct _src: instance of struct a_struct returning instance of struct a_struct decl is ?=?: function with parameters pointer to char char returning char newExpr is Variable Expression: ?=?: function with parameters pointer to char char returning char decl is ?=?: function with parameters pointer to float float returning float newExpr is Variable Expression: ?=?: function with parameters pointer to float float returning float decl is ?=?: function with parameters pointer to signed int signed int returning signed int newExpr is Variable Expression: ?=?: function with parameters pointer to signed int signed int returning signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: ?=?: forall DT: incomplete type function with parameters pointer to pointer to instance of type DT (not function type) pointer to instance of type DT (not function type) returning pointer to instance of type DT (not function type) (types: pointer to forall _0_DT: incomplete type function with parameters pointer to pointer to instance of type _0_DT (not function type) pointer to instance of type _0_DT (not function type) returning pointer to instance of type _0_DT (not function type) ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct a_struct _src: instance of struct a_struct returning instance of struct a_struct (types: pointer to function with parameters _dst: pointer to instance of struct a_struct _src: instance of struct a_struct returning instance of struct a_struct ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: function with parameters pointer to char char returning char (types: pointer to function with parameters pointer to char char returning char ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: function with parameters pointer to float float returning float (types: pointer to function with parameters pointer to float float returning float ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: function with parameters pointer to signed int signed int returning signed int (types: pointer to function with parameters pointer to signed int signed int returning signed int ) Environment: there are 5 alternatives before elimination there are 5 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Member Expression, with field: a: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct a_struct (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: a: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct a_struct (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: a: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct a_struct (types: pointer to signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Member Expression, with field: a: signed int from aggregate: Variable Expression: _src: instance of struct a_struct (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: a: signed int from aggregate: Variable Expression: _src: instance of struct a_struct (types: lvalue signed int ) Environment: working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: function with parameters pointer to signed int signed int returning signed int (types: pointer to function with parameters pointer to signed int signed int returning signed int ) Environment: formal type is pointer to signed int actual type is pointer to signed int formal type is signed int actual type is lvalue signed int need assertions: ============= original indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== ============= new indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: function with parameters pointer to float float returning float (types: pointer to function with parameters pointer to float float returning float ) Environment: formal type is pointer to float actual type is pointer to signed int working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: function with parameters pointer to char char returning char (types: pointer to function with parameters pointer to char char returning char ) Environment: formal type is pointer to char actual type is pointer to signed int working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct a_struct _src: instance of struct a_struct returning instance of struct a_struct (types: pointer to function with parameters _dst: pointer to instance of struct a_struct _src: instance of struct a_struct returning instance of struct a_struct ) Environment: formal type is pointer to instance of struct a_struct actual type is pointer to signed int working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: forall DT: incomplete type function with parameters pointer to pointer to instance of type DT (not function type) pointer to instance of type DT (not function type) returning pointer to instance of type DT (not function type) (types: pointer to forall _0_DT: incomplete type function with parameters pointer to pointer to instance of type _0_DT (not function type) pointer to instance of type _0_DT (not function type) returning pointer to instance of type _0_DT (not function type) ) Environment: formal type is pointer to pointer to instance of type _0_DT (not function type) actual type is pointer to signed int actual expression: Address of: Member Expression, with field: a: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct a_struct --- results are pointer to signed int converting pointer to signed int to pointer to signed int cost is( 0, 0, 0 ) actual expression: Member Expression, with field: a: signed int from aggregate: Variable Expression: _src: instance of struct a_struct --- results are lvalue signed int converting lvalue signed int to signed int cost is( 0, 0, 0 ) Case +++++++++++++ formals are: pointer to signed int signed int actuals are: Address of: Member Expression, with field: a: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct a_struct Member Expression, with field: a: signed int from aggregate: Variable Expression: _src: instance of struct a_struct bindings are: cost of conversion is:( 0, 0, 0 ) alternatives before prune: Cost ( 0, 0, 0 ): Application of Variable Expression: ?=?: function with parameters pointer to signed int signed int returning signed int to arguments Address of: Member Expression, with field: a: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct a_struct Member Expression, with field: a: signed int from aggregate: Variable Expression: _src: instance of struct a_struct (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: ?=?: function with parameters pointer to signed int signed int returning signed int to arguments Address of: Member Expression, with field: a: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct a_struct Member Expression, with field: a: signed int from aggregate: Variable Expression: _src: instance of struct a_struct to: nothing (types: ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination nameExpr is ?=? decl is ?=?: forall DT: incomplete type function with parameters pointer to pointer to instance of type DT (not function type) pointer to instance of type DT (not function type) returning pointer to instance of type DT (not function type) newExpr is Variable Expression: ?=?: forall DT: incomplete type function with parameters pointer to pointer to instance of type DT (not function type) pointer to instance of type DT (not function type) returning pointer to instance of type DT (not function type) decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct a_struct _src: instance of struct a_struct returning instance of struct a_struct with body CompoundStmt Expression Statement: Application of Variable Expression: ?=?: function with parameters pointer to signed int signed int returning signed int to arguments Address of: Member Expression, with field: a: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct a_struct Member Expression, with field: a: signed int from aggregate: Variable Expression: _src: instance of struct a_struct with environment: Types: Non-types: Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: a: char from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct a_struct Member Expression, with field: a: char from aggregate: Variable Expression: _src: instance of struct a_struct Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: a: float from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct a_struct Member Expression, with field: a: float from aggregate: Variable Expression: _src: instance of struct a_struct Return Statement, returning: Variable Expression: _src: instance of struct a_struct newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct a_struct _src: instance of struct a_struct returning instance of struct a_struct decl is ?=?: function with parameters pointer to char char returning char newExpr is Variable Expression: ?=?: function with parameters pointer to char char returning char decl is ?=?: function with parameters pointer to float float returning float newExpr is Variable Expression: ?=?: function with parameters pointer to float float returning float decl is ?=?: function with parameters pointer to signed int signed int returning signed int newExpr is Variable Expression: ?=?: function with parameters pointer to signed int signed int returning signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: ?=?: forall DT: incomplete type function with parameters pointer to pointer to instance of type DT (not function type) pointer to instance of type DT (not function type) returning pointer to instance of type DT (not function type) (types: pointer to forall _0_DT: incomplete type function with parameters pointer to pointer to instance of type _0_DT (not function type) pointer to instance of type _0_DT (not function type) returning pointer to instance of type _0_DT (not function type) ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct a_struct _src: instance of struct a_struct returning instance of struct a_struct (types: pointer to function with parameters _dst: pointer to instance of struct a_struct _src: instance of struct a_struct returning instance of struct a_struct ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: function with parameters pointer to char char returning char (types: pointer to function with parameters pointer to char char returning char ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: function with parameters pointer to float float returning float (types: pointer to function with parameters pointer to float float returning float ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: function with parameters pointer to signed int signed int returning signed int (types: pointer to function with parameters pointer to signed int signed int returning signed int ) Environment: there are 5 alternatives before elimination there are 5 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Member Expression, with field: a: char from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct a_struct (types: lvalue char ) 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: a: char from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct a_struct (types: pointer to char ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Address of: Member Expression, with field: a: char from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct a_struct (types: pointer to char ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Member Expression, with field: a: char from aggregate: Variable Expression: _src: instance of struct a_struct (types: lvalue char ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Member Expression, with field: a: char from aggregate: Variable Expression: _src: instance of struct a_struct (types: lvalue char ) Environment: working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: function with parameters pointer to signed int signed int returning signed int (types: pointer to function with parameters pointer to signed int signed int returning signed int ) Environment: formal type is pointer to signed int actual type is pointer to char working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: function with parameters pointer to float float returning float (types: pointer to function with parameters pointer to float float returning float ) Environment: formal type is pointer to float actual type is pointer to char working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: function with parameters pointer to char char returning char (types: pointer to function with parameters pointer to char char returning char ) Environment: formal type is pointer to char actual type is pointer to char formal type is char actual type is lvalue char need assertions: ============= original indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== ============= new indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct a_struct _src: instance of struct a_struct returning instance of struct a_struct (types: pointer to function with parameters _dst: pointer to instance of struct a_struct _src: instance of struct a_struct returning instance of struct a_struct ) Environment: formal type is pointer to instance of struct a_struct actual type is pointer to char working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: forall DT: incomplete type function with parameters pointer to pointer to instance of type DT (not function type) pointer to instance of type DT (not function type) returning pointer to instance of type DT (not function type) (types: pointer to forall _0_DT: incomplete type function with parameters pointer to pointer to instance of type _0_DT (not function type) pointer to instance of type _0_DT (not function type) returning pointer to instance of type _0_DT (not function type) ) Environment: formal type is pointer to pointer to instance of type _0_DT (not function type) actual type is pointer to char actual expression: Address of: Member Expression, with field: a: char from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct a_struct --- results are pointer to char converting pointer to char to pointer to char cost is( 0, 0, 0 ) actual expression: Member Expression, with field: a: char from aggregate: Variable Expression: _src: instance of struct a_struct --- results are lvalue char converting lvalue char to char cost is( 0, 0, 0 ) Case +++++++++++++ formals are: pointer to char char actuals are: Address of: Member Expression, with field: a: char from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct a_struct Member Expression, with field: a: char from aggregate: Variable Expression: _src: instance of struct a_struct bindings are: cost of conversion is:( 0, 0, 0 ) alternatives before prune: Cost ( 0, 0, 0 ): Application of Variable Expression: ?=?: function with parameters pointer to char char returning char to arguments Address of: Member Expression, with field: a: char from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct a_struct Member Expression, with field: a: char from aggregate: Variable Expression: _src: instance of struct a_struct (types: char ) 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: ?=?: function with parameters pointer to char char returning char to arguments Address of: Member Expression, with field: a: char from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct a_struct Member Expression, with field: a: char from aggregate: Variable Expression: _src: instance of struct a_struct to: nothing (types: ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination nameExpr is ?=? decl is ?=?: forall DT: incomplete type function with parameters pointer to pointer to instance of type DT (not function type) pointer to instance of type DT (not function type) returning pointer to instance of type DT (not function type) newExpr is Variable Expression: ?=?: forall DT: incomplete type function with parameters pointer to pointer to instance of type DT (not function type) pointer to instance of type DT (not function type) returning pointer to instance of type DT (not function type) decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct a_struct _src: instance of struct a_struct returning instance of struct a_struct with body CompoundStmt Expression Statement: Application of Variable Expression: ?=?: function with parameters pointer to signed int signed int returning signed int to arguments Address of: Member Expression, with field: a: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct a_struct Member Expression, with field: a: signed int from aggregate: Variable Expression: _src: instance of struct a_struct with environment: Types: Non-types: Expression Statement: Application of Variable Expression: ?=?: function with parameters pointer to char char returning char to arguments Address of: Member Expression, with field: a: char from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct a_struct Member Expression, with field: a: char from aggregate: Variable Expression: _src: instance of struct a_struct with environment: Types: Non-types: Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: a: float from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct a_struct Member Expression, with field: a: float from aggregate: Variable Expression: _src: instance of struct a_struct Return Statement, returning: Variable Expression: _src: instance of struct a_struct newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct a_struct _src: instance of struct a_struct returning instance of struct a_struct decl is ?=?: function with parameters pointer to char char returning char newExpr is Variable Expression: ?=?: function with parameters pointer to char char returning char decl is ?=?: function with parameters pointer to float float returning float newExpr is Variable Expression: ?=?: function with parameters pointer to float float returning float decl is ?=?: function with parameters pointer to signed int signed int returning signed int newExpr is Variable Expression: ?=?: function with parameters pointer to signed int signed int returning signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: ?=?: forall DT: incomplete type function with parameters pointer to pointer to instance of type DT (not function type) pointer to instance of type DT (not function type) returning pointer to instance of type DT (not function type) (types: pointer to forall _0_DT: incomplete type function with parameters pointer to pointer to instance of type _0_DT (not function type) pointer to instance of type _0_DT (not function type) returning pointer to instance of type _0_DT (not function type) ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct a_struct _src: instance of struct a_struct returning instance of struct a_struct (types: pointer to function with parameters _dst: pointer to instance of struct a_struct _src: instance of struct a_struct returning instance of struct a_struct ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: function with parameters pointer to char char returning char (types: pointer to function with parameters pointer to char char returning char ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: function with parameters pointer to float float returning float (types: pointer to function with parameters pointer to float float returning float ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: function with parameters pointer to signed int signed int returning signed int (types: pointer to function with parameters pointer to signed int signed int returning signed int ) Environment: there are 5 alternatives before elimination there are 5 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Member Expression, with field: a: float from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct a_struct (types: lvalue float ) 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: a: float from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct a_struct (types: pointer to float ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Address of: Member Expression, with field: a: float from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct a_struct (types: pointer to float ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Member Expression, with field: a: float from aggregate: Variable Expression: _src: instance of struct a_struct (types: lvalue float ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Member Expression, with field: a: float from aggregate: Variable Expression: _src: instance of struct a_struct (types: lvalue float ) Environment: working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: function with parameters pointer to signed int signed int returning signed int (types: pointer to function with parameters pointer to signed int signed int returning signed int ) Environment: formal type is pointer to signed int actual type is pointer to float working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: function with parameters pointer to float float returning float (types: pointer to function with parameters pointer to float float returning float ) Environment: formal type is pointer to float actual type is pointer to float formal type is float actual type is lvalue float need assertions: ============= original indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== ============= new indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: function with parameters pointer to char char returning char (types: pointer to function with parameters pointer to char char returning char ) Environment: formal type is pointer to char actual type is pointer to float working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct a_struct _src: instance of struct a_struct returning instance of struct a_struct (types: pointer to function with parameters _dst: pointer to instance of struct a_struct _src: instance of struct a_struct returning instance of struct a_struct ) Environment: formal type is pointer to instance of struct a_struct actual type is pointer to float working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: forall DT: incomplete type function with parameters pointer to pointer to instance of type DT (not function type) pointer to instance of type DT (not function type) returning pointer to instance of type DT (not function type) (types: pointer to forall _0_DT: incomplete type function with parameters pointer to pointer to instance of type _0_DT (not function type) pointer to instance of type _0_DT (not function type) returning pointer to instance of type _0_DT (not function type) ) Environment: formal type is pointer to pointer to instance of type _0_DT (not function type) actual type is pointer to float actual expression: Address of: Member Expression, with field: a: float from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct a_struct --- results are pointer to float converting pointer to float to pointer to float cost is( 0, 0, 0 ) actual expression: Member Expression, with field: a: float from aggregate: Variable Expression: _src: instance of struct a_struct --- results are lvalue float converting lvalue float to float cost is( 0, 0, 0 ) Case +++++++++++++ formals are: pointer to float float actuals are: Address of: Member Expression, with field: a: float from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct a_struct Member Expression, with field: a: float from aggregate: Variable Expression: _src: instance of struct a_struct bindings are: cost of conversion is:( 0, 0, 0 ) alternatives before prune: Cost ( 0, 0, 0 ): Application of Variable Expression: ?=?: function with parameters pointer to float float returning float to arguments Address of: Member Expression, with field: a: float from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct a_struct Member Expression, with field: a: float from aggregate: Variable Expression: _src: instance of struct a_struct (types: float ) 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: ?=?: function with parameters pointer to float float returning float to arguments Address of: Member Expression, with field: a: float from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct a_struct Member Expression, with field: a: float from aggregate: Variable Expression: _src: instance of struct a_struct to: nothing (types: ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct a_struct (types: lvalue instance of struct a_struct ) 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 a_struct to: instance of struct a_struct (types: instance of struct a_struct ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination nameExpr is __builtin_memcpy decl is __builtin_memcpy: function accepting unspecified arguments returning pointer to char newExpr is Variable Expression: __builtin_memcpy: function accepting unspecified arguments returning pointer to char alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: __builtin_memcpy: function accepting unspecified arguments returning pointer to char (types: pointer to function accepting unspecified arguments returning pointer to char ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: _dst: pointer to instance of union b_struct (types: lvalue pointer to instance of union b_struct ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: _dst: pointer to instance of union b_struct (types: lvalue pointer to instance of union b_struct ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: _src: instance of union b_struct (types: lvalue instance of union b_struct ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Address of: Variable Expression: _src: instance of union b_struct (types: pointer to instance of union b_struct ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Address of: Variable Expression: _src: instance of union b_struct (types: pointer to instance of union b_struct ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Sizeof Expression on: instance of union b_struct (types: unsigned int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Sizeof Expression on: instance of union b_struct (types: unsigned int ) Environment: working on alternative: Cost ( 0, 0, 0 ): Variable Expression: __builtin_memcpy: function accepting unspecified arguments returning pointer to char (types: pointer to function accepting unspecified arguments returning pointer to char ) Environment: need assertions: ============= original indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== ============= new indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== actual expression: Variable Expression: _dst: pointer to instance of union b_struct --- results are lvalue pointer to instance of union b_struct actual expression: Address of: Variable Expression: _src: instance of union b_struct --- results are pointer to instance of union b_struct actual expression: Sizeof Expression on: instance of union b_struct --- results are unsigned int Case +++++++++++++ formals are: actuals are: Variable Expression: _dst: pointer to instance of union b_struct Address of: Variable Expression: _src: instance of union b_struct Sizeof Expression on: instance of union b_struct bindings are: cost of conversion is:( 3, 0, 0 ) alternatives before prune: Cost ( 3, 0, 0 ): Application of Variable Expression: __builtin_memcpy: function accepting unspecified arguments returning pointer to char to arguments Variable Expression: _dst: pointer to instance of union b_struct Address of: Variable Expression: _src: instance of union b_struct Sizeof Expression on: instance of union b_struct (types: pointer to char ) 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: __builtin_memcpy: function accepting unspecified arguments returning pointer to char to arguments Variable Expression: _dst: pointer to instance of union b_struct Address of: Variable Expression: _src: instance of union b_struct Sizeof Expression on: instance of union b_struct to: nothing (types: ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: _src: instance of union b_struct (types: lvalue instance of union b_struct ) 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 union b_struct to: instance of union b_struct (types: instance of union b_struct ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination nameExpr is a decl is a: function with parameters char returning nothing newExpr is Variable Expression: a: function with parameters char returning nothing alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: a: function with parameters char returning nothing (types: pointer to function with parameters char returning nothing ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination nameExpr is the_struct decl is the_struct: instance of struct a_struct newExpr is Variable Expression: the_struct: instance of struct a_struct decl is the_struct: instance of union b_struct newExpr is Variable Expression: the_struct: instance of union b_struct alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: the_struct: instance of struct a_struct (types: lvalue instance of struct a_struct ) Environment: Cost ( 0, 0, 0 ): Variable Expression: the_struct: instance of union b_struct (types: lvalue instance of union b_struct ) Environment: there are 2 alternatives before elimination there are 2 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Member Expression, with field: a: pointer to signed int from aggregate: Variable Expression: the_struct: instance of union b_struct (types: lvalue pointer to signed int ) Environment: Cost ( 0, 0, 0 ): Member Expression, with field: a: pointer to char from aggregate: Variable Expression: the_struct: instance of union b_struct (types: lvalue pointer to char ) Environment: Cost ( 0, 0, 0 ): Member Expression, with field: a: pointer to float from aggregate: Variable Expression: the_struct: instance of union b_struct (types: lvalue pointer to float ) Environment: Cost ( 0, 0, 0 ): Member Expression, with field: a: signed int from aggregate: Variable Expression: the_struct: instance of struct a_struct (types: lvalue signed int ) Environment: Cost ( 0, 0, 0 ): Member Expression, with field: a: char from aggregate: Variable Expression: the_struct: instance of struct a_struct (types: lvalue char ) Environment: Cost ( 0, 0, 0 ): Member Expression, with field: a: float from aggregate: Variable Expression: the_struct: instance of struct a_struct (types: lvalue float ) Environment: there are 6 alternatives before elimination there are 6 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Member Expression, with field: a: signed int from aggregate: Variable Expression: the_struct: instance of struct a_struct (types: lvalue signed int ) Environment: Cost ( 0, 0, 0 ): Member Expression, with field: a: float from aggregate: Variable Expression: the_struct: instance of struct a_struct (types: lvalue float ) Environment: Cost ( 0, 0, 0 ): Member Expression, with field: a: char from aggregate: Variable Expression: the_struct: instance of struct a_struct (types: lvalue char ) Environment: Cost ( 0, 0, 0 ): Member Expression, with field: a: pointer to signed int from aggregate: Variable Expression: the_struct: instance of union b_struct (types: lvalue pointer to signed int ) Environment: Cost ( 0, 0, 0 ): Member Expression, with field: a: pointer to float from aggregate: Variable Expression: the_struct: instance of union b_struct (types: lvalue pointer to float ) Environment: Cost ( 0, 0, 0 ): Member Expression, with field: a: pointer to char from aggregate: Variable Expression: the_struct: instance of union b_struct (types: lvalue pointer to char ) Environment: working on alternative: Cost ( 0, 0, 0 ): Variable Expression: a: function with parameters char returning nothing (types: pointer to function with parameters char returning nothing ) Environment: formal type is char actual type is lvalue signed int need assertions: ============= original indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== ============= new indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== formal type is char actual type is lvalue float need assertions: ============= original indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== ============= new indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== formal type is char actual type is lvalue char need assertions: ============= original indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== ============= new indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== formal type is char actual type is lvalue pointer to signed int formal type is char actual type is lvalue pointer to float formal type is char actual type is lvalue pointer to char actual expression: Member Expression, with field: a: signed int from aggregate: Variable Expression: the_struct: instance of struct a_struct --- results are lvalue signed int converting lvalue signed int to char cost is( 1, 0, 0 ) Case +++++++++++++ formals are: char actuals are: Cast of: Member Expression, with field: a: signed int from aggregate: Variable Expression: the_struct: instance of struct a_struct to: char bindings are: cost of conversion is:( 1, 0, 0 ) actual expression: Member Expression, with field: a: float from aggregate: Variable Expression: the_struct: instance of struct a_struct --- results are lvalue float converting lvalue float to char cost is( 1, 0, 0 ) Case +++++++++++++ formals are: char actuals are: Cast of: Member Expression, with field: a: float from aggregate: Variable Expression: the_struct: instance of struct a_struct to: char bindings are: cost of conversion is:( 1, 0, 0 ) actual expression: Member Expression, with field: a: char from aggregate: Variable Expression: the_struct: instance of struct a_struct --- results are lvalue char converting lvalue char to char cost is( 0, 0, 0 ) Case +++++++++++++ formals are: char actuals are: Member Expression, with field: a: char from aggregate: Variable Expression: the_struct: instance of struct a_struct bindings are: cost of conversion is:( 0, 0, 0 ) alternatives before prune: Cost ( 1, 0, 0 ): Application of Variable Expression: a: function with parameters char returning nothing to arguments Cast of: Member Expression, with field: a: signed int from aggregate: Variable Expression: the_struct: instance of struct a_struct to: char (types: ) Environment: Cost ( 1, 0, 0 ): Application of Variable Expression: a: function with parameters char returning nothing to arguments Cast of: Member Expression, with field: a: float from aggregate: Variable Expression: the_struct: instance of struct a_struct to: char (types: ) Environment: Cost ( 0, 0, 0 ): Application of Variable Expression: a: function with parameters char returning nothing to arguments Member Expression, with field: a: char from aggregate: Variable Expression: the_struct: instance of struct a_struct (types: ) Environment: marking ambiguous cost ( 0, 0, 0 ) beats ( 1, 0, 0 ) there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Cast of: Application of Variable Expression: a: function with parameters char returning nothing to arguments Member Expression, with field: a: char from aggregate: Variable Expression: the_struct: instance of struct a_struct to: nothing (types: ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination nameExpr is b decl is b: function with parameters signed int returning nothing newExpr is Variable Expression: b: function with parameters signed int returning nothing alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: b: function with parameters signed int returning nothing (types: pointer to function with parameters signed int returning nothing ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination nameExpr is the_struct decl is the_struct: instance of struct a_struct newExpr is Variable Expression: the_struct: instance of struct a_struct decl is the_struct: instance of union b_struct newExpr is Variable Expression: the_struct: instance of union b_struct alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: the_struct: instance of struct a_struct (types: lvalue instance of struct a_struct ) Environment: Cost ( 0, 0, 0 ): Variable Expression: the_struct: instance of union b_struct (types: lvalue instance of union b_struct ) Environment: there are 2 alternatives before elimination there are 2 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Member Expression, with field: a: pointer to signed int from aggregate: Variable Expression: the_struct: instance of union b_struct (types: lvalue pointer to signed int ) Environment: Cost ( 0, 0, 0 ): Member Expression, with field: a: pointer to char from aggregate: Variable Expression: the_struct: instance of union b_struct (types: lvalue pointer to char ) Environment: Cost ( 0, 0, 0 ): Member Expression, with field: a: pointer to float from aggregate: Variable Expression: the_struct: instance of union b_struct (types: lvalue pointer to float ) Environment: Cost ( 0, 0, 0 ): Member Expression, with field: a: signed int from aggregate: Variable Expression: the_struct: instance of struct a_struct (types: lvalue signed int ) Environment: Cost ( 0, 0, 0 ): Member Expression, with field: a: char from aggregate: Variable Expression: the_struct: instance of struct a_struct (types: lvalue char ) Environment: Cost ( 0, 0, 0 ): Member Expression, with field: a: float from aggregate: Variable Expression: the_struct: instance of struct a_struct (types: lvalue float ) Environment: there are 6 alternatives before elimination there are 6 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Member Expression, with field: a: signed int from aggregate: Variable Expression: the_struct: instance of struct a_struct (types: lvalue signed int ) Environment: Cost ( 0, 0, 0 ): Member Expression, with field: a: float from aggregate: Variable Expression: the_struct: instance of struct a_struct (types: lvalue float ) Environment: Cost ( 0, 0, 0 ): Member Expression, with field: a: char from aggregate: Variable Expression: the_struct: instance of struct a_struct (types: lvalue char ) Environment: Cost ( 0, 0, 0 ): Member Expression, with field: a: pointer to signed int from aggregate: Variable Expression: the_struct: instance of union b_struct (types: lvalue pointer to signed int ) Environment: Cost ( 0, 0, 0 ): Member Expression, with field: a: pointer to float from aggregate: Variable Expression: the_struct: instance of union b_struct (types: lvalue pointer to float ) Environment: Cost ( 0, 0, 0 ): Member Expression, with field: a: pointer to char from aggregate: Variable Expression: the_struct: instance of union b_struct (types: lvalue pointer to char ) Environment: working on alternative: Cost ( 0, 0, 0 ): Variable Expression: b: function with parameters signed int returning nothing (types: pointer to function with parameters signed int returning nothing ) Environment: formal type is signed int actual type is lvalue signed int need assertions: ============= original indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== ============= new indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== formal type is signed int actual type is lvalue float need assertions: ============= original indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== ============= new indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== formal type is signed int actual type is lvalue char need assertions: ============= original indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== ============= new indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== formal type is signed int actual type is lvalue pointer to signed int formal type is signed int actual type is lvalue pointer to float formal type is signed int actual type is lvalue pointer to char actual expression: Member Expression, with field: a: signed int from aggregate: Variable Expression: the_struct: instance of struct a_struct --- results are lvalue signed int converting lvalue signed int to signed int cost is( 0, 0, 0 ) Case +++++++++++++ formals are: signed int actuals are: Member Expression, with field: a: signed int from aggregate: Variable Expression: the_struct: instance of struct a_struct bindings are: cost of conversion is:( 0, 0, 0 ) actual expression: Member Expression, with field: a: float from aggregate: Variable Expression: the_struct: instance of struct a_struct --- results are lvalue float converting lvalue float to signed int cost is( 1, 0, 0 ) Case +++++++++++++ formals are: signed int actuals are: Cast of: Member Expression, with field: a: float from aggregate: Variable Expression: the_struct: instance of struct a_struct to: signed int bindings are: cost of conversion is:( 1, 0, 0 ) actual expression: Member Expression, with field: a: char from aggregate: Variable Expression: the_struct: instance of struct a_struct --- results are lvalue char converting lvalue char to signed int cost is( 0, 0, 4 ) Case +++++++++++++ formals are: signed int actuals are: Cast of: Member Expression, with field: a: char from aggregate: Variable Expression: the_struct: instance of struct a_struct to: signed int bindings are: cost of conversion is:( 0, 0, 4 ) alternatives before prune: Cost ( 0, 0, 0 ): Application of Variable Expression: b: function with parameters signed int returning nothing to arguments Member Expression, with field: a: signed int from aggregate: Variable Expression: the_struct: instance of struct a_struct (types: ) Environment: Cost ( 1, 0, 0 ): Application of Variable Expression: b: function with parameters signed int returning nothing to arguments Cast of: Member Expression, with field: a: float from aggregate: Variable Expression: the_struct: instance of struct a_struct to: signed int (types: ) Environment: Cost ( 0, 0, 4 ): Application of Variable Expression: b: function with parameters signed int returning nothing to arguments Cast of: Member Expression, with field: a: char from aggregate: Variable Expression: the_struct: instance of struct a_struct to: signed int (types: ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Cast of: Application of Variable Expression: b: function with parameters signed int returning nothing to arguments Member Expression, with field: a: signed int from aggregate: Variable Expression: the_struct: instance of struct a_struct to: nothing (types: ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination nameExpr is c decl is c: function with parameters pointer to signed int returning nothing newExpr is Variable Expression: c: function with parameters pointer to signed int returning nothing alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: c: function with parameters pointer to signed int returning nothing (types: pointer to function with parameters pointer to signed int returning nothing ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination nameExpr is the_struct decl is the_struct: instance of struct a_struct newExpr is Variable Expression: the_struct: instance of struct a_struct decl is the_struct: instance of union b_struct newExpr is Variable Expression: the_struct: instance of union b_struct alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: the_struct: instance of struct a_struct (types: lvalue instance of struct a_struct ) Environment: Cost ( 0, 0, 0 ): Variable Expression: the_struct: instance of union b_struct (types: lvalue instance of union b_struct ) Environment: there are 2 alternatives before elimination there are 2 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Member Expression, with field: a: pointer to signed int from aggregate: Variable Expression: the_struct: instance of union b_struct (types: lvalue pointer to signed int ) Environment: Cost ( 0, 0, 0 ): Member Expression, with field: a: pointer to char from aggregate: Variable Expression: the_struct: instance of union b_struct (types: lvalue pointer to char ) Environment: Cost ( 0, 0, 0 ): Member Expression, with field: a: pointer to float from aggregate: Variable Expression: the_struct: instance of union b_struct (types: lvalue pointer to float ) Environment: Cost ( 0, 0, 0 ): Member Expression, with field: a: signed int from aggregate: Variable Expression: the_struct: instance of struct a_struct (types: lvalue signed int ) Environment: Cost ( 0, 0, 0 ): Member Expression, with field: a: char from aggregate: Variable Expression: the_struct: instance of struct a_struct (types: lvalue char ) Environment: Cost ( 0, 0, 0 ): Member Expression, with field: a: float from aggregate: Variable Expression: the_struct: instance of struct a_struct (types: lvalue float ) Environment: there are 6 alternatives before elimination there are 6 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Member Expression, with field: a: signed int from aggregate: Variable Expression: the_struct: instance of struct a_struct (types: lvalue signed int ) Environment: Cost ( 0, 0, 0 ): Member Expression, with field: a: float from aggregate: Variable Expression: the_struct: instance of struct a_struct (types: lvalue float ) Environment: Cost ( 0, 0, 0 ): Member Expression, with field: a: char from aggregate: Variable Expression: the_struct: instance of struct a_struct (types: lvalue char ) Environment: Cost ( 0, 0, 0 ): Member Expression, with field: a: pointer to signed int from aggregate: Variable Expression: the_struct: instance of union b_struct (types: lvalue pointer to signed int ) Environment: Cost ( 0, 0, 0 ): Member Expression, with field: a: pointer to float from aggregate: Variable Expression: the_struct: instance of union b_struct (types: lvalue pointer to float ) Environment: Cost ( 0, 0, 0 ): Member Expression, with field: a: pointer to char from aggregate: Variable Expression: the_struct: instance of union b_struct (types: lvalue pointer to char ) Environment: working on alternative: Cost ( 0, 0, 0 ): Variable Expression: c: function with parameters pointer to signed int returning nothing (types: pointer to function with parameters pointer to signed int returning nothing ) Environment: formal type is pointer to signed int actual type is lvalue signed int formal type is pointer to signed int actual type is lvalue float formal type is pointer to signed int actual type is lvalue char formal type is pointer to signed int actual type is lvalue pointer to signed int need assertions: ============= original indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== ============= new indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== formal type is pointer to signed int actual type is lvalue pointer to float formal type is pointer to signed int actual type is lvalue pointer to char actual expression: Member Expression, with field: a: pointer to signed int from aggregate: Variable Expression: the_struct: instance of union b_struct --- results are lvalue pointer to signed int converting lvalue pointer to signed int to pointer to signed int cost is( 0, 0, 0 ) Case +++++++++++++ formals are: pointer to signed int actuals are: Member Expression, with field: a: pointer to signed int from aggregate: Variable Expression: the_struct: instance of union b_struct bindings are: cost of conversion is:( 0, 0, 0 ) alternatives before prune: Cost ( 0, 0, 0 ): Application of Variable Expression: c: function with parameters pointer to signed int returning nothing to arguments Member Expression, with field: a: pointer to signed int from aggregate: Variable Expression: the_struct: instance of union b_struct (types: ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Cast of: Application of Variable Expression: c: function with parameters pointer to signed int returning nothing to arguments Member Expression, with field: a: pointer to signed int from aggregate: Variable Expression: the_struct: instance of union b_struct to: nothing (types: ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination nameExpr is d decl is d: function with parameters pointer to float returning nothing newExpr is Variable Expression: d: function with parameters pointer to float returning nothing alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: d: function with parameters pointer to float returning nothing (types: pointer to function with parameters pointer to float returning nothing ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination nameExpr is the_struct decl is the_struct: instance of struct a_struct newExpr is Variable Expression: the_struct: instance of struct a_struct decl is the_struct: instance of union b_struct newExpr is Variable Expression: the_struct: instance of union b_struct alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: the_struct: instance of struct a_struct (types: lvalue instance of struct a_struct ) Environment: Cost ( 0, 0, 0 ): Variable Expression: the_struct: instance of union b_struct (types: lvalue instance of union b_struct ) Environment: there are 2 alternatives before elimination there are 2 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Member Expression, with field: a: pointer to signed int from aggregate: Variable Expression: the_struct: instance of union b_struct (types: lvalue pointer to signed int ) Environment: Cost ( 0, 0, 0 ): Member Expression, with field: a: pointer to char from aggregate: Variable Expression: the_struct: instance of union b_struct (types: lvalue pointer to char ) Environment: Cost ( 0, 0, 0 ): Member Expression, with field: a: pointer to float from aggregate: Variable Expression: the_struct: instance of union b_struct (types: lvalue pointer to float ) Environment: Cost ( 0, 0, 0 ): Member Expression, with field: a: signed int from aggregate: Variable Expression: the_struct: instance of struct a_struct (types: lvalue signed int ) Environment: Cost ( 0, 0, 0 ): Member Expression, with field: a: char from aggregate: Variable Expression: the_struct: instance of struct a_struct (types: lvalue char ) Environment: Cost ( 0, 0, 0 ): Member Expression, with field: a: float from aggregate: Variable Expression: the_struct: instance of struct a_struct (types: lvalue float ) Environment: there are 6 alternatives before elimination there are 6 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Member Expression, with field: a: signed int from aggregate: Variable Expression: the_struct: instance of struct a_struct (types: lvalue signed int ) Environment: Cost ( 0, 0, 0 ): Member Expression, with field: a: float from aggregate: Variable Expression: the_struct: instance of struct a_struct (types: lvalue float ) Environment: Cost ( 0, 0, 0 ): Member Expression, with field: a: char from aggregate: Variable Expression: the_struct: instance of struct a_struct (types: lvalue char ) Environment: Cost ( 0, 0, 0 ): Member Expression, with field: a: pointer to signed int from aggregate: Variable Expression: the_struct: instance of union b_struct (types: lvalue pointer to signed int ) Environment: Cost ( 0, 0, 0 ): Member Expression, with field: a: pointer to float from aggregate: Variable Expression: the_struct: instance of union b_struct (types: lvalue pointer to float ) Environment: Cost ( 0, 0, 0 ): Member Expression, with field: a: pointer to char from aggregate: Variable Expression: the_struct: instance of union b_struct (types: lvalue pointer to char ) Environment: working on alternative: Cost ( 0, 0, 0 ): Variable Expression: d: function with parameters pointer to float returning nothing (types: pointer to function with parameters pointer to float returning nothing ) Environment: formal type is pointer to float actual type is lvalue signed int formal type is pointer to float actual type is lvalue float formal type is pointer to float actual type is lvalue char formal type is pointer to float actual type is lvalue pointer to signed int formal type is pointer to float actual type is lvalue pointer to float need assertions: ============= original indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== ============= new indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== formal type is pointer to float actual type is lvalue pointer to char actual expression: Member Expression, with field: a: pointer to float from aggregate: Variable Expression: the_struct: instance of union b_struct --- results are lvalue pointer to float converting lvalue pointer to float to pointer to float cost is( 0, 0, 0 ) Case +++++++++++++ formals are: pointer to float actuals are: Member Expression, with field: a: pointer to float from aggregate: Variable Expression: the_struct: instance of union b_struct bindings are: cost of conversion is:( 0, 0, 0 ) alternatives before prune: Cost ( 0, 0, 0 ): Application of Variable Expression: d: function with parameters pointer to float returning nothing to arguments Member Expression, with field: a: pointer to float from aggregate: Variable Expression: the_struct: instance of union b_struct (types: ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Cast of: Application of Variable Expression: d: function with parameters pointer to float returning nothing to arguments Member Expression, with field: a: pointer to float from aggregate: Variable Expression: the_struct: instance of union b_struct to: nothing (types: ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination nameExpr is ?=? decl is ?=?: forall DT: incomplete type function with parameters pointer to pointer to instance of type DT (not function type) pointer to instance of type DT (not function type) returning pointer to instance of type DT (not function type) newExpr is Variable Expression: ?=?: forall DT: incomplete type function with parameters pointer to pointer to instance of type DT (not function type) pointer to instance of type DT (not function type) returning pointer to instance of type DT (not function type) decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct a_struct _src: instance of struct a_struct returning instance of struct a_struct with body CompoundStmt Expression Statement: Application of Variable Expression: ?=?: function with parameters pointer to signed int signed int returning signed int to arguments Address of: Member Expression, with field: a: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct a_struct Member Expression, with field: a: signed int from aggregate: Variable Expression: _src: instance of struct a_struct with environment: Types: Non-types: Expression Statement: Application of Variable Expression: ?=?: function with parameters pointer to char char returning char to arguments Address of: Member Expression, with field: a: char from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct a_struct Member Expression, with field: a: char from aggregate: Variable Expression: _src: instance of struct a_struct with environment: Types: Non-types: Expression Statement: Application of Variable Expression: ?=?: function with parameters pointer to float float returning float to arguments Address of: Member Expression, with field: a: float from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct a_struct Member Expression, with field: a: float from aggregate: Variable Expression: _src: instance of struct a_struct with environment: Types: Non-types: Return Statement, returning: Cast of: Variable Expression: _src: instance of struct a_struct to: instance of struct a_struct with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct a_struct _src: instance of struct a_struct returning instance of struct a_struct decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct c_struct _src: instance of struct c_struct returning instance of struct c_struct with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct c_struct Member Expression, with field: signed int from aggregate: Variable Expression: _src: instance of struct c_struct Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: char from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct c_struct Member Expression, with field: char from aggregate: Variable Expression: _src: instance of struct c_struct Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: float from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct c_struct Member Expression, with field: float from aggregate: Variable Expression: _src: instance of struct c_struct Return Statement, returning: Variable Expression: _src: instance of struct c_struct newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct c_struct _src: instance of struct c_struct returning instance of struct c_struct decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of union b_struct _src: instance of union b_struct returning instance of union b_struct with body CompoundStmt Expression Statement: Application of Variable Expression: __builtin_memcpy: function accepting unspecified arguments returning pointer to char to arguments Variable Expression: _dst: pointer to instance of union b_struct Address of: Variable Expression: _src: instance of union b_struct Sizeof Expression on: instance of union b_struct with environment: Types: Non-types: Return Statement, returning: Cast of: Variable Expression: _src: instance of union b_struct to: instance of union b_struct with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of union b_struct _src: instance of union b_struct returning instance of union b_struct decl is ?=?: function with parameters pointer to char char returning char newExpr is Variable Expression: ?=?: function with parameters pointer to char char returning char decl is ?=?: function with parameters pointer to float float returning float newExpr is Variable Expression: ?=?: function with parameters pointer to float float returning float decl is ?=?: function with parameters pointer to signed int signed int returning signed int newExpr is Variable Expression: ?=?: function with parameters pointer to signed int signed int returning signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: ?=?: forall DT: incomplete type function with parameters pointer to pointer to instance of type DT (not function type) pointer to instance of type DT (not function type) returning pointer to instance of type DT (not function type) (types: pointer to forall _0_DT: incomplete type function with parameters pointer to pointer to instance of type _0_DT (not function type) pointer to instance of type _0_DT (not function type) returning pointer to instance of type _0_DT (not function type) ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct a_struct _src: instance of struct a_struct returning instance of struct a_struct (types: pointer to function with parameters _dst: pointer to instance of struct a_struct _src: instance of struct a_struct returning instance of struct a_struct ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct c_struct _src: instance of struct c_struct returning instance of struct c_struct (types: pointer to function with parameters _dst: pointer to instance of struct c_struct _src: instance of struct c_struct returning instance of struct c_struct ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of union b_struct _src: instance of union b_struct returning instance of union b_struct (types: pointer to function with parameters _dst: pointer to instance of union b_struct _src: instance of union b_struct returning instance of union b_struct ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: function with parameters pointer to char char returning char (types: pointer to function with parameters pointer to char char returning char ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: function with parameters pointer to float float returning float (types: pointer to function with parameters pointer to float float returning float ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: function with parameters pointer to signed int signed int returning signed int (types: pointer to function with parameters pointer to signed int signed int returning signed int ) Environment: there are 7 alternatives before elimination there are 7 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Member Expression, with field: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct c_struct (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: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct c_struct (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: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct c_struct (types: pointer to signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Member Expression, with field: signed int from aggregate: Variable Expression: _src: instance of struct c_struct (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: signed int from aggregate: Variable Expression: _src: instance of struct c_struct (types: lvalue signed int ) Environment: working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: function with parameters pointer to signed int signed int returning signed int (types: pointer to function with parameters pointer to signed int signed int returning signed int ) Environment: formal type is pointer to signed int actual type is pointer to signed int formal type is signed int actual type is lvalue signed int need assertions: ============= original indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== ============= new indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: function with parameters pointer to float float returning float (types: pointer to function with parameters pointer to float float returning float ) Environment: formal type is pointer to float actual type is pointer to signed int working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: function with parameters pointer to char char returning char (types: pointer to function with parameters pointer to char char returning char ) Environment: formal type is pointer to char actual type is pointer to signed int working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of union b_struct _src: instance of union b_struct returning instance of union b_struct (types: pointer to function with parameters _dst: pointer to instance of union b_struct _src: instance of union b_struct returning instance of union b_struct ) Environment: formal type is pointer to instance of union b_struct actual type is pointer to signed int working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct c_struct _src: instance of struct c_struct returning instance of struct c_struct (types: pointer to function with parameters _dst: pointer to instance of struct c_struct _src: instance of struct c_struct returning instance of struct c_struct ) Environment: formal type is pointer to instance of struct c_struct actual type is pointer to signed int working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct a_struct _src: instance of struct a_struct returning instance of struct a_struct (types: pointer to function with parameters _dst: pointer to instance of struct a_struct _src: instance of struct a_struct returning instance of struct a_struct ) Environment: formal type is pointer to instance of struct a_struct actual type is pointer to signed int working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: forall DT: incomplete type function with parameters pointer to pointer to instance of type DT (not function type) pointer to instance of type DT (not function type) returning pointer to instance of type DT (not function type) (types: pointer to forall _0_DT: incomplete type function with parameters pointer to pointer to instance of type _0_DT (not function type) pointer to instance of type _0_DT (not function type) returning pointer to instance of type _0_DT (not function type) ) Environment: formal type is pointer to pointer to instance of type _0_DT (not function type) actual type is pointer to signed int actual expression: Address of: Member Expression, with field: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct c_struct --- results are pointer to signed int converting pointer to signed int to pointer to signed int cost is( 0, 0, 0 ) actual expression: Member Expression, with field: signed int from aggregate: Variable Expression: _src: instance of struct c_struct --- results are lvalue signed int converting lvalue signed int to signed int cost is( 0, 0, 0 ) Case +++++++++++++ formals are: pointer to signed int signed int actuals are: Address of: Member Expression, with field: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct c_struct Member Expression, with field: signed int from aggregate: Variable Expression: _src: instance of struct c_struct bindings are: cost of conversion is:( 0, 0, 0 ) alternatives before prune: Cost ( 0, 0, 0 ): Application of Variable Expression: ?=?: function with parameters pointer to signed int signed int returning signed int to arguments Address of: Member Expression, with field: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct c_struct Member Expression, with field: signed int from aggregate: Variable Expression: _src: instance of struct c_struct (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: ?=?: function with parameters pointer to signed int signed int returning signed int to arguments Address of: Member Expression, with field: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct c_struct Member Expression, with field: signed int from aggregate: Variable Expression: _src: instance of struct c_struct to: nothing (types: ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination nameExpr is ?=? decl is ?=?: forall DT: incomplete type function with parameters pointer to pointer to instance of type DT (not function type) pointer to instance of type DT (not function type) returning pointer to instance of type DT (not function type) newExpr is Variable Expression: ?=?: forall DT: incomplete type function with parameters pointer to pointer to instance of type DT (not function type) pointer to instance of type DT (not function type) returning pointer to instance of type DT (not function type) decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct a_struct _src: instance of struct a_struct returning instance of struct a_struct with body CompoundStmt Expression Statement: Application of Variable Expression: ?=?: function with parameters pointer to signed int signed int returning signed int to arguments Address of: Member Expression, with field: a: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct a_struct Member Expression, with field: a: signed int from aggregate: Variable Expression: _src: instance of struct a_struct with environment: Types: Non-types: Expression Statement: Application of Variable Expression: ?=?: function with parameters pointer to char char returning char to arguments Address of: Member Expression, with field: a: char from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct a_struct Member Expression, with field: a: char from aggregate: Variable Expression: _src: instance of struct a_struct with environment: Types: Non-types: Expression Statement: Application of Variable Expression: ?=?: function with parameters pointer to float float returning float to arguments Address of: Member Expression, with field: a: float from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct a_struct Member Expression, with field: a: float from aggregate: Variable Expression: _src: instance of struct a_struct with environment: Types: Non-types: Return Statement, returning: Cast of: Variable Expression: _src: instance of struct a_struct to: instance of struct a_struct with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct a_struct _src: instance of struct a_struct returning instance of struct a_struct decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct c_struct _src: instance of struct c_struct returning instance of struct c_struct with body CompoundStmt Expression Statement: Application of Variable Expression: ?=?: function with parameters pointer to signed int signed int returning signed int to arguments Address of: Member Expression, with field: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct c_struct Member Expression, with field: signed int from aggregate: Variable Expression: _src: instance of struct c_struct with environment: Types: Non-types: Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: char from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct c_struct Member Expression, with field: char from aggregate: Variable Expression: _src: instance of struct c_struct Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: float from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct c_struct Member Expression, with field: float from aggregate: Variable Expression: _src: instance of struct c_struct Return Statement, returning: Variable Expression: _src: instance of struct c_struct newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct c_struct _src: instance of struct c_struct returning instance of struct c_struct decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of union b_struct _src: instance of union b_struct returning instance of union b_struct with body CompoundStmt Expression Statement: Application of Variable Expression: __builtin_memcpy: function accepting unspecified arguments returning pointer to char to arguments Variable Expression: _dst: pointer to instance of union b_struct Address of: Variable Expression: _src: instance of union b_struct Sizeof Expression on: instance of union b_struct with environment: Types: Non-types: Return Statement, returning: Cast of: Variable Expression: _src: instance of union b_struct to: instance of union b_struct with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of union b_struct _src: instance of union b_struct returning instance of union b_struct decl is ?=?: function with parameters pointer to char char returning char newExpr is Variable Expression: ?=?: function with parameters pointer to char char returning char decl is ?=?: function with parameters pointer to float float returning float newExpr is Variable Expression: ?=?: function with parameters pointer to float float returning float decl is ?=?: function with parameters pointer to signed int signed int returning signed int newExpr is Variable Expression: ?=?: function with parameters pointer to signed int signed int returning signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: ?=?: forall DT: incomplete type function with parameters pointer to pointer to instance of type DT (not function type) pointer to instance of type DT (not function type) returning pointer to instance of type DT (not function type) (types: pointer to forall _0_DT: incomplete type function with parameters pointer to pointer to instance of type _0_DT (not function type) pointer to instance of type _0_DT (not function type) returning pointer to instance of type _0_DT (not function type) ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct a_struct _src: instance of struct a_struct returning instance of struct a_struct (types: pointer to function with parameters _dst: pointer to instance of struct a_struct _src: instance of struct a_struct returning instance of struct a_struct ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct c_struct _src: instance of struct c_struct returning instance of struct c_struct (types: pointer to function with parameters _dst: pointer to instance of struct c_struct _src: instance of struct c_struct returning instance of struct c_struct ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of union b_struct _src: instance of union b_struct returning instance of union b_struct (types: pointer to function with parameters _dst: pointer to instance of union b_struct _src: instance of union b_struct returning instance of union b_struct ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: function with parameters pointer to char char returning char (types: pointer to function with parameters pointer to char char returning char ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: function with parameters pointer to float float returning float (types: pointer to function with parameters pointer to float float returning float ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: function with parameters pointer to signed int signed int returning signed int (types: pointer to function with parameters pointer to signed int signed int returning signed int ) Environment: there are 7 alternatives before elimination there are 7 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Member Expression, with field: char from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct c_struct (types: lvalue char ) 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: char from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct c_struct (types: pointer to char ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Address of: Member Expression, with field: char from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct c_struct (types: pointer to char ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Member Expression, with field: char from aggregate: Variable Expression: _src: instance of struct c_struct (types: lvalue char ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Member Expression, with field: char from aggregate: Variable Expression: _src: instance of struct c_struct (types: lvalue char ) Environment: working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: function with parameters pointer to signed int signed int returning signed int (types: pointer to function with parameters pointer to signed int signed int returning signed int ) Environment: formal type is pointer to signed int actual type is pointer to char working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: function with parameters pointer to float float returning float (types: pointer to function with parameters pointer to float float returning float ) Environment: formal type is pointer to float actual type is pointer to char working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: function with parameters pointer to char char returning char (types: pointer to function with parameters pointer to char char returning char ) Environment: formal type is pointer to char actual type is pointer to char formal type is char actual type is lvalue char need assertions: ============= original indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== ============= new indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of union b_struct _src: instance of union b_struct returning instance of union b_struct (types: pointer to function with parameters _dst: pointer to instance of union b_struct _src: instance of union b_struct returning instance of union b_struct ) Environment: formal type is pointer to instance of union b_struct actual type is pointer to char working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct c_struct _src: instance of struct c_struct returning instance of struct c_struct (types: pointer to function with parameters _dst: pointer to instance of struct c_struct _src: instance of struct c_struct returning instance of struct c_struct ) Environment: formal type is pointer to instance of struct c_struct actual type is pointer to char working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct a_struct _src: instance of struct a_struct returning instance of struct a_struct (types: pointer to function with parameters _dst: pointer to instance of struct a_struct _src: instance of struct a_struct returning instance of struct a_struct ) Environment: formal type is pointer to instance of struct a_struct actual type is pointer to char working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: forall DT: incomplete type function with parameters pointer to pointer to instance of type DT (not function type) pointer to instance of type DT (not function type) returning pointer to instance of type DT (not function type) (types: pointer to forall _0_DT: incomplete type function with parameters pointer to pointer to instance of type _0_DT (not function type) pointer to instance of type _0_DT (not function type) returning pointer to instance of type _0_DT (not function type) ) Environment: formal type is pointer to pointer to instance of type _0_DT (not function type) actual type is pointer to char actual expression: Address of: Member Expression, with field: char from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct c_struct --- results are pointer to char converting pointer to char to pointer to char cost is( 0, 0, 0 ) actual expression: Member Expression, with field: char from aggregate: Variable Expression: _src: instance of struct c_struct --- results are lvalue char converting lvalue char to char cost is( 0, 0, 0 ) Case +++++++++++++ formals are: pointer to char char actuals are: Address of: Member Expression, with field: char from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct c_struct Member Expression, with field: char from aggregate: Variable Expression: _src: instance of struct c_struct bindings are: cost of conversion is:( 0, 0, 0 ) alternatives before prune: Cost ( 0, 0, 0 ): Application of Variable Expression: ?=?: function with parameters pointer to char char returning char to arguments Address of: Member Expression, with field: char from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct c_struct Member Expression, with field: char from aggregate: Variable Expression: _src: instance of struct c_struct (types: char ) 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: ?=?: function with parameters pointer to char char returning char to arguments Address of: Member Expression, with field: char from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct c_struct Member Expression, with field: char from aggregate: Variable Expression: _src: instance of struct c_struct to: nothing (types: ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination nameExpr is ?=? decl is ?=?: forall DT: incomplete type function with parameters pointer to pointer to instance of type DT (not function type) pointer to instance of type DT (not function type) returning pointer to instance of type DT (not function type) newExpr is Variable Expression: ?=?: forall DT: incomplete type function with parameters pointer to pointer to instance of type DT (not function type) pointer to instance of type DT (not function type) returning pointer to instance of type DT (not function type) decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct a_struct _src: instance of struct a_struct returning instance of struct a_struct with body CompoundStmt Expression Statement: Application of Variable Expression: ?=?: function with parameters pointer to signed int signed int returning signed int to arguments Address of: Member Expression, with field: a: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct a_struct Member Expression, with field: a: signed int from aggregate: Variable Expression: _src: instance of struct a_struct with environment: Types: Non-types: Expression Statement: Application of Variable Expression: ?=?: function with parameters pointer to char char returning char to arguments Address of: Member Expression, with field: a: char from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct a_struct Member Expression, with field: a: char from aggregate: Variable Expression: _src: instance of struct a_struct with environment: Types: Non-types: Expression Statement: Application of Variable Expression: ?=?: function with parameters pointer to float float returning float to arguments Address of: Member Expression, with field: a: float from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct a_struct Member Expression, with field: a: float from aggregate: Variable Expression: _src: instance of struct a_struct with environment: Types: Non-types: Return Statement, returning: Cast of: Variable Expression: _src: instance of struct a_struct to: instance of struct a_struct with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct a_struct _src: instance of struct a_struct returning instance of struct a_struct decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct c_struct _src: instance of struct c_struct returning instance of struct c_struct with body CompoundStmt Expression Statement: Application of Variable Expression: ?=?: function with parameters pointer to signed int signed int returning signed int to arguments Address of: Member Expression, with field: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct c_struct Member Expression, with field: signed int from aggregate: Variable Expression: _src: instance of struct c_struct with environment: Types: Non-types: Expression Statement: Application of Variable Expression: ?=?: function with parameters pointer to char char returning char to arguments Address of: Member Expression, with field: char from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct c_struct Member Expression, with field: char from aggregate: Variable Expression: _src: instance of struct c_struct with environment: Types: Non-types: Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: float from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct c_struct Member Expression, with field: float from aggregate: Variable Expression: _src: instance of struct c_struct Return Statement, returning: Variable Expression: _src: instance of struct c_struct newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct c_struct _src: instance of struct c_struct returning instance of struct c_struct decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of union b_struct _src: instance of union b_struct returning instance of union b_struct with body CompoundStmt Expression Statement: Application of Variable Expression: __builtin_memcpy: function accepting unspecified arguments returning pointer to char to arguments Variable Expression: _dst: pointer to instance of union b_struct Address of: Variable Expression: _src: instance of union b_struct Sizeof Expression on: instance of union b_struct with environment: Types: Non-types: Return Statement, returning: Cast of: Variable Expression: _src: instance of union b_struct to: instance of union b_struct with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of union b_struct _src: instance of union b_struct returning instance of union b_struct decl is ?=?: function with parameters pointer to char char returning char newExpr is Variable Expression: ?=?: function with parameters pointer to char char returning char decl is ?=?: function with parameters pointer to float float returning float newExpr is Variable Expression: ?=?: function with parameters pointer to float float returning float decl is ?=?: function with parameters pointer to signed int signed int returning signed int newExpr is Variable Expression: ?=?: function with parameters pointer to signed int signed int returning signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: ?=?: forall DT: incomplete type function with parameters pointer to pointer to instance of type DT (not function type) pointer to instance of type DT (not function type) returning pointer to instance of type DT (not function type) (types: pointer to forall _0_DT: incomplete type function with parameters pointer to pointer to instance of type _0_DT (not function type) pointer to instance of type _0_DT (not function type) returning pointer to instance of type _0_DT (not function type) ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct a_struct _src: instance of struct a_struct returning instance of struct a_struct (types: pointer to function with parameters _dst: pointer to instance of struct a_struct _src: instance of struct a_struct returning instance of struct a_struct ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct c_struct _src: instance of struct c_struct returning instance of struct c_struct (types: pointer to function with parameters _dst: pointer to instance of struct c_struct _src: instance of struct c_struct returning instance of struct c_struct ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of union b_struct _src: instance of union b_struct returning instance of union b_struct (types: pointer to function with parameters _dst: pointer to instance of union b_struct _src: instance of union b_struct returning instance of union b_struct ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: function with parameters pointer to char char returning char (types: pointer to function with parameters pointer to char char returning char ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: function with parameters pointer to float float returning float (types: pointer to function with parameters pointer to float float returning float ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: function with parameters pointer to signed int signed int returning signed int (types: pointer to function with parameters pointer to signed int signed int returning signed int ) Environment: there are 7 alternatives before elimination there are 7 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Member Expression, with field: float from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct c_struct (types: lvalue float ) 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: float from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct c_struct (types: pointer to float ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Address of: Member Expression, with field: float from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct c_struct (types: pointer to float ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Member Expression, with field: float from aggregate: Variable Expression: _src: instance of struct c_struct (types: lvalue float ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Member Expression, with field: float from aggregate: Variable Expression: _src: instance of struct c_struct (types: lvalue float ) Environment: working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: function with parameters pointer to signed int signed int returning signed int (types: pointer to function with parameters pointer to signed int signed int returning signed int ) Environment: formal type is pointer to signed int actual type is pointer to float working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: function with parameters pointer to float float returning float (types: pointer to function with parameters pointer to float float returning float ) Environment: formal type is pointer to float actual type is pointer to float formal type is float actual type is lvalue float need assertions: ============= original indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== ============= new indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: function with parameters pointer to char char returning char (types: pointer to function with parameters pointer to char char returning char ) Environment: formal type is pointer to char actual type is pointer to float working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of union b_struct _src: instance of union b_struct returning instance of union b_struct (types: pointer to function with parameters _dst: pointer to instance of union b_struct _src: instance of union b_struct returning instance of union b_struct ) Environment: formal type is pointer to instance of union b_struct actual type is pointer to float working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct c_struct _src: instance of struct c_struct returning instance of struct c_struct (types: pointer to function with parameters _dst: pointer to instance of struct c_struct _src: instance of struct c_struct returning instance of struct c_struct ) Environment: formal type is pointer to instance of struct c_struct actual type is pointer to float working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct a_struct _src: instance of struct a_struct returning instance of struct a_struct (types: pointer to function with parameters _dst: pointer to instance of struct a_struct _src: instance of struct a_struct returning instance of struct a_struct ) Environment: formal type is pointer to instance of struct a_struct actual type is pointer to float working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: forall DT: incomplete type function with parameters pointer to pointer to instance of type DT (not function type) pointer to instance of type DT (not function type) returning pointer to instance of type DT (not function type) (types: pointer to forall _0_DT: incomplete type function with parameters pointer to pointer to instance of type _0_DT (not function type) pointer to instance of type _0_DT (not function type) returning pointer to instance of type _0_DT (not function type) ) Environment: formal type is pointer to pointer to instance of type _0_DT (not function type) actual type is pointer to float actual expression: Address of: Member Expression, with field: float from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct c_struct --- results are pointer to float converting pointer to float to pointer to float cost is( 0, 0, 0 ) actual expression: Member Expression, with field: float from aggregate: Variable Expression: _src: instance of struct c_struct --- results are lvalue float converting lvalue float to float cost is( 0, 0, 0 ) Case +++++++++++++ formals are: pointer to float float actuals are: Address of: Member Expression, with field: float from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct c_struct Member Expression, with field: float from aggregate: Variable Expression: _src: instance of struct c_struct bindings are: cost of conversion is:( 0, 0, 0 ) alternatives before prune: Cost ( 0, 0, 0 ): Application of Variable Expression: ?=?: function with parameters pointer to float float returning float to arguments Address of: Member Expression, with field: float from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct c_struct Member Expression, with field: float from aggregate: Variable Expression: _src: instance of struct c_struct (types: float ) 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: ?=?: function with parameters pointer to float float returning float to arguments Address of: Member Expression, with field: float from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct c_struct Member Expression, with field: float from aggregate: Variable Expression: _src: instance of struct c_struct to: nothing (types: ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct c_struct (types: lvalue instance of struct c_struct ) 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 c_struct to: instance of struct c_struct (types: instance of struct c_struct ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination nameExpr is __builtin_memcpy decl is __builtin_memcpy: function accepting unspecified arguments returning pointer to char newExpr is Variable Expression: __builtin_memcpy: function accepting unspecified arguments returning pointer to char alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: __builtin_memcpy: function accepting unspecified arguments returning pointer to char (types: pointer to function accepting unspecified arguments returning pointer to char ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: _dst: pointer to instance of union d_struct (types: lvalue pointer to instance of union d_struct ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: _dst: pointer to instance of union d_struct (types: lvalue pointer to instance of union d_struct ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: _src: instance of union d_struct (types: lvalue instance of union d_struct ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Address of: Variable Expression: _src: instance of union d_struct (types: pointer to instance of union d_struct ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Address of: Variable Expression: _src: instance of union d_struct (types: pointer to instance of union d_struct ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Sizeof Expression on: instance of union d_struct (types: unsigned int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Sizeof Expression on: instance of union d_struct (types: unsigned int ) Environment: working on alternative: Cost ( 0, 0, 0 ): Variable Expression: __builtin_memcpy: function accepting unspecified arguments returning pointer to char (types: pointer to function accepting unspecified arguments returning pointer to char ) Environment: need assertions: ============= original indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== ============= new indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== actual expression: Variable Expression: _dst: pointer to instance of union d_struct --- results are lvalue pointer to instance of union d_struct actual expression: Address of: Variable Expression: _src: instance of union d_struct --- results are pointer to instance of union d_struct actual expression: Sizeof Expression on: instance of union d_struct --- results are unsigned int Case +++++++++++++ formals are: actuals are: Variable Expression: _dst: pointer to instance of union d_struct Address of: Variable Expression: _src: instance of union d_struct Sizeof Expression on: instance of union d_struct bindings are: cost of conversion is:( 3, 0, 0 ) alternatives before prune: Cost ( 3, 0, 0 ): Application of Variable Expression: __builtin_memcpy: function accepting unspecified arguments returning pointer to char to arguments Variable Expression: _dst: pointer to instance of union d_struct Address of: Variable Expression: _src: instance of union d_struct Sizeof Expression on: instance of union d_struct (types: pointer to char ) 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: __builtin_memcpy: function accepting unspecified arguments returning pointer to char to arguments Variable Expression: _dst: pointer to instance of union d_struct Address of: Variable Expression: _src: instance of union d_struct Sizeof Expression on: instance of union d_struct to: nothing (types: ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: _src: instance of union d_struct (types: lvalue instance of union d_struct ) 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 union d_struct to: instance of union d_struct (types: instance of union d_struct ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination nameExpr is a decl is a: function with parameters char returning nothing newExpr is Variable Expression: a: function with parameters char returning nothing alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: a: function with parameters char returning nothing (types: pointer to function with parameters char returning nothing ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination nameExpr is x decl is x: instance of struct c_struct newExpr is Variable Expression: x: instance of struct c_struct decl is x: instance of union d_struct newExpr is Variable Expression: x: instance of union d_struct decl is x: short unsigned int newExpr is Variable Expression: x: short unsigned int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: x: instance of struct c_struct (types: lvalue instance of struct c_struct ) Environment: Cost ( 0, 0, 1 ): Member Expression, with field: signed int from aggregate: Variable Expression: x: instance of struct c_struct (types: lvalue signed int ) Environment: Cost ( 0, 0, 1 ): Member Expression, with field: char from aggregate: Variable Expression: x: instance of struct c_struct (types: lvalue char ) Environment: Cost ( 0, 0, 1 ): Member Expression, with field: float from aggregate: Variable Expression: x: instance of struct c_struct (types: lvalue float ) Environment: Cost ( 0, 0, 0 ): Variable Expression: x: instance of union d_struct (types: lvalue instance of union d_struct ) Environment: Cost ( 0, 0, 1 ): Member Expression, with field: pointer to signed int from aggregate: Variable Expression: x: instance of union d_struct (types: lvalue pointer to signed int ) Environment: Cost ( 0, 0, 1 ): Member Expression, with field: pointer to char from aggregate: Variable Expression: x: instance of union d_struct (types: lvalue pointer to char ) Environment: Cost ( 0, 0, 1 ): Member Expression, with field: pointer to float from aggregate: Variable Expression: x: instance of union d_struct (types: lvalue pointer to float ) Environment: Cost ( 0, 0, 0 ): Variable Expression: x: short unsigned int (types: lvalue short unsigned int ) Environment: there are 9 alternatives before elimination there are 9 alternatives after elimination findSubExprs Cost ( 0, 0, 1 ): Member Expression, with field: signed int from aggregate: Variable Expression: x: instance of struct c_struct (types: lvalue signed int ) Environment: Cost ( 0, 0, 1 ): Member Expression, with field: float from aggregate: Variable Expression: x: instance of struct c_struct (types: lvalue float ) Environment: Cost ( 0, 0, 1 ): Member Expression, with field: char from aggregate: Variable Expression: x: instance of struct c_struct (types: lvalue char ) Environment: Cost ( 0, 0, 0 ): Variable Expression: x: short unsigned int (types: lvalue short unsigned int ) Environment: Cost ( 0, 0, 1 ): Member Expression, with field: pointer to signed int from aggregate: Variable Expression: x: instance of union d_struct (types: lvalue pointer to signed int ) Environment: Cost ( 0, 0, 1 ): Member Expression, with field: pointer to float from aggregate: Variable Expression: x: instance of union d_struct (types: lvalue pointer to float ) Environment: Cost ( 0, 0, 1 ): Member Expression, with field: pointer to char from aggregate: Variable Expression: x: instance of union d_struct (types: lvalue pointer to char ) Environment: Cost ( 0, 0, 0 ): Variable Expression: x: instance of union d_struct (types: lvalue instance of union d_struct ) Environment: Cost ( 0, 0, 0 ): Variable Expression: x: instance of struct c_struct (types: lvalue instance of struct c_struct ) Environment: working on alternative: Cost ( 0, 0, 0 ): Variable Expression: a: function with parameters char returning nothing (types: pointer to function with parameters char returning nothing ) Environment: formal type is char actual type is lvalue signed int need assertions: ============= original indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== ============= new indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== formal type is char actual type is lvalue float need assertions: ============= original indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== ============= new indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== formal type is char actual type is lvalue char need assertions: ============= original indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== ============= new indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== formal type is char actual type is lvalue short unsigned int need assertions: ============= original indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== ============= new indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== formal type is char actual type is lvalue pointer to signed int formal type is char actual type is lvalue pointer to float formal type is char actual type is lvalue pointer to char formal type is char actual type is lvalue instance of union d_struct formal type is char actual type is lvalue instance of struct c_struct actual expression: Member Expression, with field: signed int from aggregate: Variable Expression: x: instance of struct c_struct --- results are lvalue signed int converting lvalue signed int to char cost is( 1, 0, 0 ) Case +++++++++++++ formals are: char actuals are: Cast of: Member Expression, with field: signed int from aggregate: Variable Expression: x: instance of struct c_struct to: char bindings are: cost of conversion is:( 1, 0, 0 ) actual expression: Member Expression, with field: float from aggregate: Variable Expression: x: instance of struct c_struct --- results are lvalue float converting lvalue float to char cost is( 1, 0, 0 ) Case +++++++++++++ formals are: char actuals are: Cast of: Member Expression, with field: float from aggregate: Variable Expression: x: instance of struct c_struct to: char bindings are: cost of conversion is:( 1, 0, 0 ) actual expression: Member Expression, with field: char from aggregate: Variable Expression: x: instance of struct c_struct --- results are lvalue char converting lvalue char to char cost is( 0, 0, 0 ) Case +++++++++++++ formals are: char actuals are: Member Expression, with field: char from aggregate: Variable Expression: x: instance of struct c_struct bindings are: cost of conversion is:( 0, 0, 0 ) actual expression: Variable Expression: x: short unsigned int --- results are lvalue short unsigned int converting lvalue short unsigned int to char cost is( 1, 0, 0 ) Case +++++++++++++ formals are: char actuals are: Cast of: Variable Expression: x: short unsigned int to: char bindings are: cost of conversion is:( 1, 0, 0 ) alternatives before prune: Cost ( 1, 0, 0 ): Application of Variable Expression: a: function with parameters char returning nothing to arguments Cast of: Variable Expression: x: short unsigned int to: char (types: ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Cast of: Application of Variable Expression: a: function with parameters char returning nothing to arguments Cast of: Variable Expression: x: short unsigned int to: char to: nothing (types: ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination nameExpr is b decl is b: function with parameters signed int returning nothing newExpr is Variable Expression: b: function with parameters signed int returning nothing alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: b: function with parameters signed int returning nothing (types: pointer to function with parameters signed int returning nothing ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination nameExpr is x decl is x: instance of struct c_struct newExpr is Variable Expression: x: instance of struct c_struct decl is x: instance of union d_struct newExpr is Variable Expression: x: instance of union d_struct decl is x: short unsigned int newExpr is Variable Expression: x: short unsigned int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: x: instance of struct c_struct (types: lvalue instance of struct c_struct ) Environment: Cost ( 0, 0, 1 ): Member Expression, with field: signed int from aggregate: Variable Expression: x: instance of struct c_struct (types: lvalue signed int ) Environment: Cost ( 0, 0, 1 ): Member Expression, with field: char from aggregate: Variable Expression: x: instance of struct c_struct (types: lvalue char ) Environment: Cost ( 0, 0, 1 ): Member Expression, with field: float from aggregate: Variable Expression: x: instance of struct c_struct (types: lvalue float ) Environment: Cost ( 0, 0, 0 ): Variable Expression: x: instance of union d_struct (types: lvalue instance of union d_struct ) Environment: Cost ( 0, 0, 1 ): Member Expression, with field: pointer to signed int from aggregate: Variable Expression: x: instance of union d_struct (types: lvalue pointer to signed int ) Environment: Cost ( 0, 0, 1 ): Member Expression, with field: pointer to char from aggregate: Variable Expression: x: instance of union d_struct (types: lvalue pointer to char ) Environment: Cost ( 0, 0, 1 ): Member Expression, with field: pointer to float from aggregate: Variable Expression: x: instance of union d_struct (types: lvalue pointer to float ) Environment: Cost ( 0, 0, 0 ): Variable Expression: x: short unsigned int (types: lvalue short unsigned int ) Environment: there are 9 alternatives before elimination there are 9 alternatives after elimination findSubExprs Cost ( 0, 0, 1 ): Member Expression, with field: signed int from aggregate: Variable Expression: x: instance of struct c_struct (types: lvalue signed int ) Environment: Cost ( 0, 0, 1 ): Member Expression, with field: float from aggregate: Variable Expression: x: instance of struct c_struct (types: lvalue float ) Environment: Cost ( 0, 0, 1 ): Member Expression, with field: char from aggregate: Variable Expression: x: instance of struct c_struct (types: lvalue char ) Environment: Cost ( 0, 0, 0 ): Variable Expression: x: short unsigned int (types: lvalue short unsigned int ) Environment: Cost ( 0, 0, 1 ): Member Expression, with field: pointer to signed int from aggregate: Variable Expression: x: instance of union d_struct (types: lvalue pointer to signed int ) Environment: Cost ( 0, 0, 1 ): Member Expression, with field: pointer to float from aggregate: Variable Expression: x: instance of union d_struct (types: lvalue pointer to float ) Environment: Cost ( 0, 0, 1 ): Member Expression, with field: pointer to char from aggregate: Variable Expression: x: instance of union d_struct (types: lvalue pointer to char ) Environment: Cost ( 0, 0, 0 ): Variable Expression: x: instance of union d_struct (types: lvalue instance of union d_struct ) Environment: Cost ( 0, 0, 0 ): Variable Expression: x: instance of struct c_struct (types: lvalue instance of struct c_struct ) Environment: working on alternative: Cost ( 0, 0, 0 ): Variable Expression: b: function with parameters signed int returning nothing (types: pointer to function with parameters signed int returning nothing ) Environment: formal type is signed int actual type is lvalue signed int need assertions: ============= original indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== ============= new indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== formal type is signed int actual type is lvalue float need assertions: ============= original indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== ============= new indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== formal type is signed int actual type is lvalue char need assertions: ============= original indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== ============= new indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== formal type is signed int actual type is lvalue short unsigned int need assertions: ============= original indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== ============= new indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== formal type is signed int actual type is lvalue pointer to signed int formal type is signed int actual type is lvalue pointer to float formal type is signed int actual type is lvalue pointer to char formal type is signed int actual type is lvalue instance of union d_struct formal type is signed int actual type is lvalue instance of struct c_struct actual expression: Member Expression, with field: signed int from aggregate: Variable Expression: x: instance of struct c_struct --- results are lvalue signed int converting lvalue signed int to signed int cost is( 0, 0, 0 ) Case +++++++++++++ formals are: signed int actuals are: Member Expression, with field: signed int from aggregate: Variable Expression: x: instance of struct c_struct bindings are: cost of conversion is:( 0, 0, 0 ) actual expression: Member Expression, with field: float from aggregate: Variable Expression: x: instance of struct c_struct --- results are lvalue float converting lvalue float to signed int cost is( 1, 0, 0 ) Case +++++++++++++ formals are: signed int actuals are: Cast of: Member Expression, with field: float from aggregate: Variable Expression: x: instance of struct c_struct to: signed int bindings are: cost of conversion is:( 1, 0, 0 ) actual expression: Member Expression, with field: char from aggregate: Variable Expression: x: instance of struct c_struct --- results are lvalue char converting lvalue char to signed int cost is( 0, 0, 4 ) Case +++++++++++++ formals are: signed int actuals are: Cast of: Member Expression, with field: char from aggregate: Variable Expression: x: instance of struct c_struct to: signed int bindings are: cost of conversion is:( 0, 0, 4 ) actual expression: Variable Expression: x: short unsigned int --- results are lvalue short unsigned int converting lvalue short unsigned int to signed int cost is( 0, 0, 1 ) Case +++++++++++++ formals are: signed int actuals are: Cast of: Variable Expression: x: short unsigned int to: signed int bindings are: cost of conversion is:( 0, 0, 1 ) alternatives before prune: Cost ( 0, 0, 1 ): Application of Variable Expression: b: function with parameters signed int returning nothing to arguments Cast of: Variable Expression: x: short unsigned int to: signed int (types: ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Cast of: Application of Variable Expression: b: function with parameters signed int returning nothing to arguments Cast of: Variable Expression: x: short unsigned int to: signed int to: nothing (types: ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination nameExpr is c decl is c: function with parameters pointer to signed int returning nothing newExpr is Variable Expression: c: function with parameters pointer to signed int returning nothing alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: c: function with parameters pointer to signed int returning nothing (types: pointer to function with parameters pointer to signed int returning nothing ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination nameExpr is x decl is x: instance of struct c_struct newExpr is Variable Expression: x: instance of struct c_struct decl is x: instance of union d_struct newExpr is Variable Expression: x: instance of union d_struct decl is x: short unsigned int newExpr is Variable Expression: x: short unsigned int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: x: instance of struct c_struct (types: lvalue instance of struct c_struct ) Environment: Cost ( 0, 0, 1 ): Member Expression, with field: signed int from aggregate: Variable Expression: x: instance of struct c_struct (types: lvalue signed int ) Environment: Cost ( 0, 0, 1 ): Member Expression, with field: char from aggregate: Variable Expression: x: instance of struct c_struct (types: lvalue char ) Environment: Cost ( 0, 0, 1 ): Member Expression, with field: float from aggregate: Variable Expression: x: instance of struct c_struct (types: lvalue float ) Environment: Cost ( 0, 0, 0 ): Variable Expression: x: instance of union d_struct (types: lvalue instance of union d_struct ) Environment: Cost ( 0, 0, 1 ): Member Expression, with field: pointer to signed int from aggregate: Variable Expression: x: instance of union d_struct (types: lvalue pointer to signed int ) Environment: Cost ( 0, 0, 1 ): Member Expression, with field: pointer to char from aggregate: Variable Expression: x: instance of union d_struct (types: lvalue pointer to char ) Environment: Cost ( 0, 0, 1 ): Member Expression, with field: pointer to float from aggregate: Variable Expression: x: instance of union d_struct (types: lvalue pointer to float ) Environment: Cost ( 0, 0, 0 ): Variable Expression: x: short unsigned int (types: lvalue short unsigned int ) Environment: there are 9 alternatives before elimination there are 9 alternatives after elimination findSubExprs Cost ( 0, 0, 1 ): Member Expression, with field: signed int from aggregate: Variable Expression: x: instance of struct c_struct (types: lvalue signed int ) Environment: Cost ( 0, 0, 1 ): Member Expression, with field: float from aggregate: Variable Expression: x: instance of struct c_struct (types: lvalue float ) Environment: Cost ( 0, 0, 1 ): Member Expression, with field: char from aggregate: Variable Expression: x: instance of struct c_struct (types: lvalue char ) Environment: Cost ( 0, 0, 0 ): Variable Expression: x: short unsigned int (types: lvalue short unsigned int ) Environment: Cost ( 0, 0, 1 ): Member Expression, with field: pointer to signed int from aggregate: Variable Expression: x: instance of union d_struct (types: lvalue pointer to signed int ) Environment: Cost ( 0, 0, 1 ): Member Expression, with field: pointer to float from aggregate: Variable Expression: x: instance of union d_struct (types: lvalue pointer to float ) Environment: Cost ( 0, 0, 1 ): Member Expression, with field: pointer to char from aggregate: Variable Expression: x: instance of union d_struct (types: lvalue pointer to char ) Environment: Cost ( 0, 0, 0 ): Variable Expression: x: instance of union d_struct (types: lvalue instance of union d_struct ) Environment: Cost ( 0, 0, 0 ): Variable Expression: x: instance of struct c_struct (types: lvalue instance of struct c_struct ) Environment: working on alternative: Cost ( 0, 0, 0 ): Variable Expression: c: function with parameters pointer to signed int returning nothing (types: pointer to function with parameters pointer to signed int returning nothing ) Environment: formal type is pointer to signed int actual type is lvalue signed int formal type is pointer to signed int actual type is lvalue float formal type is pointer to signed int actual type is lvalue char formal type is pointer to signed int actual type is lvalue short unsigned int formal type is pointer to signed int actual type is lvalue pointer to signed int need assertions: ============= original indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== ============= new indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== formal type is pointer to signed int actual type is lvalue pointer to float formal type is pointer to signed int actual type is lvalue pointer to char formal type is pointer to signed int actual type is lvalue instance of union d_struct formal type is pointer to signed int actual type is lvalue instance of struct c_struct actual expression: Member Expression, with field: pointer to signed int from aggregate: Variable Expression: x: instance of union d_struct --- results are lvalue pointer to signed int converting lvalue pointer to signed int to pointer to signed int cost is( 0, 0, 0 ) Case +++++++++++++ formals are: pointer to signed int actuals are: Member Expression, with field: pointer to signed int from aggregate: Variable Expression: x: instance of union d_struct bindings are: cost of conversion is:( 0, 0, 0 ) alternatives before prune: Cost ( 0, 0, 0 ): Application of Variable Expression: c: function with parameters pointer to signed int returning nothing to arguments Member Expression, with field: pointer to signed int from aggregate: Variable Expression: x: instance of union d_struct (types: ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Cast of: Application of Variable Expression: c: function with parameters pointer to signed int returning nothing to arguments Member Expression, with field: pointer to signed int from aggregate: Variable Expression: x: instance of union d_struct to: nothing (types: ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination nameExpr is d decl is d: function with parameters pointer to float returning nothing newExpr is Variable Expression: d: function with parameters pointer to float returning nothing alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: d: function with parameters pointer to float returning nothing (types: pointer to function with parameters pointer to float returning nothing ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination nameExpr is x decl is x: instance of struct c_struct newExpr is Variable Expression: x: instance of struct c_struct decl is x: instance of union d_struct newExpr is Variable Expression: x: instance of union d_struct decl is x: short unsigned int newExpr is Variable Expression: x: short unsigned int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: x: instance of struct c_struct (types: lvalue instance of struct c_struct ) Environment: Cost ( 0, 0, 1 ): Member Expression, with field: signed int from aggregate: Variable Expression: x: instance of struct c_struct (types: lvalue signed int ) Environment: Cost ( 0, 0, 1 ): Member Expression, with field: char from aggregate: Variable Expression: x: instance of struct c_struct (types: lvalue char ) Environment: Cost ( 0, 0, 1 ): Member Expression, with field: float from aggregate: Variable Expression: x: instance of struct c_struct (types: lvalue float ) Environment: Cost ( 0, 0, 0 ): Variable Expression: x: instance of union d_struct (types: lvalue instance of union d_struct ) Environment: Cost ( 0, 0, 1 ): Member Expression, with field: pointer to signed int from aggregate: Variable Expression: x: instance of union d_struct (types: lvalue pointer to signed int ) Environment: Cost ( 0, 0, 1 ): Member Expression, with field: pointer to char from aggregate: Variable Expression: x: instance of union d_struct (types: lvalue pointer to char ) Environment: Cost ( 0, 0, 1 ): Member Expression, with field: pointer to float from aggregate: Variable Expression: x: instance of union d_struct (types: lvalue pointer to float ) Environment: Cost ( 0, 0, 0 ): Variable Expression: x: short unsigned int (types: lvalue short unsigned int ) Environment: there are 9 alternatives before elimination there are 9 alternatives after elimination findSubExprs Cost ( 0, 0, 1 ): Member Expression, with field: signed int from aggregate: Variable Expression: x: instance of struct c_struct (types: lvalue signed int ) Environment: Cost ( 0, 0, 1 ): Member Expression, with field: float from aggregate: Variable Expression: x: instance of struct c_struct (types: lvalue float ) Environment: Cost ( 0, 0, 1 ): Member Expression, with field: char from aggregate: Variable Expression: x: instance of struct c_struct (types: lvalue char ) Environment: Cost ( 0, 0, 0 ): Variable Expression: x: short unsigned int (types: lvalue short unsigned int ) Environment: Cost ( 0, 0, 1 ): Member Expression, with field: pointer to signed int from aggregate: Variable Expression: x: instance of union d_struct (types: lvalue pointer to signed int ) Environment: Cost ( 0, 0, 1 ): Member Expression, with field: pointer to float from aggregate: Variable Expression: x: instance of union d_struct (types: lvalue pointer to float ) Environment: Cost ( 0, 0, 1 ): Member Expression, with field: pointer to char from aggregate: Variable Expression: x: instance of union d_struct (types: lvalue pointer to char ) Environment: Cost ( 0, 0, 0 ): Variable Expression: x: instance of union d_struct (types: lvalue instance of union d_struct ) Environment: Cost ( 0, 0, 0 ): Variable Expression: x: instance of struct c_struct (types: lvalue instance of struct c_struct ) Environment: working on alternative: Cost ( 0, 0, 0 ): Variable Expression: d: function with parameters pointer to float returning nothing (types: pointer to function with parameters pointer to float returning nothing ) Environment: formal type is pointer to float actual type is lvalue signed int formal type is pointer to float actual type is lvalue float formal type is pointer to float actual type is lvalue char formal type is pointer to float actual type is lvalue short unsigned int formal type is pointer to float actual type is lvalue pointer to signed int formal type is pointer to float actual type is lvalue pointer to float need assertions: ============= original indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== ============= new indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== formal type is pointer to float actual type is lvalue pointer to char formal type is pointer to float actual type is lvalue instance of union d_struct formal type is pointer to float actual type is lvalue instance of struct c_struct actual expression: Member Expression, with field: pointer to float from aggregate: Variable Expression: x: instance of union d_struct --- results are lvalue pointer to float converting lvalue pointer to float to pointer to float cost is( 0, 0, 0 ) Case +++++++++++++ formals are: pointer to float actuals are: Member Expression, with field: pointer to float from aggregate: Variable Expression: x: instance of union d_struct bindings are: cost of conversion is:( 0, 0, 0 ) alternatives before prune: Cost ( 0, 0, 0 ): Application of Variable Expression: d: function with parameters pointer to float returning nothing to arguments Member Expression, with field: pointer to float from aggregate: Variable Expression: x: instance of union d_struct (types: ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Cast of: Application of Variable Expression: d: function with parameters pointer to float returning nothing to arguments Member Expression, with field: pointer to float from aggregate: Variable Expression: x: instance of union d_struct to: nothing (types: ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination nameExpr is ?=? decl is ?=?: forall DT: incomplete type function with parameters pointer to pointer to instance of type DT (not function type) pointer to instance of type DT (not function type) returning pointer to instance of type DT (not function type) newExpr is Variable Expression: ?=?: forall DT: incomplete type function with parameters pointer to pointer to instance of type DT (not function type) pointer to instance of type DT (not function type) returning pointer to instance of type DT (not function type) decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct forward _src: instance of struct forward returning instance of struct forward with body CompoundStmt Expression Statement: Applying untyped: Name: ?=? ...to: Address of: Member Expression, with field: y: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct forward Member Expression, with field: y: signed int from aggregate: Variable Expression: _src: instance of struct forward Return Statement, returning: Variable Expression: _src: instance of struct forward newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct forward _src: instance of struct forward returning instance of struct forward decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct a_struct _src: instance of struct a_struct returning instance of struct a_struct with body CompoundStmt Expression Statement: Application of Variable Expression: ?=?: function with parameters pointer to signed int signed int returning signed int to arguments Address of: Member Expression, with field: a: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct a_struct Member Expression, with field: a: signed int from aggregate: Variable Expression: _src: instance of struct a_struct with environment: Types: Non-types: Expression Statement: Application of Variable Expression: ?=?: function with parameters pointer to char char returning char to arguments Address of: Member Expression, with field: a: char from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct a_struct Member Expression, with field: a: char from aggregate: Variable Expression: _src: instance of struct a_struct with environment: Types: Non-types: Expression Statement: Application of Variable Expression: ?=?: function with parameters pointer to float float returning float to arguments Address of: Member Expression, with field: a: float from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct a_struct Member Expression, with field: a: float from aggregate: Variable Expression: _src: instance of struct a_struct with environment: Types: Non-types: Return Statement, returning: Cast of: Variable Expression: _src: instance of struct a_struct to: instance of struct a_struct with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct a_struct _src: instance of struct a_struct returning instance of struct a_struct decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct c_struct _src: instance of struct c_struct returning instance of struct c_struct with body CompoundStmt Expression Statement: Application of Variable Expression: ?=?: function with parameters pointer to signed int signed int returning signed int to arguments Address of: Member Expression, with field: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct c_struct Member Expression, with field: signed int from aggregate: Variable Expression: _src: instance of struct c_struct with environment: Types: Non-types: Expression Statement: Application of Variable Expression: ?=?: function with parameters pointer to char char returning char to arguments Address of: Member Expression, with field: char from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct c_struct Member Expression, with field: char from aggregate: Variable Expression: _src: instance of struct c_struct with environment: Types: Non-types: Expression Statement: Application of Variable Expression: ?=?: function with parameters pointer to float float returning float to arguments Address of: Member Expression, with field: float from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct c_struct Member Expression, with field: float from aggregate: Variable Expression: _src: instance of struct c_struct with environment: Types: Non-types: Return Statement, returning: Cast of: Variable Expression: _src: instance of struct c_struct to: instance of struct c_struct with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct c_struct _src: instance of struct c_struct returning instance of struct c_struct decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of union b_struct _src: instance of union b_struct returning instance of union b_struct with body CompoundStmt Expression Statement: Application of Variable Expression: __builtin_memcpy: function accepting unspecified arguments returning pointer to char to arguments Variable Expression: _dst: pointer to instance of union b_struct Address of: Variable Expression: _src: instance of union b_struct Sizeof Expression on: instance of union b_struct with environment: Types: Non-types: Return Statement, returning: Cast of: Variable Expression: _src: instance of union b_struct to: instance of union b_struct with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of union b_struct _src: instance of union b_struct returning instance of union b_struct decl is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of union d_struct _src: instance of union d_struct returning instance of union d_struct with body CompoundStmt Expression Statement: Application of Variable Expression: __builtin_memcpy: function accepting unspecified arguments returning pointer to char to arguments Variable Expression: _dst: pointer to instance of union d_struct Address of: Variable Expression: _src: instance of union d_struct Sizeof Expression on: instance of union d_struct with environment: Types: Non-types: Return Statement, returning: Cast of: Variable Expression: _src: instance of union d_struct to: instance of union d_struct with environment: Types: Non-types: newExpr is Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of union d_struct _src: instance of union d_struct returning instance of union d_struct decl is ?=?: function with parameters pointer to char char returning char newExpr is Variable Expression: ?=?: function with parameters pointer to char char returning char decl is ?=?: function with parameters pointer to float float returning float newExpr is Variable Expression: ?=?: function with parameters pointer to float float returning float decl is ?=?: function with parameters pointer to signed int signed int returning signed int newExpr is Variable Expression: ?=?: function with parameters pointer to signed int signed int returning signed int alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: ?=?: forall DT: incomplete type function with parameters pointer to pointer to instance of type DT (not function type) pointer to instance of type DT (not function type) returning pointer to instance of type DT (not function type) (types: pointer to forall _0_DT: incomplete type function with parameters pointer to pointer to instance of type _0_DT (not function type) pointer to instance of type _0_DT (not function type) returning pointer to instance of type _0_DT (not function type) ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct forward _src: instance of struct forward returning instance of struct forward (types: pointer to function with parameters _dst: pointer to instance of struct forward _src: instance of struct forward returning instance of struct forward ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct a_struct _src: instance of struct a_struct returning instance of struct a_struct (types: pointer to function with parameters _dst: pointer to instance of struct a_struct _src: instance of struct a_struct returning instance of struct a_struct ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct c_struct _src: instance of struct c_struct returning instance of struct c_struct (types: pointer to function with parameters _dst: pointer to instance of struct c_struct _src: instance of struct c_struct returning instance of struct c_struct ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of union b_struct _src: instance of union b_struct returning instance of union b_struct (types: pointer to function with parameters _dst: pointer to instance of union b_struct _src: instance of union b_struct returning instance of union b_struct ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of union d_struct _src: instance of union d_struct returning instance of union d_struct (types: pointer to function with parameters _dst: pointer to instance of union d_struct _src: instance of union d_struct returning instance of union d_struct ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: function with parameters pointer to char char returning char (types: pointer to function with parameters pointer to char char returning char ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: function with parameters pointer to float float returning float (types: pointer to function with parameters pointer to float float returning float ) Environment: Cost ( 0, 0, 0 ): Variable Expression: ?=?: function with parameters pointer to signed int signed int returning signed int (types: pointer to function with parameters pointer to signed int signed int returning signed int ) Environment: there are 9 alternatives before elimination there are 9 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Member Expression, with field: y: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct forward (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: y: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct forward (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: y: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct forward (types: pointer to signed int ) Environment: alternatives before prune: Cost ( 0, 0, 0 ): Member Expression, with field: y: signed int from aggregate: Variable Expression: _src: instance of struct forward (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: y: signed int from aggregate: Variable Expression: _src: instance of struct forward (types: lvalue signed int ) Environment: working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: function with parameters pointer to signed int signed int returning signed int (types: pointer to function with parameters pointer to signed int signed int returning signed int ) Environment: formal type is pointer to signed int actual type is pointer to signed int formal type is signed int actual type is lvalue signed int need assertions: ============= original indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== ============= new indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: function with parameters pointer to float float returning float (types: pointer to function with parameters pointer to float float returning float ) Environment: formal type is pointer to float actual type is pointer to signed int working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: function with parameters pointer to char char returning char (types: pointer to function with parameters pointer to char char returning char ) Environment: formal type is pointer to char actual type is pointer to signed int working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of union d_struct _src: instance of union d_struct returning instance of union d_struct (types: pointer to function with parameters _dst: pointer to instance of union d_struct _src: instance of union d_struct returning instance of union d_struct ) Environment: formal type is pointer to instance of union d_struct actual type is pointer to signed int working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of union b_struct _src: instance of union b_struct returning instance of union b_struct (types: pointer to function with parameters _dst: pointer to instance of union b_struct _src: instance of union b_struct returning instance of union b_struct ) Environment: formal type is pointer to instance of union b_struct actual type is pointer to signed int working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct c_struct _src: instance of struct c_struct returning instance of struct c_struct (types: pointer to function with parameters _dst: pointer to instance of struct c_struct _src: instance of struct c_struct returning instance of struct c_struct ) Environment: formal type is pointer to instance of struct c_struct actual type is pointer to signed int working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct a_struct _src: instance of struct a_struct returning instance of struct a_struct (types: pointer to function with parameters _dst: pointer to instance of struct a_struct _src: instance of struct a_struct returning instance of struct a_struct ) Environment: formal type is pointer to instance of struct a_struct actual type is pointer to signed int working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: inline static function with parameters _dst: pointer to instance of struct forward _src: instance of struct forward returning instance of struct forward (types: pointer to function with parameters _dst: pointer to instance of struct forward _src: instance of struct forward returning instance of struct forward ) Environment: formal type is pointer to instance of struct forward actual type is pointer to signed int working on alternative: Cost ( 0, 0, 0 ): Variable Expression: ?=?: forall DT: incomplete type function with parameters pointer to pointer to instance of type DT (not function type) pointer to instance of type DT (not function type) returning pointer to instance of type DT (not function type) (types: pointer to forall _0_DT: incomplete type function with parameters pointer to pointer to instance of type _0_DT (not function type) pointer to instance of type _0_DT (not function type) returning pointer to instance of type _0_DT (not function type) ) Environment: formal type is pointer to pointer to instance of type _0_DT (not function type) actual type is pointer to signed int actual expression: Address of: Member Expression, with field: y: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct forward --- results are pointer to signed int converting pointer to signed int to pointer to signed int cost is( 0, 0, 0 ) actual expression: Member Expression, with field: y: signed int from aggregate: Variable Expression: _src: instance of struct forward --- results are lvalue signed int converting lvalue signed int to signed int cost is( 0, 0, 0 ) Case +++++++++++++ formals are: pointer to signed int signed int actuals are: Address of: Member Expression, with field: y: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct forward Member Expression, with field: y: signed int from aggregate: Variable Expression: _src: instance of struct forward bindings are: cost of conversion is:( 0, 0, 0 ) alternatives before prune: Cost ( 0, 0, 0 ): Application of Variable Expression: ?=?: function with parameters pointer to signed int signed int returning signed int to arguments Address of: Member Expression, with field: y: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct forward Member Expression, with field: y: signed int from aggregate: Variable Expression: _src: instance of struct forward (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: ?=?: function with parameters pointer to signed int signed int returning signed int to arguments Address of: Member Expression, with field: y: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct forward Member Expression, with field: y: signed int from aggregate: Variable Expression: _src: instance of struct forward to: nothing (types: ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: _src: instance of struct forward (types: lvalue instance of struct forward ) 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 forward to: instance of struct forward (types: instance of struct forward ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination nameExpr is *? decl is *?: forall T: type with assertions ?=?: pointer to function with parameters pointer to instance of type T (not function type) instance of type T (not function type) returning instance of type T (not function type) function with parameters pointer to instance of type T (not function type) returning lvalue instance of type T (not function type) newExpr is Variable Expression: *?: forall T: type with assertions ?=?: pointer to function with parameters pointer to instance of type T (not function type) instance of type T (not function type) returning instance of type T (not function type) function with parameters pointer to instance of type T (not function type) returning lvalue instance of type T (not function type) alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: *?: forall T: type with assertions ?=?: pointer to function with parameters pointer to instance of type T (not function type) instance of type T (not function type) returning instance of type T (not function type) function with parameters pointer to instance of type T (not function type) returning lvalue instance of type T (not function type) (types: pointer to forall _0_T: type with assertions ?=?: pointer to function with parameters pointer to instance of type _0_T (not function type) instance of type _0_T (not function type) returning instance of type _0_T (not function type) function with parameters pointer to instance of type _0_T (not function type) returning lvalue instance of type _0_T (not function type) ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination nameExpr is q decl is q: pointer to instance of struct forward newExpr is Variable Expression: q: pointer to instance of struct forward alternatives before prune: Cost ( 0, 0, 0 ): Variable Expression: q: pointer to instance of struct forward (types: lvalue pointer to instance of struct forward ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination findSubExprs Cost ( 0, 0, 0 ): Variable Expression: q: pointer to instance of struct forward (types: lvalue pointer to instance of struct forward ) Environment: working on alternative: Cost ( 0, 0, 0 ): Variable Expression: *?: forall T: type with assertions ?=?: pointer to function with parameters pointer to instance of type T (not function type) instance of type T (not function type) returning instance of type T (not function type) function with parameters pointer to instance of type T (not function type) returning lvalue instance of type T (not function type) (types: pointer to forall _0_T: type with assertions ?=?: pointer to function with parameters pointer to instance of type _0_T (not function type) instance of type _0_T (not function type) returning instance of type _0_T (not function type) function with parameters pointer to instance of type _0_T (not function type) returning lvalue instance of type _0_T (not function type) ) Environment: formal type is pointer to instance of type _0_T (not function type) actual type is lvalue pointer to instance of struct forward need assertions: ?=?: pointer to function with parameters pointer to instance of type _0_T (not function type) instance of type _0_T (not function type) returning instance of type _0_T (not function type) (used)============= original indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== ============= new indexer ===idTable=== ===typeTable=== ===structTable=== ===enumTable=== ===unionTable=== ===contextTable=== inferRecursive: assertion is ?=?: pointer to function with parameters pointer to instance of type _0_T (not function type) instance of type _0_T (not function type) returning instance of type _0_T (not function type) inferRecursive: candidate is ?=?: forall DT: incomplete type function with parameters pointer to pointer to instance of type DT (not function type) pointer to instance of type DT (not function type) returning pointer to instance of type DT (not function type) unifying pointer to function with parameters pointer to instance of type _0_T (not function type) instance of type _0_T (not function type) returning instance of type _0_T (not function type) with pointer to forall _1_DT: incomplete type function with parameters pointer to pointer to instance of type _1_DT (not function type) pointer to instance of type _1_DT (not function type) returning pointer to instance of type _1_DT (not function type) inferRecursive: candidate is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct forward _src: instance of struct forward returning instance of struct forward with body CompoundStmt Expression Statement: Application of Variable Expression: ?=?: function with parameters pointer to signed int signed int returning signed int to arguments Address of: Member Expression, with field: y: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct forward Member Expression, with field: y: signed int from aggregate: Variable Expression: _src: instance of struct forward with environment: Types: Non-types: Return Statement, returning: Cast of: Variable Expression: _src: instance of struct forward to: instance of struct forward with environment: Types: Non-types: unifying pointer to function with parameters pointer to instance of type _0_T (not function type) instance of type _0_T (not function type) returning instance of type _0_T (not function type) with pointer to function with parameters _dst: pointer to instance of struct forward _src: instance of struct forward returning instance of struct forward success! satisfying assertion 25 ?=?: pointer to function with parameters pointer to instance of type _0_T (not function type) instance of type _0_T (not function type) returning instance of type _0_T (not function type) with declaration 79 ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct forward _src: instance of struct forward returning instance of struct forward with body CompoundStmt Expression Statement: Application of Variable Expression: ?=?: function with parameters pointer to signed int signed int returning signed int to arguments Address of: Member Expression, with field: y: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct forward Member Expression, with field: y: signed int from aggregate: Variable Expression: _src: instance of struct forward with environment: Types: Non-types: Return Statement, returning: Cast of: Variable Expression: _src: instance of struct forward to: instance of struct forward with environment: Types: Non-types: inferRecursive: candidate is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct a_struct _src: instance of struct a_struct returning instance of struct a_struct with body CompoundStmt Expression Statement: Application of Variable Expression: ?=?: function with parameters pointer to signed int signed int returning signed int to arguments Address of: Member Expression, with field: a: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct a_struct Member Expression, with field: a: signed int from aggregate: Variable Expression: _src: instance of struct a_struct with environment: Types: Non-types: Expression Statement: Application of Variable Expression: ?=?: function with parameters pointer to char char returning char to arguments Address of: Member Expression, with field: a: char from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct a_struct Member Expression, with field: a: char from aggregate: Variable Expression: _src: instance of struct a_struct with environment: Types: Non-types: Expression Statement: Application of Variable Expression: ?=?: function with parameters pointer to float float returning float to arguments Address of: Member Expression, with field: a: float from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct a_struct Member Expression, with field: a: float from aggregate: Variable Expression: _src: instance of struct a_struct with environment: Types: Non-types: Return Statement, returning: Cast of: Variable Expression: _src: instance of struct a_struct to: instance of struct a_struct with environment: Types: Non-types: unifying pointer to function with parameters pointer to instance of type _0_T (not function type) instance of type _0_T (not function type) returning instance of type _0_T (not function type) with pointer to function with parameters _dst: pointer to instance of struct a_struct _src: instance of struct a_struct returning instance of struct a_struct inferRecursive: candidate is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of struct c_struct _src: instance of struct c_struct returning instance of struct c_struct with body CompoundStmt Expression Statement: Application of Variable Expression: ?=?: function with parameters pointer to signed int signed int returning signed int to arguments Address of: Member Expression, with field: signed int from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct c_struct Member Expression, with field: signed int from aggregate: Variable Expression: _src: instance of struct c_struct with environment: Types: Non-types: Expression Statement: Application of Variable Expression: ?=?: function with parameters pointer to char char returning char to arguments Address of: Member Expression, with field: char from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct c_struct Member Expression, with field: char from aggregate: Variable Expression: _src: instance of struct c_struct with environment: Types: Non-types: Expression Statement: Application of Variable Expression: ?=?: function with parameters pointer to float float returning float to arguments Address of: Member Expression, with field: float from aggregate: Applying untyped: Name: *? ...to: Variable Expression: _dst: pointer to instance of struct c_struct Member Expression, with field: float from aggregate: Variable Expression: _src: instance of struct c_struct with environment: Types: Non-types: Return Statement, returning: Cast of: Variable Expression: _src: instance of struct c_struct to: instance of struct c_struct with environment: Types: Non-types: unifying pointer to function with parameters pointer to instance of type _0_T (not function type) instance of type _0_T (not function type) returning instance of type _0_T (not function type) with pointer to function with parameters _dst: pointer to instance of struct c_struct _src: instance of struct c_struct returning instance of struct c_struct inferRecursive: candidate is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of union b_struct _src: instance of union b_struct returning instance of union b_struct with body CompoundStmt Expression Statement: Application of Variable Expression: __builtin_memcpy: function accepting unspecified arguments returning pointer to char to arguments Variable Expression: _dst: pointer to instance of union b_struct Address of: Variable Expression: _src: instance of union b_struct Sizeof Expression on: instance of union b_struct with environment: Types: Non-types: Return Statement, returning: Cast of: Variable Expression: _src: instance of union b_struct to: instance of union b_struct with environment: Types: Non-types: unifying pointer to function with parameters pointer to instance of type _0_T (not function type) instance of type _0_T (not function type) returning instance of type _0_T (not function type) with pointer to function with parameters _dst: pointer to instance of union b_struct _src: instance of union b_struct returning instance of union b_struct inferRecursive: candidate is ?=?: automatically generated inline static function with parameters _dst: pointer to instance of union d_struct _src: instance of union d_struct returning instance of union d_struct with body CompoundStmt Expression Statement: Application of Variable Expression: __builtin_memcpy: function accepting unspecified arguments returning pointer to char to arguments Variable Expression: _dst: pointer to instance of union d_struct Address of: Variable Expression: _src: instance of union d_struct Sizeof Expression on: instance of union d_struct with environment: Types: Non-types: Return Statement, returning: Cast of: Variable Expression: _src: instance of union d_struct to: instance of union d_struct with environment: Types: Non-types: unifying pointer to function with parameters pointer to instance of type _0_T (not function type) instance of type _0_T (not function type) returning instance of type _0_T (not function type) with pointer to function with parameters _dst: pointer to instance of union d_struct _src: instance of union d_struct returning instance of union d_struct inferRecursive: candidate is ?=?: function with parameters pointer to char char returning char unifying pointer to function with parameters pointer to instance of type _0_T (not function type) instance of type _0_T (not function type) returning instance of type _0_T (not function type) with pointer to function with parameters pointer to char char returning char inferRecursive: candidate is ?=?: function with parameters pointer to float float returning float unifying pointer to function with parameters pointer to instance of type _0_T (not function type) instance of type _0_T (not function type) returning instance of type _0_T (not function type) with pointer to function with parameters pointer to float float returning float inferRecursive: candidate is ?=?: function with parameters pointer to signed int signed int returning signed int unifying pointer to function with parameters pointer to instance of type _0_T (not function type) instance of type _0_T (not function type) returning instance of type _0_T (not function type) with pointer to function with parameters pointer to signed int signed int returning signed int actual expression: Variable Expression: q: pointer to instance of struct forward --- results are lvalue pointer to instance of struct forward converting lvalue pointer to instance of struct forward to pointer to instance of type _0_T (not function type) cost is( 0, 0, 0 ) converting pointer to function with parameters _dst: pointer to instance of struct forward _src: instance of struct forward returning instance of struct forward to pointer to function with parameters pointer to instance of type _0_T (not function type) instance of type _0_T (not function type) returning instance of type _0_T (not function type) cost of conversion is ( 0, 0, 0 ) Case +++++++++++++ formals are: pointer to instance of type _0_T (not function type) actuals are: Variable Expression: q: pointer to instance of struct forward bindings are: ( _0_T ) -> instance of struct forward (no widening) cost of conversion is:( 0, 4, 0 ) alternatives before prune: Cost ( 0, 4, 0 ): Application of Variable Expression: *?: forall T: type with assertions ?=?: pointer to function with parameters pointer to instance of type T (not function type) instance of type T (not function type) returning instance of type T (not function type) function with parameters pointer to instance of type T (not function type) returning lvalue instance of type T (not function type) to arguments Variable Expression: q: pointer to instance of struct forward with inferred parameters: ?=?: inline static function with parameters _dst: pointer to instance of struct forward _src: instance of struct forward returning instance of struct forward (types: lvalue instance of type _0_T (not function type) ) Environment: ( _0_T ) -> instance of struct forward (no widening) there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 4, 0 ): Member Expression, with field: y: signed int from aggregate: Application of Variable Expression: *?: forall T: type with assertions ?=?: pointer to function with parameters pointer to instance of type T (not function type) instance of type T (not function type) returning instance of type T (not function type) function with parameters pointer to instance of type T (not function type) returning lvalue instance of type T (not function type) to arguments Variable Expression: q: pointer to instance of struct forward with inferred parameters: ?=?: inline static function with parameters _dst: pointer to instance of struct forward _src: instance of struct forward returning instance of struct forward (types: lvalue signed int ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination alternatives before prune: Cost ( 0, 0, 1 ): Cast of: Member Expression, with field: y: signed int from aggregate: Application of Variable Expression: *?: forall T: type with assertions ?=?: pointer to function with parameters pointer to instance of type T (not function type) instance of type T (not function type) returning instance of type T (not function type) function with parameters pointer to instance of type T (not function type) returning lvalue instance of type T (not function type) to arguments Variable Expression: q: pointer to instance of struct forward with inferred parameters: ?=?: inline static function with parameters _dst: pointer to instance of struct forward _src: instance of struct forward returning instance of struct forward to: nothing (types: ) Environment: there are 1 alternatives before elimination there are 1 alternatives after elimination Error: unbound type variable in application Application of Variable Expression: *?: forall T: type with assertions ?=?: pointer to function with parameters pointer to instance of type T (not function type) instance of type T (not function type) returning instance of type T (not function type) function with parameters pointer to instance of type T (not function type) returning pointer to instance of type T (not function type) to arguments Variable Expression: q: pointer to instance of struct forward with inferred parameters: ?=?: inline static function with parameters _dst: pointer to instance of struct forward _src: instance of struct forward returning instance of struct forward