| ... | ... | @@ -853,15 +853,15 @@ fn transStmt( |
| 853 | 853 | .ReturnStmtClass => return transReturnStmt(rp, scope, @ptrCast(*const ZigClangReturnStmt, stmt)), |
| 854 | 854 | .StringLiteralClass => return transStringLiteral(rp, scope, @ptrCast(*const ZigClangStringLiteral, stmt), result_used), |
| 855 | 855 | .ParenExprClass => { |
| 856 | | const expr = try transExpr(rp, scope, ZigClangParenExpr_getSubExpr(@ptrCast(*const ZigClangParenExpr, stmt)), result_used, lrvalue); |
| 857 | | if (expr.id == .GroupedExpression) return expr; |
| 856 | const expr = try transExpr(rp, scope, ZigClangParenExpr_getSubExpr(@ptrCast(*const ZigClangParenExpr, stmt)), .used, lrvalue); |
| 857 | if (expr.id == .GroupedExpression) return maybeSuppressResult(rp, scope, result_used, expr); |
| 858 | 858 | const node = try rp.c.a().create(ast.Node.GroupedExpression); |
| 859 | 859 | node.* = .{ |
| 860 | 860 | .lparen = try appendToken(rp.c, .LParen, "("), |
| 861 | 861 | .expr = expr, |
| 862 | 862 | .rparen = try appendToken(rp.c, .RParen, ")"), |
| 863 | 863 | }; |
| 864 | | return &node.base; |
| 864 | return maybeSuppressResult(rp, scope, result_used, &node.base); |
| 865 | 865 | }, |
| 866 | 866 | .InitListExprClass => return transInitListExpr(rp, scope, @ptrCast(*const ZigClangInitListExpr, stmt), result_used), |
| 867 | 867 | .ImplicitValueInitExprClass => return transImplicitValueInitExpr(rp, scope, @ptrCast(*const ZigClangExpr, stmt), result_used), |
| ... | ... | @@ -2098,6 +2098,9 @@ fn transMemberExpr(rp: RestorePoint, scope: *Scope, stmt: *const ZigClangMemberE |
| 2098 | 2098 | } |
| 2099 | 2099 | |
| 2100 | 2100 | const name = try rp.c.str(ZigClangDecl_getName_bytes_begin(@ptrCast(*const ZigClangDecl, ZigClangMemberExpr_getMemberDecl(stmt)))); |
| 2101 | if (name.len == 0) { |
| 2102 | return revertAndWarn(rp, error.UnsupportedTranslation, ZigClangStmt_getBeginLoc(@ptrCast(*const ZigClangStmt, stmt)), "TODO access of anonymous field", .{}); |
| 2103 | } |
| 2101 | 2104 | const node = try transCreateNodeFieldAccess(rp.c, container_node, name); |
| 2102 | 2105 | return maybeSuppressResult(rp, scope, result_used, node); |
| 2103 | 2106 | } |