]> granicus.if.org Git - clang/commitdiff
ASTPrinter: Objective-C method declarations don't need a space after
authorAlex Lorenz <arphaman@gmail.com>
Fri, 2 Jun 2017 15:02:59 +0000 (15:02 +0000)
committerAlex Lorenz <arphaman@gmail.com>
Fri, 2 Jun 2017 15:02:59 +0000 (15:02 +0000)
the return type

rdar://32332039

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@304553 91177308-0d34-0410-b5e6-96231b3b80d8

lib/AST/DeclPrinter.cpp
test/Misc/ast-print-objectivec.m
test/Modules/lookup.m
unittests/AST/DeclPrinterTest.cpp

index bc8a34c9365363102dda2b27f3de4ec2291a4211..6eeba88e403366474e82a7f4780486cd963fc1f9 100644 (file)
@@ -1189,7 +1189,9 @@ void DeclPrinter::VisitObjCMethodDecl(ObjCMethodDecl *OMD) {
   for (const auto *PI : OMD->parameters()) {
     // FIXME: selector is missing here!
     pos = name.find_first_of(':', lastPos);
-    Out << " " << name.substr(lastPos, pos - lastPos) << ':';
+    if (lastPos != 0)
+      Out << " ";
+    Out << name.substr(lastPos, pos - lastPos) << ':';
     PrintObjCMethodType(OMD->getASTContext(), 
                         PI->getObjCDeclQualifier(),
                         PI->getType());
@@ -1198,7 +1200,7 @@ void DeclPrinter::VisitObjCMethodDecl(ObjCMethodDecl *OMD) {
   }
 
   if (OMD->param_begin() == OMD->param_end())
-    Out << " " << name;
+    Out << name;
 
   if (OMD->isVariadic())
       Out << ", ...";
index e419237bbbac375f2947e9876145c44b8c5fabb8..cb5aacc06a4962d5970d724b28f6852ae6a79222 100644 (file)
 @implementation I
 - (void)MethP __attribute__((availability(macosx,introduced=10.1.0,deprecated=10.2))) {}
 - (void)MethI __attribute__((availability(macosx,introduced=10.1.0,deprecated=10.2))) {}
+
+- (void)methodWithArg:(int)x andAnotherOne:(int)y { }
 @end
 
 // CHECK: @protocol P
-// CHECK: - (void) MethP __attribute__((availability(macos, introduced=10.1.0, deprecated=10.2)));
+// CHECK: - (void)MethP __attribute__((availability(macos, introduced=10.1.0, deprecated=10.2)));
 // CHECK: @end
 
 // CHECK: @interface I : NSObject<P> 
-// CHECK: - (void) MethI __attribute__((availability(macos, introduced=10.1.0, deprecated=10.2)));
+// CHECK: - (void)MethI __attribute__((availability(macos, introduced=10.1.0, deprecated=10.2)));
 // CHECK: @end
 
 // CHECK: @interface I(CAT)
-// CHECK: - (void) MethCAT __attribute__((availability(macos, introduced=10_1_0, deprecated=10_2)));
+// CHECK: - (void)MethCAT __attribute__((availability(macos, introduced=10_1_0, deprecated=10_2)));
 // CHECK: @end
 
 // CHECK: @implementation I
-// CHECK: - (void) MethP __attribute__((availability(macos, introduced=10.1.0, deprecated=10.2))) {
+// CHECK: - (void)MethP __attribute__((availability(macos, introduced=10.1.0, deprecated=10.2))) {
+// CHECK: }
+
+// CHECK: - (void)MethI __attribute__((availability(macos, introduced=10.1.0, deprecated=10.2))) {
 // CHECK: }
 
-// CHECK: - (void) MethI __attribute__((availability(macos, introduced=10.1.0, deprecated=10.2))) {
+// CHECK: - (void)methodWithArg:(int)x andAnotherOne:(int)y {
 // CHECK: }
 
 // CHECK: @end
index edf70639e5cc392731bb2d46a2b72e910663271a..b22e41f8459421a16696312b5601bfe1ec2e11cb 100644 (file)
@@ -14,7 +14,7 @@ void test(id x) {
 // expected-note@Inputs/lookup_right.h:3{{also found}}
 }
 
-// CHECK-PRINT: - (int) method;
-// CHECK-PRINT: - (double) method
+// CHECK-PRINT: - (int)method;
+// CHECK-PRINT: - (double)method
 // CHECK-PRINT: void test(id x)
 
index e5a09a31f69fc4770f0372c1b732ce1e18760a4e..ae6d0f0dd2e23ba1f0bea3680005334d23935b48 100644 (file)
@@ -1228,7 +1228,7 @@ TEST(DeclPrinter, TestObjCMethod1) {
     "@end\n",
     namedDecl(hasName("A:inRange:"),
               hasDescendant(namedDecl(hasName("printThis")))).bind("id"),
-    "- (int) A:(id)anObject inRange:(long)range"));
+    "- (int)A:(id)anObject inRange:(long)range"));
 }
 
 TEST(DeclPrinter, TestObjCProtocol1) {