erik.pilkington added inline comments.

================
Comment at: lib/AST/StmtPrinter.cpp:502
@@ +501,3 @@
+    ObjCAvailabilityCheckExpr *Node) {
+  OS << "@available(...)";
+}
----------------
manmanren wrote:
> Why not print other information of Node?
Because by the time that we have the `ObjCAvailabilityCheckExpr`, we no longer 
keep track of the `AvailabilitySpec`s that are no longer relevant (ie, watchos 
if the platform we are targeting is macos), therefore we cannot replicate the 
text that lead to this particular `@available`. Is it worth it to carry these 
specs around? I can't think of any other time they are useful. (FWIW, many 
other AST nodes are also not fully supported, for example `ObjCAtCatchStmt` 
just above this.)

================
Comment at: lib/Parse/ParseDecl.cpp:723
@@ -722,3 +722,3 @@
 VersionTuple Parser::ParseVersionTuple(SourceRange &Range) {
-  Range = Tok.getLocation();
+  Range.setBegin(Tok.getLocation());
 
----------------
manmanren wrote:
> I don't quite get what motivates this change. Are we not setting the range 
> correctly before, for version tuples?
Yes, `Range = Tok.getLocation()` sets both the Begin & End locations in Range 
to the same location, which makes us place the cursor at the wrong place in 
some diagnostics. I've fixed this a bit in the new patch.


http://reviews.llvm.org/D22171



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to