Hi guys,
here is ‘intermediate’ patch, please consider this version as a draft,
it’s not finished yet and has some issues besides that.
I’m posting this to keep you updated and to get feedback earlier.

Implementation details:

Usual 'ObjCBoxedExpr' has only one 'SubExpr', but in case of
'valueWithBytes:objCType:' it has two, it means that ObjCBoxedExpr has to be 
extended

I spent some time thinking about possible implementations and found  at least 
three:

  - 'PseudoObjectExpr': use pseudo object as a 'SubExpr' to mimic two arguments,
very close but it doesn't work because CodeGen module emits code generation for
every method parameter, though 'ObjCBoxedExpr' has only one 'SubExpr'
  - 'ObjCBoxableExpr': was thinking to introduce new AST node, but, imho, it's 
overkill
and node name is confusing, this option also was rejected
  - 'ObjCBoxedExpr' with SubExprs: finally I decided to extend 'ObjCBoxedExpr'
to accept array of sub-expressions, instead of one expression


Known issues:

  - documentation needs to be updated
  - ASTReader/ASTWriter lack tests
  - r-values aren't supported yet, need to add tests/implementation

Next steps:

  - get feedback about current implementation
  - fix known and newly discovered issues

--
AlexDenisov
Software Engineer, http://alexdenisov.github.io

Attachment: objc_boxable.patch
Description: Binary data

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to