Browse Source

[cpp] deal with null-to-scalar assignment when casting (#12439)

Simon Krajewski 4 days ago
parent
commit
46a631bae7
1 changed files with 2 additions and 0 deletions
  1. 2 0
      src/generators/cpp/cppRetyper.ml

+ 2 - 0
src/generators/cpp/cppRetyper.ml

@@ -1316,6 +1316,8 @@ let expression ctx request_type function_args function_type expression_tree forI
             | TCppProtocol p -> (retyper_ctx, CppCastProtocol (baseCpp, p), return_type)
             | TCppProtocol p -> (retyper_ctx, CppCastProtocol (baseCpp, p), return_type)
             | TCppDynamic when baseCpp.cpptype = TCppClass ->
             | TCppDynamic when baseCpp.cpptype = TCppClass ->
                 (retyper_ctx, CppCast (baseCpp, TCppDynamic), TCppDynamic)
                 (retyper_ctx, CppCast (baseCpp, TCppDynamic), TCppDynamic)
+			| TCppScalar _ when baseCpp.cpptype = TCppNull ->
+				(retyper_ctx, CppCast (baseCpp, return_type), return_type)
             | _ -> (retyper_ctx, baseCpp.cppexpr, baseCpp.cpptype (* use autocasting rules *))
             | _ -> (retyper_ctx, baseCpp.cppexpr, baseCpp.cpptype (* use autocasting rules *))
           )
           )
       | TCast (base, Some t) -> (
       | TCast (base, Some t) -> (