aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Gil <mcg@google.com>2018-04-09 11:54:39 -0700
committerGravatar GitHub <noreply@github.com>2018-04-09 11:54:39 -0700
commit0a6618705389543191a8c44278d4c6791c84602a (patch)
tree4f195f31da90b29ffa5219e016b2cfd9ad0a7ccf
parent2f2bb7f4c717bb95df69735e93ae84de8b8feaad (diff)
Add lint checking for Objective-C++ sources (#1048)
* lint.sh now lints Objective-C++ too * cpplint checks system-style includes that should be user-style This prevents it from recognizing project sources as if they were C system headers and then complaining that they're in the wrong place. * cpplint checks #imports and #includes * cpplint checks that C++ system headers aren't #imported * cpplint checks for C system headers that could be C++ system headers * cpplint checks that Objective-C sources include their headers
-rw-r--r--Firestore/Example/Tests/Core/FSTQueryListenerTests.mm3
-rw-r--r--Firestore/Example/Tests/Core/FSTSyncEngine+Testing.h2
-rw-r--r--Firestore/Example/Tests/GoogleTest/FSTGoogleTestTests.mm4
-rw-r--r--Firestore/Example/Tests/Local/FSTEagerGarbageCollectorTests.mm4
-rw-r--r--Firestore/Example/Tests/Local/FSTLevelDBKeyTests.mm2
-rw-r--r--Firestore/Example/Tests/Local/FSTLevelDBLocalStoreTests.mm5
-rw-r--r--Firestore/Example/Tests/Local/FSTLevelDBMigrationsTests.mm4
-rw-r--r--Firestore/Example/Tests/Local/FSTLevelDBMutationQueueTests.mm4
-rw-r--r--Firestore/Example/Tests/Local/FSTLevelDBRemoteDocumentCacheTests.mm9
-rw-r--r--Firestore/Example/Tests/Local/FSTLevelDBTransactionTests.mm14
-rw-r--r--Firestore/Example/Tests/Local/FSTLocalStoreTests.h4
-rw-r--r--Firestore/Example/Tests/Local/FSTMemoryLocalStoreTests.mm5
-rw-r--r--Firestore/Example/Tests/Local/FSTMutationQueueTests.mm4
-rw-r--r--Firestore/Example/Tests/Local/FSTQueryCacheTests.mm2
-rw-r--r--Firestore/Example/Tests/Local/StringViewTests.mm3
-rw-r--r--Firestore/Example/Tests/Model/FSTFieldValueTests.mm1
-rw-r--r--Firestore/Example/Tests/SpecTests/FSTSpecTests.mm6
-rw-r--r--Firestore/Example/Tests/SpecTests/FSTSyncEngineTestDriver.mm6
-rw-r--r--Firestore/Example/Tests/Util/FSTHelpers.mm11
-rw-r--r--Firestore/Example/Tests/Util/FSTIntegrationTestCase.mm7
-rw-r--r--Firestore/Source/API/FIRDocumentReference.mm4
-rw-r--r--Firestore/Source/API/FIRFieldPath.mm3
-rw-r--r--Firestore/Source/API/FIRFirestore.mm7
-rw-r--r--Firestore/Source/API/FIRFirestoreVersion.mm2
-rw-r--r--Firestore/Source/Core/FSTFirestoreClient.mm3
-rw-r--r--Firestore/Source/Core/FSTListenSequence.mm2
-rw-r--r--Firestore/Source/Core/FSTQuery.mm1
-rw-r--r--Firestore/Source/Core/FSTSyncEngine.mm5
-rw-r--r--Firestore/Source/Core/FSTTransaction.mm4
-rw-r--r--Firestore/Source/Local/FSTLevelDB.mm5
-rw-r--r--Firestore/Source/Local/FSTLevelDBKey.h2
-rw-r--r--Firestore/Source/Local/FSTLevelDBMigrations.mm8
-rw-r--r--Firestore/Source/Local/FSTLevelDBMutationQueue.mm8
-rw-r--r--Firestore/Source/Local/FSTLevelDBQueryCache.mm5
-rw-r--r--Firestore/Source/Local/FSTLevelDBRemoteDocumentCache.mm5
-rw-r--r--Firestore/Source/Local/FSTLocalSerializer.mm2
-rw-r--r--Firestore/Source/Local/FSTLocalStore.mm2
-rw-r--r--Firestore/Source/Local/FSTNoOpGarbageCollector.mm2
-rw-r--r--Firestore/Source/Local/StringView.h17
-rw-r--r--Firestore/Source/Model/FSTDocumentKey.h1
-rw-r--r--Firestore/Source/Model/FSTDocumentKey.mm1
-rw-r--r--Firestore/Source/Model/FSTFieldValue.mm4
-rw-r--r--Firestore/Source/Remote/FSTDatastore.mm6
-rw-r--r--Firestore/Source/Remote/FSTRemoteStore.mm2
-rw-r--r--Firestore/Source/Remote/FSTSerializerBeta.mm9
-rw-r--r--Firestore/Source/Remote/FSTStream.mm3
-rw-r--r--Firestore/Source/Util/FSTAssert.h2
-rw-r--r--Firestore/Source/Util/FSTUsageValidation.h2
-rw-r--r--Firestore/Source/Util/FSTUsageValidation.mm2
-rw-r--r--Firestore/core/include/firebase/firestore/timestamp.h7
-rw-r--r--Firestore/core/src/firebase/firestore/geo_point.cc2
-rw-r--r--Firestore/core/src/firebase/firestore/immutable/sorted_map_base.h2
-rw-r--r--Firestore/core/src/firebase/firestore/immutable/tree_sorted_map.h3
-rw-r--r--Firestore/core/src/firebase/firestore/local/leveldb_transaction.cc3
-rw-r--r--Firestore/core/src/firebase/firestore/local/leveldb_transaction.h8
-rw-r--r--Firestore/core/src/firebase/firestore/model/database_id.h3
-rw-r--r--Firestore/core/src/firebase/firestore/model/field_value.cc3
-rw-r--r--Firestore/core/src/firebase/firestore/model/field_value.h3
-rw-r--r--Firestore/core/src/firebase/firestore/model/types.h2
-rw-r--r--Firestore/core/src/firebase/firestore/remote/serializer.h4
-rw-r--r--Firestore/core/src/firebase/firestore/util/assert_apple.mm6
-rw-r--r--Firestore/core/src/firebase/firestore/util/assert_stdio.cc3
-rw-r--r--Firestore/core/src/firebase/firestore/util/bits.h2
-rw-r--r--Firestore/core/src/firebase/firestore/util/comparison.cc3
-rw-r--r--Firestore/core/src/firebase/firestore/util/comparison.h2
-rw-r--r--Firestore/core/src/firebase/firestore/util/firebase_assert.h2
-rw-r--r--Firestore/core/src/firebase/firestore/util/log.h2
-rw-r--r--Firestore/core/src/firebase/firestore/util/log_stdio.cc2
-rw-r--r--Firestore/core/src/firebase/firestore/util/ordered_code.cc7
-rw-r--r--Firestore/core/src/firebase/firestore/util/secure_random.h2
-rw-r--r--Firestore/core/src/firebase/firestore/util/secure_random_arc4random.cc2
-rw-r--r--Firestore/core/src/firebase/firestore/util/secure_random_openssl.cc4
-rw-r--r--Firestore/core/src/firebase/firestore/util/string_printf.cc2
-rw-r--r--Firestore/core/src/firebase/firestore/util/string_printf.h3
-rw-r--r--Firestore/core/test/firebase/firestore/model/field_value_test.cc3
-rw-r--r--Firestore/core/test/firebase/firestore/remote/datastore_test.cc5
-rw-r--r--Firestore/core/test/firebase/firestore/util/autoid_test.cc4
-rw-r--r--Firestore/core/test/firebase/firestore/util/comparison_test.cc5
-rw-r--r--Firestore/core/test/firebase/firestore/util/secure_random_test.cc2
-rw-r--r--Firestore/core/test/firebase/firestore/util/string_printf_test.cc2
-rw-r--r--Firestore/core/test/firebase/firestore/util/string_util_test.cc2
-rw-r--r--scripts/cpplint.py38
-rwxr-xr-xscripts/lint.sh63
83 files changed, 272 insertions, 153 deletions
diff --git a/Firestore/Example/Tests/Core/FSTQueryListenerTests.mm b/Firestore/Example/Tests/Core/FSTQueryListenerTests.mm
index bc253d0..0454152 100644
--- a/Firestore/Example/Tests/Core/FSTQueryListenerTests.mm
+++ b/Firestore/Example/Tests/Core/FSTQueryListenerTests.mm
@@ -14,10 +14,9 @@
* limitations under the License.
*/
-#import "Firestore/Source/Core/FSTEventManager.h"
-
#import <XCTest/XCTest.h>
+#import "Firestore/Source/Core/FSTEventManager.h"
#import "Firestore/Source/Core/FSTQuery.h"
#import "Firestore/Source/Core/FSTView.h"
#import "Firestore/Source/Model/FSTDocument.h"
diff --git a/Firestore/Example/Tests/Core/FSTSyncEngine+Testing.h b/Firestore/Example/Tests/Core/FSTSyncEngine+Testing.h
index 6e7c45b..5d5c981 100644
--- a/Firestore/Example/Tests/Core/FSTSyncEngine+Testing.h
+++ b/Firestore/Example/Tests/Core/FSTSyncEngine+Testing.h
@@ -16,6 +16,8 @@
#import <Foundation/Foundation.h>
+#include <map>
+
#import "Firestore/Source/Core/FSTSyncEngine.h"
#include "Firestore/core/src/firebase/firestore/model/document_key.h"
diff --git a/Firestore/Example/Tests/GoogleTest/FSTGoogleTestTests.mm b/Firestore/Example/Tests/GoogleTest/FSTGoogleTestTests.mm
index 18dfaf3..ec14880 100644
--- a/Firestore/Example/Tests/GoogleTest/FSTGoogleTestTests.mm
+++ b/Firestore/Example/Tests/GoogleTest/FSTGoogleTestTests.mm
@@ -17,9 +17,9 @@
#import <XCTest/XCTest.h>
#import <objc/runtime.h>
-#include <gtest/gtest.h>
+#import "Firestore/Source/Util/FSTAssert.h"
-#include "Firestore/Source/Util/FSTAssert.h"
+#include "gtest/gtest.h"
/**
* An XCTest test case that finds C++ test cases written in the GoogleTest framework, runs them, and
diff --git a/Firestore/Example/Tests/Local/FSTEagerGarbageCollectorTests.mm b/Firestore/Example/Tests/Local/FSTEagerGarbageCollectorTests.mm
index 2cf530c..615b3f6 100644
--- a/Firestore/Example/Tests/Local/FSTEagerGarbageCollectorTests.mm
+++ b/Firestore/Example/Tests/Local/FSTEagerGarbageCollectorTests.mm
@@ -16,10 +16,10 @@
#import "Firestore/Source/Local/FSTEagerGarbageCollector.h"
-#include <set>
-
#import <XCTest/XCTest.h>
+#include <set>
+
#import "Firestore/Source/Local/FSTReferenceSet.h"
#import "Firestore/Source/Model/FSTDocumentKey.h"
diff --git a/Firestore/Example/Tests/Local/FSTLevelDBKeyTests.mm b/Firestore/Example/Tests/Local/FSTLevelDBKeyTests.mm
index f23b7c5..c4b7e29 100644
--- a/Firestore/Example/Tests/Local/FSTLevelDBKeyTests.mm
+++ b/Firestore/Example/Tests/Local/FSTLevelDBKeyTests.mm
@@ -18,6 +18,8 @@
#import <XCTest/XCTest.h>
+#include <string>
+
#import "Firestore/Example/Tests/Util/FSTHelpers.h"
#include "Firestore/core/src/firebase/firestore/util/string_apple.h"
diff --git a/Firestore/Example/Tests/Local/FSTLevelDBLocalStoreTests.mm b/Firestore/Example/Tests/Local/FSTLevelDBLocalStoreTests.mm
index 97e3c5b..29caa84 100644
--- a/Firestore/Example/Tests/Local/FSTLevelDBLocalStoreTests.mm
+++ b/Firestore/Example/Tests/Local/FSTLevelDBLocalStoreTests.mm
@@ -14,13 +14,10 @@
* limitations under the License.
*/
-#import "Firestore/Source/Local/FSTLocalStore.h"
-
-#import <XCTest/XCTest.h>
+#import "Firestore/Example/Tests/Local/FSTLocalStoreTests.h"
#import "Firestore/Source/Local/FSTLevelDB.h"
-#import "Firestore/Example/Tests/Local/FSTLocalStoreTests.h"
#import "Firestore/Example/Tests/Local/FSTPersistenceTestHelpers.h"
NS_ASSUME_NONNULL_BEGIN
diff --git a/Firestore/Example/Tests/Local/FSTLevelDBMigrationsTests.mm b/Firestore/Example/Tests/Local/FSTLevelDBMigrationsTests.mm
index 14910ce..3da8083 100644
--- a/Firestore/Example/Tests/Local/FSTLevelDBMigrationsTests.mm
+++ b/Firestore/Example/Tests/Local/FSTLevelDBMigrationsTests.mm
@@ -16,11 +16,15 @@
#import <XCTest/XCTest.h>
+#include <memory>
+#include <string>
+
#import "Firestore/Protos/objc/firestore/local/Target.pbobjc.h"
#import "Firestore/Source/Local/FSTLevelDB.h"
#import "Firestore/Source/Local/FSTLevelDBKey.h"
#import "Firestore/Source/Local/FSTLevelDBMigrations.h"
#import "Firestore/Source/Local/FSTLevelDBQueryCache.h"
+
#include "Firestore/core/src/firebase/firestore/util/ordered_code.h"
#include "leveldb/db.h"
diff --git a/Firestore/Example/Tests/Local/FSTLevelDBMutationQueueTests.mm b/Firestore/Example/Tests/Local/FSTLevelDBMutationQueueTests.mm
index cd8176e..60d9800 100644
--- a/Firestore/Example/Tests/Local/FSTLevelDBMutationQueueTests.mm
+++ b/Firestore/Example/Tests/Local/FSTLevelDBMutationQueueTests.mm
@@ -17,7 +17,8 @@
#import "Firestore/Source/Local/FSTLevelDBMutationQueue.h"
#import <XCTest/XCTest.h>
-#include <leveldb/db.h>
+
+#include <string>
#import "Firestore/Protos/objc/firestore/local/Mutation.pbobjc.h"
#import "Firestore/Source/Local/FSTLevelDB.h"
@@ -28,6 +29,7 @@
#include "Firestore/core/src/firebase/firestore/auth/user.h"
#include "Firestore/core/src/firebase/firestore/util/ordered_code.h"
+#include "leveldb/db.h"
NS_ASSUME_NONNULL_BEGIN
diff --git a/Firestore/Example/Tests/Local/FSTLevelDBRemoteDocumentCacheTests.mm b/Firestore/Example/Tests/Local/FSTLevelDBRemoteDocumentCacheTests.mm
index d69e613..7baf1ef 100644
--- a/Firestore/Example/Tests/Local/FSTLevelDBRemoteDocumentCacheTests.mm
+++ b/Firestore/Example/Tests/Local/FSTLevelDBRemoteDocumentCacheTests.mm
@@ -14,16 +14,15 @@
* limitations under the License.
*/
-#import "Firestore/Example/Tests/Local/FSTRemoteDocumentCacheTests.h"
-
-#include <leveldb/db.h>
+#include <string>
+#import "Firestore/Example/Tests/Local/FSTPersistenceTestHelpers.h"
+#import "Firestore/Example/Tests/Local/FSTRemoteDocumentCacheTests.h"
#import "Firestore/Source/Local/FSTLevelDB.h"
#import "Firestore/Source/Local/FSTLevelDBKey.h"
-#import "Firestore/Example/Tests/Local/FSTPersistenceTestHelpers.h"
-
#include "Firestore/core/src/firebase/firestore/util/ordered_code.h"
+#include "leveldb/db.h"
NS_ASSUME_NONNULL_BEGIN
diff --git a/Firestore/Example/Tests/Local/FSTLevelDBTransactionTests.mm b/Firestore/Example/Tests/Local/FSTLevelDBTransactionTests.mm
index a32ce9f..29f5d6c 100644
--- a/Firestore/Example/Tests/Local/FSTLevelDBTransactionTests.mm
+++ b/Firestore/Example/Tests/Local/FSTLevelDBTransactionTests.mm
@@ -14,15 +14,23 @@
* limitations under the License.
*/
+#import <XCTest/XCTest.h>
+
+#include <memory>
+#include <string>
+
+// This is out of order to satisfy the linter, which doesn't realize this is
+// the header corresponding to this test.
+// TODO(wilhuff): move this to the top once the test filename matches
#include "Firestore/core/src/firebase/firestore/local/leveldb_transaction.h"
-#import <XCTest/XCTest.h>
-#include <absl/strings/string_view.h>
-#include <leveldb/db.h>
#import "Firestore/Example/Tests/Local/FSTPersistenceTestHelpers.h"
#import "Firestore/Protos/objc/firestore/local/Mutation.pbobjc.h"
#import "Firestore/Protos/objc/firestore/local/Target.pbobjc.h"
+
#include "Firestore/core/src/firebase/firestore/local/leveldb_key.h"
+#include "absl/strings/string_view.h"
+#include "leveldb/db.h"
NS_ASSUME_NONNULL_BEGIN
diff --git a/Firestore/Example/Tests/Local/FSTLocalStoreTests.h b/Firestore/Example/Tests/Local/FSTLocalStoreTests.h
index 8e06d82..e514954 100644
--- a/Firestore/Example/Tests/Local/FSTLocalStoreTests.h
+++ b/Firestore/Example/Tests/Local/FSTLocalStoreTests.h
@@ -16,7 +16,9 @@
#import <XCTest/XCTest.h>
-@class FSTLocalStore;
+#import "Firestore/Source/Local/FSTLocalStore.h"
+
+@protocol FSTPersistence;
NS_ASSUME_NONNULL_BEGIN
diff --git a/Firestore/Example/Tests/Local/FSTMemoryLocalStoreTests.mm b/Firestore/Example/Tests/Local/FSTMemoryLocalStoreTests.mm
index b78239e..7708eed 100644
--- a/Firestore/Example/Tests/Local/FSTMemoryLocalStoreTests.mm
+++ b/Firestore/Example/Tests/Local/FSTMemoryLocalStoreTests.mm
@@ -14,13 +14,10 @@
* limitations under the License.
*/
-#import "Firestore/Source/Local/FSTLocalStore.h"
-
-#import <XCTest/XCTest.h>
+#import "Firestore/Example/Tests/Local/FSTLocalStoreTests.h"
#import "Firestore/Source/Local/FSTMemoryPersistence.h"
-#import "Firestore/Example/Tests/Local/FSTLocalStoreTests.h"
#import "Firestore/Example/Tests/Local/FSTPersistenceTestHelpers.h"
NS_ASSUME_NONNULL_BEGIN
diff --git a/Firestore/Example/Tests/Local/FSTMutationQueueTests.mm b/Firestore/Example/Tests/Local/FSTMutationQueueTests.mm
index b228657..5b5bdd1 100644
--- a/Firestore/Example/Tests/Local/FSTMutationQueueTests.mm
+++ b/Firestore/Example/Tests/Local/FSTMutationQueueTests.mm
@@ -17,6 +17,9 @@
#import "Firestore/Example/Tests/Local/FSTMutationQueueTests.h"
#import <FirebaseFirestore/FIRTimestamp.h>
+
+#include <set>
+
#import "Firestore/Source/Core/FSTQuery.h"
#import "Firestore/Source/Local/FSTEagerGarbageCollector.h"
#import "Firestore/Source/Local/FSTMutationQueue.h"
@@ -246,7 +249,6 @@ NS_ASSUME_NONNULL_BEGIN
return newBatches;
});
self.persistence.run("testNextMutationBatchAfterBatchIDSkipsAcknowledgedBatches", [&]() {
-
[self.mutationQueue acknowledgeBatch:batches[0] streamToken:nil];
XCTAssertEqualObjects([self.mutationQueue nextMutationBatchAfterBatchID:kFSTBatchIDUnknown],
batches[1]);
diff --git a/Firestore/Example/Tests/Local/FSTQueryCacheTests.mm b/Firestore/Example/Tests/Local/FSTQueryCacheTests.mm
index 956afa9..429a83a 100644
--- a/Firestore/Example/Tests/Local/FSTQueryCacheTests.mm
+++ b/Firestore/Example/Tests/Local/FSTQueryCacheTests.mm
@@ -16,6 +16,8 @@
#import "Firestore/Example/Tests/Local/FSTQueryCacheTests.h"
+#include <set>
+
#import "Firestore/Source/Core/FSTQuery.h"
#import "Firestore/Source/Core/FSTSnapshotVersion.h"
#import "Firestore/Source/Local/FSTEagerGarbageCollector.h"
diff --git a/Firestore/Example/Tests/Local/StringViewTests.mm b/Firestore/Example/Tests/Local/StringViewTests.mm
index b30b43d..7c86924 100644
--- a/Firestore/Example/Tests/Local/StringViewTests.mm
+++ b/Firestore/Example/Tests/Local/StringViewTests.mm
@@ -17,7 +17,8 @@
#import "Firestore/Source/Local/StringView.h"
#import <XCTest/XCTest.h>
-#include <leveldb/slice.h>
+
+#include "leveldb/slice.h"
using Firestore::StringView;
diff --git a/Firestore/Example/Tests/Model/FSTFieldValueTests.mm b/Firestore/Example/Tests/Model/FSTFieldValueTests.mm
index 98504b5..d16a01d 100644
--- a/Firestore/Example/Tests/Model/FSTFieldValueTests.mm
+++ b/Firestore/Example/Tests/Model/FSTFieldValueTests.mm
@@ -22,7 +22,6 @@
#import "Firestore/Source/API/FIRFirestore+Internal.h"
#import "Firestore/Source/API/FSTUserDataConverter.h"
-#import "Firestore/Source/Model/FSTFieldValue.h"
#import "Firestore/Example/Tests/API/FSTAPIHelpers.h"
#import "Firestore/Example/Tests/Util/FSTHelpers.h"
diff --git a/Firestore/Example/Tests/SpecTests/FSTSpecTests.mm b/Firestore/Example/Tests/SpecTests/FSTSpecTests.mm
index f66e6c7..128f825 100644
--- a/Firestore/Example/Tests/SpecTests/FSTSpecTests.mm
+++ b/Firestore/Example/Tests/SpecTests/FSTSpecTests.mm
@@ -16,12 +16,12 @@
#import "Firestore/Example/Tests/SpecTests/FSTSpecTests.h"
-#include <map>
-#include <utility>
-
#import <FirebaseFirestore/FIRFirestoreErrors.h>
#import <GRPCClient/GRPCCall.h>
+#include <map>
+#include <utility>
+
#import "Firestore/Source/Core/FSTEventManager.h"
#import "Firestore/Source/Core/FSTQuery.h"
#import "Firestore/Source/Core/FSTSnapshotVersion.h"
diff --git a/Firestore/Example/Tests/SpecTests/FSTSyncEngineTestDriver.mm b/Firestore/Example/Tests/SpecTests/FSTSyncEngineTestDriver.mm
index 91140bf..f167ce5 100644
--- a/Firestore/Example/Tests/SpecTests/FSTSyncEngineTestDriver.mm
+++ b/Firestore/Example/Tests/SpecTests/FSTSyncEngineTestDriver.mm
@@ -16,12 +16,12 @@
#import "Firestore/Example/Tests/SpecTests/FSTSyncEngineTestDriver.h"
-#include <map>
-#include <unordered_map>
-
#import <FirebaseFirestore/FIRFirestoreErrors.h>
#import <GRPCClient/GRPCCall.h>
+#include <map>
+#include <unordered_map>
+
#import "Firestore/Source/Core/FSTEventManager.h"
#import "Firestore/Source/Core/FSTQuery.h"
#import "Firestore/Source/Core/FSTSnapshotVersion.h"
diff --git a/Firestore/Example/Tests/Util/FSTHelpers.mm b/Firestore/Example/Tests/Util/FSTHelpers.mm
index cc120a9..8f170e6 100644
--- a/Firestore/Example/Tests/Util/FSTHelpers.mm
+++ b/Firestore/Example/Tests/Util/FSTHelpers.mm
@@ -16,15 +16,16 @@
#import "Firestore/Example/Tests/Util/FSTHelpers.h"
-#include <inttypes.h>
-#include <list>
-#include <map>
-#include <vector>
-
#import <FirebaseFirestore/FIRFieldPath.h>
#import <FirebaseFirestore/FIRGeoPoint.h>
#import <FirebaseFirestore/FIRTimestamp.h>
+#include <cinttypes>
+#include <list>
+#include <map>
+#include <utility>
+#include <vector>
+
#import "Firestore/Source/API/FIRFieldPath+Internal.h"
#import "Firestore/Source/API/FSTUserDataConverter.h"
#import "Firestore/Source/Core/FSTQuery.h"
diff --git a/Firestore/Example/Tests/Util/FSTIntegrationTestCase.mm b/Firestore/Example/Tests/Util/FSTIntegrationTestCase.mm
index 611bcc8..79163da 100644
--- a/Firestore/Example/Tests/Util/FSTIntegrationTestCase.mm
+++ b/Firestore/Example/Tests/Util/FSTIntegrationTestCase.mm
@@ -16,14 +16,15 @@
#import "Firestore/Example/Tests/Util/FSTIntegrationTestCase.h"
-#include <memory>
-#include <utility>
-
#import <FirebaseCore/FIRLogger.h>
#import <FirebaseFirestore/FirebaseFirestore-umbrella.h>
#import <GRPCClient/GRPCCall+ChannelArg.h>
#import <GRPCClient/GRPCCall+Tests.h>
+#include <memory>
+#include <string>
+#include <utility>
+
#include "Firestore/core/src/firebase/firestore/auth/empty_credentials_provider.h"
#include "Firestore/core/src/firebase/firestore/model/database_id.h"
#include "Firestore/core/src/firebase/firestore/util/autoid.h"
diff --git a/Firestore/Source/API/FIRDocumentReference.mm b/Firestore/Source/API/FIRDocumentReference.mm
index cc52d45..67e401d 100644
--- a/Firestore/Source/API/FIRDocumentReference.mm
+++ b/Firestore/Source/API/FIRDocumentReference.mm
@@ -16,11 +16,11 @@
#import "FIRDocumentReference.h"
+#import <GRPCClient/GRPCCall.h>
+
#include <memory>
#include <utility>
-#import <GRPCClient/GRPCCall.h>
-
#import "FIRFirestoreErrors.h"
#import "FIRSnapshotMetadata.h"
#import "Firestore/Source/API/FIRCollectionReference+Internal.h"
diff --git a/Firestore/Source/API/FIRFieldPath.mm b/Firestore/Source/API/FIRFieldPath.mm
index c651160..d0d8714 100644
--- a/Firestore/Source/API/FIRFieldPath.mm
+++ b/Firestore/Source/API/FIRFieldPath.mm
@@ -14,13 +14,14 @@
* limitations under the License.
*/
-#import "Firestore/Source/API/FIRFieldPath+Internal.h"
+#import "FIRFieldPath.h"
#include <functional>
#include <string>
#include <utility>
#include <vector>
+#import "Firestore/Source/API/FIRFieldPath+Internal.h"
#import "Firestore/Source/Util/FSTUsageValidation.h"
#include "Firestore/core/src/firebase/firestore/model/field_path.h"
diff --git a/Firestore/Source/API/FIRFirestore.mm b/Firestore/Source/API/FIRFirestore.mm
index 45d67cf..fe461d6 100644
--- a/Firestore/Source/API/FIRFirestore.mm
+++ b/Firestore/Source/API/FIRFirestore.mm
@@ -16,14 +16,14 @@
#import "FIRFirestore.h"
-#include <memory>
-#include <utility>
-
#import <FirebaseCore/FIRApp.h>
#import <FirebaseCore/FIRAppInternal.h>
#import <FirebaseCore/FIRLogger.h>
#import <FirebaseCore/FIROptions.h>
+#include <memory>
+#include <utility>
+
#import "FIRFirestoreSettings.h"
#import "Firestore/Source/API/FIRCollectionReference+Internal.h"
#import "Firestore/Source/API/FIRDocumentReference+Internal.h"
@@ -31,7 +31,6 @@
#import "Firestore/Source/API/FIRTransaction+Internal.h"
#import "Firestore/Source/API/FIRWriteBatch+Internal.h"
#import "Firestore/Source/API/FSTUserDataConverter.h"
-
#import "Firestore/Source/Core/FSTFirestoreClient.h"
#import "Firestore/Source/Util/FSTAssert.h"
#import "Firestore/Source/Util/FSTDispatchQueue.h"
diff --git a/Firestore/Source/API/FIRFirestoreVersion.mm b/Firestore/Source/API/FIRFirestoreVersion.mm
index b1fe480..8ebe814 100644
--- a/Firestore/Source/API/FIRFirestoreVersion.mm
+++ b/Firestore/Source/API/FIRFirestoreVersion.mm
@@ -14,6 +14,8 @@
* limitations under the License.
*/
+#import "Firestore/Source/API/FIRFirestoreVersion.h"
+
#ifndef FIRFirestore_VERSION
#error "FIRFirestore_VERSION is not defined: add -DFIRFirestore_VERSION=... to the build invocation"
#endif
diff --git a/Firestore/Source/Core/FSTFirestoreClient.mm b/Firestore/Source/Core/FSTFirestoreClient.mm
index c0d38ca..33d1903 100644
--- a/Firestore/Source/Core/FSTFirestoreClient.mm
+++ b/Firestore/Source/Core/FSTFirestoreClient.mm
@@ -16,7 +16,8 @@
#import "Firestore/Source/Core/FSTFirestoreClient.h"
-#import <future>
+#include <future> // NOLINT(build/c++11)
+#include <memory>
#import "Firestore/Source/Core/FSTEventManager.h"
#import "Firestore/Source/Core/FSTSyncEngine.h"
diff --git a/Firestore/Source/Core/FSTListenSequence.mm b/Firestore/Source/Core/FSTListenSequence.mm
index 6f50d35..6a9f9ae 100644
--- a/Firestore/Source/Core/FSTListenSequence.mm
+++ b/Firestore/Source/Core/FSTListenSequence.mm
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-#import "FSTListenSequence.h"
+#import "Firestore/Source/Core/FSTListenSequence.h"
NS_ASSUME_NONNULL_BEGIN
diff --git a/Firestore/Source/Core/FSTQuery.mm b/Firestore/Source/Core/FSTQuery.mm
index 811ad03..8f49c26 100644
--- a/Firestore/Source/Core/FSTQuery.mm
+++ b/Firestore/Source/Core/FSTQuery.mm
@@ -17,6 +17,7 @@
#import "Firestore/Source/Core/FSTQuery.h"
#include <memory>
+#include <string>
#include <utility>
#import "Firestore/Source/API/FIRFirestore+Internal.h"
diff --git a/Firestore/Source/Core/FSTSyncEngine.mm b/Firestore/Source/Core/FSTSyncEngine.mm
index 673991c..0a4fc94 100644
--- a/Firestore/Source/Core/FSTSyncEngine.mm
+++ b/Firestore/Source/Core/FSTSyncEngine.mm
@@ -16,11 +16,12 @@
#import "Firestore/Source/Core/FSTSyncEngine.h"
+#import <GRPCClient/GRPCCall.h>
+
#include <map>
+#include <set>
#include <unordered_map>
-#import <GRPCClient/GRPCCall.h>
-
#import "FIRFirestoreErrors.h"
#import "Firestore/Source/Core/FSTQuery.h"
#import "Firestore/Source/Core/FSTSnapshotVersion.h"
diff --git a/Firestore/Source/Core/FSTTransaction.mm b/Firestore/Source/Core/FSTTransaction.mm
index 9e67ed4..71c1f35 100644
--- a/Firestore/Source/Core/FSTTransaction.mm
+++ b/Firestore/Source/Core/FSTTransaction.mm
@@ -16,11 +16,11 @@
#import "Firestore/Source/Core/FSTTransaction.h"
+#import <GRPCClient/GRPCCall.h>
+
#include <map>
#include <vector>
-#import <GRPCClient/GRPCCall.h>
-
#import "FIRFirestoreErrors.h"
#import "FIRSetOptions.h"
#import "Firestore/Source/API/FSTUserDataConverter.h"
diff --git a/Firestore/Source/Local/FSTLevelDB.mm b/Firestore/Source/Local/FSTLevelDB.mm
index 4812228..fae85e7 100644
--- a/Firestore/Source/Local/FSTLevelDB.mm
+++ b/Firestore/Source/Local/FSTLevelDB.mm
@@ -16,7 +16,7 @@
#import "Firestore/Source/Local/FSTLevelDB.h"
-#include <leveldb/db.h>
+#include <memory>
#import "FIRFirestoreErrors.h"
#import "Firestore/Source/Local/FSTLevelDBMigrations.h"
@@ -26,13 +26,14 @@
#import "Firestore/Source/Remote/FSTSerializerBeta.h"
#import "Firestore/Source/Util/FSTAssert.h"
#import "Firestore/Source/Util/FSTLogger.h"
-#include "absl/memory/memory.h"
#include "Firestore/core/src/firebase/firestore/auth/user.h"
#include "Firestore/core/src/firebase/firestore/core/database_info.h"
#include "Firestore/core/src/firebase/firestore/local/leveldb_transaction.h"
#include "Firestore/core/src/firebase/firestore/model/database_id.h"
#include "Firestore/core/src/firebase/firestore/util/string_apple.h"
+#include "absl/memory/memory.h"
+#include "leveldb/db.h"
namespace util = firebase::firestore::util;
using firebase::firestore::auth::User;
diff --git a/Firestore/Source/Local/FSTLevelDBKey.h b/Firestore/Source/Local/FSTLevelDBKey.h
index c7a64ee..5b234ec 100644
--- a/Firestore/Source/Local/FSTLevelDBKey.h
+++ b/Firestore/Source/Local/FSTLevelDBKey.h
@@ -16,6 +16,8 @@
#import <Foundation/Foundation.h>
+#include <string>
+
#import "Firestore/Source/Core/FSTTypes.h"
#import "Firestore/Source/Local/StringView.h"
diff --git a/Firestore/Source/Local/FSTLevelDBMigrations.mm b/Firestore/Source/Local/FSTLevelDBMigrations.mm
index cf06c9f..fefd0f7 100644
--- a/Firestore/Source/Local/FSTLevelDBMigrations.mm
+++ b/Firestore/Source/Local/FSTLevelDBMigrations.mm
@@ -14,16 +14,18 @@
* limitations under the License.
*/
-#include "Firestore/Source/Local/FSTLevelDBMigrations.h"
+#import "Firestore/Source/Local/FSTLevelDBMigrations.h"
-#include <absl/strings/match.h>
-#include "leveldb/write_batch.h"
+#include <string>
#import "Firestore/Protos/objc/firestore/local/Target.pbobjc.h"
#import "Firestore/Source/Local/FSTLevelDBKey.h"
#import "Firestore/Source/Local/FSTLevelDBQueryCache.h"
#import "Firestore/Source/Util/FSTAssert.h"
+#include "absl/strings/match.h"
+#include "leveldb/write_batch.h"
+
NS_ASSUME_NONNULL_BEGIN
// Current version of the schema defined in this file.
diff --git a/Firestore/Source/Local/FSTLevelDBMutationQueue.mm b/Firestore/Source/Local/FSTLevelDBMutationQueue.mm
index 29acead..75c3cf6 100644
--- a/Firestore/Source/Local/FSTLevelDBMutationQueue.mm
+++ b/Firestore/Source/Local/FSTLevelDBMutationQueue.mm
@@ -16,13 +16,10 @@
#import "Firestore/Source/Local/FSTLevelDBMutationQueue.h"
+#include <memory>
#include <set>
#include <string>
-#include <absl/strings/match.h>
-#include <leveldb/db.h>
-#include <leveldb/write_batch.h>
-
#import "Firestore/Protos/objc/firestore/local/Mutation.pbobjc.h"
#import "Firestore/Source/Core/FSTQuery.h"
#import "Firestore/Source/Local/FSTLevelDB.h"
@@ -38,6 +35,9 @@
#include "Firestore/core/src/firebase/firestore/model/resource_path.h"
#include "Firestore/core/src/firebase/firestore/util/string_apple.h"
#include "Firestore/core/src/firebase/firestore/util/string_util.h"
+#include "absl/strings/match.h"
+#include "leveldb/db.h"
+#include "leveldb/write_batch.h"
NS_ASSUME_NONNULL_BEGIN
diff --git a/Firestore/Source/Local/FSTLevelDBQueryCache.mm b/Firestore/Source/Local/FSTLevelDBQueryCache.mm
index aa1ab41..5fde7d7 100644
--- a/Firestore/Source/Local/FSTLevelDBQueryCache.mm
+++ b/Firestore/Source/Local/FSTLevelDBQueryCache.mm
@@ -16,6 +16,9 @@
#import "Firestore/Source/Local/FSTLevelDBQueryCache.h"
+#include <memory>
+#include <string>
+
#import "Firestore/Protos/objc/firestore/local/Target.pbobjc.h"
#import "Firestore/Source/Core/FSTQuery.h"
#import "Firestore/Source/Local/FSTLevelDB.h"
@@ -23,9 +26,9 @@
#import "Firestore/Source/Local/FSTLocalSerializer.h"
#import "Firestore/Source/Local/FSTQueryData.h"
#import "Firestore/Source/Util/FSTAssert.h"
-#include "absl/strings/match.h"
#include "Firestore/core/src/firebase/firestore/model/document_key.h"
+#include "absl/strings/match.h"
NS_ASSUME_NONNULL_BEGIN
diff --git a/Firestore/Source/Local/FSTLevelDBRemoteDocumentCache.mm b/Firestore/Source/Local/FSTLevelDBRemoteDocumentCache.mm
index 703fc69..f655e3a 100644
--- a/Firestore/Source/Local/FSTLevelDBRemoteDocumentCache.mm
+++ b/Firestore/Source/Local/FSTLevelDBRemoteDocumentCache.mm
@@ -16,8 +16,6 @@
#import "Firestore/Source/Local/FSTLevelDBRemoteDocumentCache.h"
-#include <leveldb/db.h>
-#include <leveldb/write_batch.h>
#include <string>
#import "Firestore/Protos/objc/firestore/local/MaybeDocument.pbobjc.h"
@@ -29,8 +27,11 @@
#import "Firestore/Source/Model/FSTDocumentDictionary.h"
#import "Firestore/Source/Model/FSTDocumentSet.h"
#import "Firestore/Source/Util/FSTAssert.h"
+
#include "Firestore/core/src/firebase/firestore/local/leveldb_transaction.h"
#include "Firestore/core/src/firebase/firestore/model/document_key.h"
+#include "leveldb/db.h"
+#include "leveldb/write_batch.h"
NS_ASSUME_NONNULL_BEGIN
diff --git a/Firestore/Source/Local/FSTLocalSerializer.mm b/Firestore/Source/Local/FSTLocalSerializer.mm
index 1d9455d..61e173a 100644
--- a/Firestore/Source/Local/FSTLocalSerializer.mm
+++ b/Firestore/Source/Local/FSTLocalSerializer.mm
@@ -16,7 +16,7 @@
#import "Firestore/Source/Local/FSTLocalSerializer.h"
-#include <inttypes.h>
+#include <cinttypes>
#import "Firestore/Protos/objc/firestore/local/MaybeDocument.pbobjc.h"
#import "Firestore/Protos/objc/firestore/local/Mutation.pbobjc.h"
diff --git a/Firestore/Source/Local/FSTLocalStore.mm b/Firestore/Source/Local/FSTLocalStore.mm
index 990e332..b5dfeec 100644
--- a/Firestore/Source/Local/FSTLocalStore.mm
+++ b/Firestore/Source/Local/FSTLocalStore.mm
@@ -16,6 +16,8 @@
#import "Firestore/Source/Local/FSTLocalStore.h"
+#include <set>
+
#import "FIRTimestamp.h"
#import "Firestore/Source/Core/FSTListenSequence.h"
#import "Firestore/Source/Core/FSTQuery.h"
diff --git a/Firestore/Source/Local/FSTNoOpGarbageCollector.mm b/Firestore/Source/Local/FSTNoOpGarbageCollector.mm
index 451cde2..421d283 100644
--- a/Firestore/Source/Local/FSTNoOpGarbageCollector.mm
+++ b/Firestore/Source/Local/FSTNoOpGarbageCollector.mm
@@ -16,6 +16,8 @@
#import "Firestore/Source/Local/FSTNoOpGarbageCollector.h"
+#include <set>
+
#include "Firestore/core/src/firebase/firestore/model/document_key.h"
using firebase::firestore::model::DocumentKey;
diff --git a/Firestore/Source/Local/StringView.h b/Firestore/Source/Local/StringView.h
index 4e36cff..85afcaa 100644
--- a/Firestore/Source/Local/StringView.h
+++ b/Firestore/Source/Local/StringView.h
@@ -19,9 +19,10 @@
#import <Foundation/Foundation.h>
-#include <leveldb/slice.h>
#include <string>
+
#include "absl/strings/string_view.h"
+#include "leveldb/slice.h"
namespace Firestore {
@@ -43,7 +44,7 @@ class StringView {
// Creates a StringView from an NSString. When StringView is an argument type
// into which an NSString* is passed, the caller should ensure that the
// NSString is retained.
- StringView(NSString *str)
+ StringView(NSString *str) // NOLINT(runtime/explicit)
: data_([str UTF8String]), size_([str lengthOfBytesUsingEncoding:NSUTF8StringEncoding]) {
}
@@ -54,20 +55,24 @@ class StringView {
// Creates a StringView from the given char* pointer but computes the size
// with strlen. This is really only suitable for passing C string literals.
- StringView(const char *data) : data_(data), size_(strlen(data)) {
+ StringView(const char *data) // NOLINT(runtime/explicit)
+ : data_(data), size_(strlen(data)) {
}
// Creates a StringView from the given slice.
- StringView(leveldb::Slice slice) : data_(slice.data()), size_(slice.size()) {
+ StringView(leveldb::Slice slice) // NOLINT(runtime/explicit)
+ : data_(slice.data()), size_(slice.size()) {
}
// Creates a StringView from the absl::string_view.
- StringView(absl::string_view s) : data_(s.data()), size_(s.size()) {
+ StringView(absl::string_view s) // NOLINT(runtime/explicit)
+ : data_(s.data()), size_(s.size()) {
}
// Creates a StringView from the given std::string. The string must be an
// lvalue for the lifetime requirements to be satisfied.
- StringView(const std::string &str) : data_(str.data()), size_(str.size()) {
+ StringView(const std::string &str) // NOLINT(runtime/explicit)
+ : data_(str.data()), size_(str.size()) {
}
// Converts this StringView to a Slice, which is an equivalent (and more
diff --git a/Firestore/Source/Model/FSTDocumentKey.h b/Firestore/Source/Model/FSTDocumentKey.h
index dbcff2c..a403117 100644
--- a/Firestore/Source/Model/FSTDocumentKey.h
+++ b/Firestore/Source/Model/FSTDocumentKey.h
@@ -17,6 +17,7 @@
#import <Foundation/Foundation.h>
#include <initializer_list>
+#include <string>
#include "Firestore/core/src/firebase/firestore/model/resource_path.h"
diff --git a/Firestore/Source/Model/FSTDocumentKey.mm b/Firestore/Source/Model/FSTDocumentKey.mm
index cbe9c89..679d7a6 100644
--- a/Firestore/Source/Model/FSTDocumentKey.mm
+++ b/Firestore/Source/Model/FSTDocumentKey.mm
@@ -16,6 +16,7 @@
#import "Firestore/Source/Model/FSTDocumentKey.h"
+#include <string>
#include <utility>
#import "Firestore/Source/Core/FSTFirestoreClient.h"
diff --git a/Firestore/Source/Model/FSTFieldValue.mm b/Firestore/Source/Model/FSTFieldValue.mm
index 80bd11f..0d7c649 100644
--- a/Firestore/Source/Model/FSTFieldValue.mm
+++ b/Firestore/Source/Model/FSTFieldValue.mm
@@ -18,9 +18,6 @@
#import "FIRTimestamp.h"
-#include "Firestore/core/src/firebase/firestore/util/comparison.h"
-#include "Firestore/core/src/firebase/firestore/util/string_apple.h"
-
#import "Firestore/Source/API/FIRGeoPoint+Internal.h"
#import "Firestore/Source/API/FIRSnapshotOptions+Internal.h"
#import "Firestore/Source/Model/FSTDocumentKey.h"
@@ -29,6 +26,7 @@
#include "Firestore/core/src/firebase/firestore/model/database_id.h"
#include "Firestore/core/src/firebase/firestore/model/field_path.h"
+#include "Firestore/core/src/firebase/firestore/util/comparison.h"
#include "Firestore/core/src/firebase/firestore/util/string_apple.h"
namespace util = firebase::firestore::util;
diff --git a/Firestore/Source/Remote/FSTDatastore.mm b/Firestore/Source/Remote/FSTDatastore.mm
index 501237f..b34f78f 100644
--- a/Firestore/Source/Remote/FSTDatastore.mm
+++ b/Firestore/Source/Remote/FSTDatastore.mm
@@ -16,12 +16,12 @@
#import "Firestore/Source/Remote/FSTDatastore.h"
-#include <memory>
-#include <vector>
-
#import <GRPCClient/GRPCCall+OAuth2.h>
#import <ProtoRPC/ProtoRPC.h>
+#include <memory>
+#include <vector>
+
#import "FIRFirestoreErrors.h"
#import "Firestore/Source/API/FIRFirestore+Internal.h"
#import "Firestore/Source/API/FIRFirestoreVersion.h"
diff --git a/Firestore/Source/Remote/FSTRemoteStore.mm b/Firestore/Source/Remote/FSTRemoteStore.mm
index 8892ffb..39d285a 100644
--- a/Firestore/Source/Remote/FSTRemoteStore.mm
+++ b/Firestore/Source/Remote/FSTRemoteStore.mm
@@ -16,7 +16,7 @@
#import "Firestore/Source/Remote/FSTRemoteStore.h"
-#include <inttypes.h>
+#include <cinttypes>
#import "Firestore/Source/Core/FSTQuery.h"
#import "Firestore/Source/Core/FSTSnapshotVersion.h"
diff --git a/Firestore/Source/Remote/FSTSerializerBeta.mm b/Firestore/Source/Remote/FSTSerializerBeta.mm
index 5433154..095d731 100644
--- a/Firestore/Source/Remote/FSTSerializerBeta.mm
+++ b/Firestore/Source/Remote/FSTSerializerBeta.mm
@@ -16,10 +16,12 @@
#import "Firestore/Source/Remote/FSTSerializerBeta.h"
-#include <inttypes.h>
-
#import <GRPCClient/GRPCCall.h>
-#import "FIRTimestamp.h"
+
+#include <cinttypes>
+#include <string>
+#include <utility>
+#include <vector>
#import "Firestore/Protos/objc/google/firestore/v1beta1/Common.pbobjc.h"
#import "Firestore/Protos/objc/google/firestore/v1beta1/Document.pbobjc.h"
@@ -31,6 +33,7 @@
#import "FIRFirestoreErrors.h"
#import "FIRGeoPoint.h"
+#import "FIRTimestamp.h"
#import "Firestore/Source/Core/FSTQuery.h"
#import "Firestore/Source/Core/FSTSnapshotVersion.h"
#import "Firestore/Source/Local/FSTQueryData.h"
diff --git a/Firestore/Source/Remote/FSTStream.mm b/Firestore/Source/Remote/FSTStream.mm
index f65230b..a96feae 100644
--- a/Firestore/Source/Remote/FSTStream.mm
+++ b/Firestore/Source/Remote/FSTStream.mm
@@ -14,8 +14,6 @@
* limitations under the License.
*/
-#import "Firestore/Source/Remote/FSTDatastore.h"
-
#import <GRPCClient/GRPCCall+OAuth2.h>
#import <GRPCClient/GRPCCall.h>
@@ -24,6 +22,7 @@
#import "Firestore/Source/Local/FSTQueryData.h"
#import "Firestore/Source/Model/FSTMutation.h"
#import "Firestore/Source/Remote/FSTBufferedWriter.h"
+#import "Firestore/Source/Remote/FSTDatastore.h"
#import "Firestore/Source/Remote/FSTExponentialBackoff.h"
#import "Firestore/Source/Remote/FSTSerializerBeta.h"
#import "Firestore/Source/Remote/FSTStream.h"
diff --git a/Firestore/Source/Util/FSTAssert.h b/Firestore/Source/Util/FSTAssert.h
index 77bbb1d..610d306 100644
--- a/Firestore/Source/Util/FSTAssert.h
+++ b/Firestore/Source/Util/FSTAssert.h
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-#include <Foundation/Foundation.h>
+#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
diff --git a/Firestore/Source/Util/FSTUsageValidation.h b/Firestore/Source/Util/FSTUsageValidation.h
index a80dafa..05933ea 100644
--- a/Firestore/Source/Util/FSTUsageValidation.h
+++ b/Firestore/Source/Util/FSTUsageValidation.h
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-#include <Foundation/Foundation.h>
+#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
diff --git a/Firestore/Source/Util/FSTUsageValidation.mm b/Firestore/Source/Util/FSTUsageValidation.mm
index 82128f4..93abf87 100644
--- a/Firestore/Source/Util/FSTUsageValidation.mm
+++ b/Firestore/Source/Util/FSTUsageValidation.mm
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-#include <Foundation/Foundation.h>
+#import "Firestore/Source/Util/FSTUsageValidation.h"
NS_ASSUME_NONNULL_BEGIN
diff --git a/Firestore/core/include/firebase/firestore/timestamp.h b/Firestore/core/include/firebase/firestore/timestamp.h
index 2ee1c46..1736981 100644
--- a/Firestore/core/include/firebase/firestore/timestamp.h
+++ b/Firestore/core/include/firebase/firestore/timestamp.h
@@ -17,12 +17,13 @@
#ifndef FIRESTORE_CORE_INCLUDE_FIREBASE_FIRESTORE_TIMESTAMP_H_
#define FIRESTORE_CORE_INCLUDE_FIREBASE_FIRESTORE_TIMESTAMP_H_
-#include <stdint.h>
-#include <time.h>
+#include <cstdint>
+#include <ctime>
+#include <string>
+
#if !defined(_STLPORT_VERSION)
#include <chrono> // NOLINT(build/c++11)
#endif // !defined(_STLPORT_VERSION)
-#include <string>
namespace firebase {
diff --git a/Firestore/core/src/firebase/firestore/geo_point.cc b/Firestore/core/src/firebase/firestore/geo_point.cc
index fb01023..2f35390 100644
--- a/Firestore/core/src/firebase/firestore/geo_point.cc
+++ b/Firestore/core/src/firebase/firestore/geo_point.cc
@@ -16,7 +16,7 @@
#include "Firestore/core/include/firebase/firestore/geo_point.h"
-#include <math.h>
+#include <cmath>
#include "Firestore/core/src/firebase/firestore/util/firebase_assert.h"
diff --git a/Firestore/core/src/firebase/firestore/immutable/sorted_map_base.h b/Firestore/core/src/firebase/firestore/immutable/sorted_map_base.h
index accb5ef..cfb19c1 100644
--- a/Firestore/core/src/firebase/firestore/immutable/sorted_map_base.h
+++ b/Firestore/core/src/firebase/firestore/immutable/sorted_map_base.h
@@ -17,7 +17,7 @@
#ifndef FIRESTORE_CORE_SRC_FIREBASE_FIRESTORE_IMMUTABLE_SORTED_MAP_BASE_H_
#define FIRESTORE_CORE_SRC_FIREBASE_FIRESTORE_IMMUTABLE_SORTED_MAP_BASE_H_
-#include <stdint.h>
+#include <cstdint>
namespace firebase {
namespace firestore {
diff --git a/Firestore/core/src/firebase/firestore/immutable/tree_sorted_map.h b/Firestore/core/src/firebase/firestore/immutable/tree_sorted_map.h
index e3102e7..dfe270d 100644
--- a/Firestore/core/src/firebase/firestore/immutable/tree_sorted_map.h
+++ b/Firestore/core/src/firebase/firestore/immutable/tree_sorted_map.h
@@ -17,9 +17,8 @@
#ifndef FIRESTORE_CORE_SRC_FIREBASE_FIRESTORE_IMMUTABLE_TREE_SORTED_MAP_H_
#define FIRESTORE_CORE_SRC_FIREBASE_FIRESTORE_IMMUTABLE_TREE_SORTED_MAP_H_
-#include <assert.h>
-
#include <algorithm>
+#include <cassert>
#include <functional>
#include <memory>
#include <utility>
diff --git a/Firestore/core/src/firebase/firestore/local/leveldb_transaction.cc b/Firestore/core/src/firebase/firestore/local/leveldb_transaction.cc
index d84d441..f998550 100644
--- a/Firestore/core/src/firebase/firestore/local/leveldb_transaction.cc
+++ b/Firestore/core/src/firebase/firestore/local/leveldb_transaction.cc
@@ -16,12 +16,11 @@
#include "Firestore/core/src/firebase/firestore/local/leveldb_transaction.h"
-#include <leveldb/write_batch.h>
-
#include "Firestore/core/src/firebase/firestore/local/leveldb_key.h"
#include "Firestore/core/src/firebase/firestore/util/firebase_assert.h"
#include "Firestore/core/src/firebase/firestore/util/log.h"
#include "absl/memory/memory.h"
+#include "leveldb/write_batch.h"
using leveldb::DB;
using leveldb::ReadOptions;
diff --git a/Firestore/core/src/firebase/firestore/local/leveldb_transaction.h b/Firestore/core/src/firebase/firestore/local/leveldb_transaction.h
index 56a9a77..a6ddce2 100644
--- a/Firestore/core/src/firebase/firestore/local/leveldb_transaction.h
+++ b/Firestore/core/src/firebase/firestore/local/leveldb_transaction.h
@@ -17,16 +17,16 @@
#ifndef FIRESTORE_CORE_SRC_FIREBASE_FIRESTORE_LOCAL_LEVELDB_TRANSACTION_H_
#define FIRESTORE_CORE_SRC_FIREBASE_FIRESTORE_LOCAL_LEVELDB_TRANSACTION_H_
-#include <absl/strings/string_view.h>
-#include <leveldb/db.h>
-
-#include <stdint.h>
+#include <cstdint>
#include <map>
#include <memory>
#include <set>
#include <string>
#include <utility>
+#include "absl/strings/string_view.h"
+#include "leveldb/db.h"
+
#if __OBJC__
#import <Protobuf/GPBProtocolBuffers.h>
#endif
diff --git a/Firestore/core/src/firebase/firestore/model/database_id.h b/Firestore/core/src/firebase/firestore/model/database_id.h
index 2ad1332..e1feca9 100644
--- a/Firestore/core/src/firebase/firestore/model/database_id.h
+++ b/Firestore/core/src/firebase/firestore/model/database_id.h
@@ -17,8 +17,7 @@
#ifndef FIRESTORE_CORE_SRC_FIREBASE_FIRESTORE_MODEL_DATABASE_ID_H_
#define FIRESTORE_CORE_SRC_FIREBASE_FIRESTORE_MODEL_DATABASE_ID_H_
-#include <stdint.h>
-
+#include <cstdint>
#include <string>
#include "absl/strings/string_view.h"
diff --git a/Firestore/core/src/firebase/firestore/model/field_value.cc b/Firestore/core/src/firebase/firestore/model/field_value.cc
index 2c1af53..1a40331 100644
--- a/Firestore/core/src/firebase/firestore/model/field_value.cc
+++ b/Firestore/core/src/firebase/firestore/model/field_value.cc
@@ -16,9 +16,8 @@
#include "Firestore/core/src/firebase/firestore/model/field_value.h"
-#include <math.h>
-
#include <algorithm>
+#include <cmath>
#include <memory>
#include <utility>
#include <vector>
diff --git a/Firestore/core/src/firebase/firestore/model/field_value.h b/Firestore/core/src/firebase/firestore/model/field_value.h
index c42d533..c70e332 100644
--- a/Firestore/core/src/firebase/firestore/model/field_value.h
+++ b/Firestore/core/src/firebase/firestore/model/field_value.h
@@ -17,8 +17,7 @@
#ifndef FIRESTORE_CORE_SRC_FIREBASE_FIRESTORE_MODEL_FIELD_VALUE_H_
#define FIRESTORE_CORE_SRC_FIREBASE_FIRESTORE_MODEL_FIELD_VALUE_H_
-#include <stdint.h>
-
+#include <cstdint>
#include <map>
#include <memory>
#include <string>
diff --git a/Firestore/core/src/firebase/firestore/model/types.h b/Firestore/core/src/firebase/firestore/model/types.h
index fc1b196..3f813be 100644
--- a/Firestore/core/src/firebase/firestore/model/types.h
+++ b/Firestore/core/src/firebase/firestore/model/types.h
@@ -17,7 +17,7 @@
#ifndef FIRESTORE_CORE_SRC_FIREBASE_FIRESTORE_MODEL_TYPES_H_
#define FIRESTORE_CORE_SRC_FIREBASE_FIRESTORE_MODEL_TYPES_H_
-#include <stdint.h>
+#include <cstdint>
namespace firebase {
namespace firestore {
diff --git a/Firestore/core/src/firebase/firestore/remote/serializer.h b/Firestore/core/src/firebase/firestore/remote/serializer.h
index 454c3ad..3b2b667 100644
--- a/Firestore/core/src/firebase/firestore/remote/serializer.h
+++ b/Firestore/core/src/firebase/firestore/remote/serializer.h
@@ -17,8 +17,8 @@
#ifndef FIRESTORE_CORE_SRC_FIREBASE_FIRESTORE_REMOTE_SERIALIZER_H_
#define FIRESTORE_CORE_SRC_FIREBASE_FIRESTORE_REMOTE_SERIALIZER_H_
-#include <stdint.h>
-#include <stdlib.h>
+#include <cstdint>
+#include <cstdlib>
#include <vector>
#include "Firestore/Protos/nanopb/google/firestore/v1beta1/document.pb.h"
diff --git a/Firestore/core/src/firebase/firestore/util/assert_apple.mm b/Firestore/core/src/firebase/firestore/util/assert_apple.mm
index 83b76e1..9b6a651 100644
--- a/Firestore/core/src/firebase/firestore/util/assert_apple.mm
+++ b/Firestore/core/src/firebase/firestore/util/assert_apple.mm
@@ -14,12 +14,10 @@
* limitations under the License.
*/
-#include "Firestore/core/src/firebase/firestore/util/firebase_assert.h"
-
#import <Foundation/Foundation.h>
-#include <string.h>
-
+// TODO(wilhuff): match basenames so this can move up top
+#include "Firestore/core/src/firebase/firestore/util/firebase_assert.h"
#include "Firestore/core/src/firebase/firestore/util/string_apple.h"
namespace firebase {
diff --git a/Firestore/core/src/firebase/firestore/util/assert_stdio.cc b/Firestore/core/src/firebase/firestore/util/assert_stdio.cc
index 1d2e333..e01e564 100644
--- a/Firestore/core/src/firebase/firestore/util/assert_stdio.cc
+++ b/Firestore/core/src/firebase/firestore/util/assert_stdio.cc
@@ -14,8 +14,7 @@
* limitations under the License.
*/
-#include <stdarg.h>
-
+#include <cstdarg>
#include <stdexcept>
#include <string>
diff --git a/Firestore/core/src/firebase/firestore/util/bits.h b/Firestore/core/src/firebase/firestore/util/bits.h
index 185273f..fec1228 100644
--- a/Firestore/core/src/firebase/firestore/util/bits.h
+++ b/Firestore/core/src/firebase/firestore/util/bits.h
@@ -22,7 +22,7 @@
// Munging bits in _signed_ integers is fraught with peril! For example,
// -5 << n has undefined behavior (for some values of n).
-#include <stdint.h>
+#include <cstdint>
class Bits_Port32_Test;
class Bits_Port64_Test;
diff --git a/Firestore/core/src/firebase/firestore/util/comparison.cc b/Firestore/core/src/firebase/firestore/util/comparison.cc
index 4bef843..bde7f84 100644
--- a/Firestore/core/src/firebase/firestore/util/comparison.cc
+++ b/Firestore/core/src/firebase/firestore/util/comparison.cc
@@ -16,8 +16,7 @@
#include "Firestore/core/src/firebase/firestore/util/comparison.h"
-#include <math.h>
-
+#include <cmath>
#include <limits>
namespace firebase {
diff --git a/Firestore/core/src/firebase/firestore/util/comparison.h b/Firestore/core/src/firebase/firestore/util/comparison.h
index 6fd1e2b..23207f5 100644
--- a/Firestore/core/src/firebase/firestore/util/comparison.h
+++ b/Firestore/core/src/firebase/firestore/util/comparison.h
@@ -21,9 +21,9 @@
#import <Foundation/Foundation.h>
#endif
-#include <stdint.h>
#include <sys/types.h>
+#include <cstdint>
#include <functional>
#include <string>
#include <vector>
diff --git a/Firestore/core/src/firebase/firestore/util/firebase_assert.h b/Firestore/core/src/firebase/firestore/util/firebase_assert.h
index 6bc0dee..7de1dda 100644
--- a/Firestore/core/src/firebase/firestore/util/firebase_assert.h
+++ b/Firestore/core/src/firebase/firestore/util/firebase_assert.h
@@ -20,7 +20,7 @@
#ifndef FIRESTORE_CORE_SRC_FIREBASE_FIRESTORE_UTIL_FIREBASE_ASSERT_H_
#define FIRESTORE_CORE_SRC_FIREBASE_FIRESTORE_UTIL_FIREBASE_ASSERT_H_
-#include <stdlib.h>
+#include <cstdlib>
#include "Firestore/core/src/firebase/firestore/util/log.h"
#include "absl/base/attributes.h"
diff --git a/Firestore/core/src/firebase/firestore/util/log.h b/Firestore/core/src/firebase/firestore/util/log.h
index d0cff4d..1944596 100644
--- a/Firestore/core/src/firebase/firestore/util/log.h
+++ b/Firestore/core/src/firebase/firestore/util/log.h
@@ -17,7 +17,7 @@
#ifndef FIRESTORE_CORE_SRC_FIREBASE_FIRESTORE_UTIL_LOG_H_
#define FIRESTORE_CORE_SRC_FIREBASE_FIRESTORE_UTIL_LOG_H_
-#include <stdarg.h>
+#include <cstdarg>
namespace firebase {
namespace firestore {
diff --git a/Firestore/core/src/firebase/firestore/util/log_stdio.cc b/Firestore/core/src/firebase/firestore/util/log_stdio.cc
index bca2dc9..b277406 100644
--- a/Firestore/core/src/firebase/firestore/util/log_stdio.cc
+++ b/Firestore/core/src/firebase/firestore/util/log_stdio.cc
@@ -16,7 +16,7 @@
#include "Firestore/core/src/firebase/firestore/util/log.h"
-#include <stdio.h>
+#include <cstdio>
#include <string>
namespace firebase {
diff --git a/Firestore/core/src/firebase/firestore/util/ordered_code.cc b/Firestore/core/src/firebase/firestore/util/ordered_code.cc
index 0eadf18..cb53b09 100644
--- a/Firestore/core/src/firebase/firestore/util/ordered_code.cc
+++ b/Firestore/core/src/firebase/firestore/util/ordered_code.cc
@@ -16,12 +16,11 @@
#include "Firestore/core/src/firebase/firestore/util/ordered_code.h"
-#include <absl/base/internal/endian.h>
-#include <absl/base/internal/unaligned_access.h>
-#include <absl/base/port.h>
-
#include "Firestore/core/src/firebase/firestore/util/bits.h"
#include "Firestore/core/src/firebase/firestore/util/firebase_assert.h"
+#include "absl/base/internal/endian.h"
+#include "absl/base/internal/unaligned_access.h"
+#include "absl/base/port.h"
#define UNALIGNED_LOAD32 ABSL_INTERNAL_UNALIGNED_LOAD32
#define UNALIGNED_LOAD64 ABSL_INTERNAL_UNALIGNED_LOAD64
diff --git a/Firestore/core/src/firebase/firestore/util/secure_random.h b/Firestore/core/src/firebase/firestore/util/secure_random.h
index 95b41e1..f030b5e 100644
--- a/Firestore/core/src/firebase/firestore/util/secure_random.h
+++ b/Firestore/core/src/firebase/firestore/util/secure_random.h
@@ -17,7 +17,7 @@
#ifndef FIRESTORE_CORE_SRC_FIREBASE_FIRESTORE_UTIL_SECURE_RANDOM_H_
#define FIRESTORE_CORE_SRC_FIREBASE_FIRESTORE_UTIL_SECURE_RANDOM_H_
-#include <stdint.h>
+#include <cstdint>
#include <limits>
diff --git a/Firestore/core/src/firebase/firestore/util/secure_random_arc4random.cc b/Firestore/core/src/firebase/firestore/util/secure_random_arc4random.cc
index 83f72b5..d7e9be3 100644
--- a/Firestore/core/src/firebase/firestore/util/secure_random_arc4random.cc
+++ b/Firestore/core/src/firebase/firestore/util/secure_random_arc4random.cc
@@ -20,7 +20,7 @@
#if HAVE_ARC4RANDOM
-#include <stdlib.h>
+#include <cstdlib>
namespace firebase {
namespace firestore {
diff --git a/Firestore/core/src/firebase/firestore/util/secure_random_openssl.cc b/Firestore/core/src/firebase/firestore/util/secure_random_openssl.cc
index d3f6e63..e024846 100644
--- a/Firestore/core/src/firebase/firestore/util/secure_random_openssl.cc
+++ b/Firestore/core/src/firebase/firestore/util/secure_random_openssl.cc
@@ -20,8 +20,8 @@
#if HAVE_OPENSSL_RAND_H
-#include <openssl/err.h>
-#include <openssl/rand.h>
+#include "openssl/err.h"
+#include "openssl/rand.h"
namespace firebase {
namespace firestore {
diff --git a/Firestore/core/src/firebase/firestore/util/string_printf.cc b/Firestore/core/src/firebase/firestore/util/string_printf.cc
index 9c4e31c..c5483f4 100644
--- a/Firestore/core/src/firebase/firestore/util/string_printf.cc
+++ b/Firestore/core/src/firebase/firestore/util/string_printf.cc
@@ -16,7 +16,7 @@
#include "Firestore/core/src/firebase/firestore/util/string_printf.h"
-#include <stdio.h>
+#include <cstdio>
namespace firebase {
namespace firestore {
diff --git a/Firestore/core/src/firebase/firestore/util/string_printf.h b/Firestore/core/src/firebase/firestore/util/string_printf.h
index 10dfae9..553af66 100644
--- a/Firestore/core/src/firebase/firestore/util/string_printf.h
+++ b/Firestore/core/src/firebase/firestore/util/string_printf.h
@@ -17,8 +17,7 @@
#ifndef FIRESTORE_CORE_SRC_FIREBASE_FIRESTORE_UTIL_STRING_PRINTF_H_
#define FIRESTORE_CORE_SRC_FIREBASE_FIRESTORE_UTIL_STRING_PRINTF_H_
-#include <stdarg.h>
-
+#include <cstdarg>
#include <string>
#include "absl/base/attributes.h"
diff --git a/Firestore/core/test/firebase/firestore/model/field_value_test.cc b/Firestore/core/test/firebase/firestore/model/field_value_test.cc
index 40be2d5..08db76d 100644
--- a/Firestore/core/test/firebase/firestore/model/field_value_test.cc
+++ b/Firestore/core/test/firebase/firestore/model/field_value_test.cc
@@ -16,8 +16,7 @@
#include "Firestore/core/src/firebase/firestore/model/field_value.h"
-#include <limits.h>
-
+#include <climits>
#include <vector>
#include "gtest/gtest.h"
diff --git a/Firestore/core/test/firebase/firestore/remote/datastore_test.cc b/Firestore/core/test/firebase/firestore/remote/datastore_test.cc
index 42a9a8c..53e95a9 100644
--- a/Firestore/core/test/firebase/firestore/remote/datastore_test.cc
+++ b/Firestore/core/test/firebase/firestore/remote/datastore_test.cc
@@ -16,8 +16,9 @@
#include "Firestore/core/src/firebase/firestore/remote/datastore.h"
-#include <grpc/grpc.h>
-#include <gtest/gtest.h>
+#include "grpc/grpc.h"
+
+#include "gtest/gtest.h"
TEST(Datastore, CanLinkToGrpc) {
// This test doesn't actually do anything interesting as far as actually
diff --git a/Firestore/core/test/firebase/firestore/util/autoid_test.cc b/Firestore/core/test/firebase/firestore/util/autoid_test.cc
index 079b990..808850b 100644
--- a/Firestore/core/test/firebase/firestore/util/autoid_test.cc
+++ b/Firestore/core/test/firebase/firestore/util/autoid_test.cc
@@ -16,9 +16,9 @@
#include "Firestore/core/src/firebase/firestore/util/autoid.h"
-#include <ctype.h>
+#include <cctype>
-#include <gtest/gtest.h>
+#include "gtest/gtest.h"
using firebase::firestore::util::CreateAutoId;
diff --git a/Firestore/core/test/firebase/firestore/util/comparison_test.cc b/Firestore/core/test/firebase/firestore/util/comparison_test.cc
index ccb3011..a03aec8 100644
--- a/Firestore/core/test/firebase/firestore/util/comparison_test.cc
+++ b/Firestore/core/test/firebase/firestore/util/comparison_test.cc
@@ -16,9 +16,8 @@
#include "Firestore/core/src/firebase/firestore/util/comparison.h"
-#include <inttypes.h>
-#include <math.h>
-
+#include <cinttypes>
+#include <cmath>
#include <limits>
#include "Firestore/core/src/firebase/firestore/util/string_printf.h"
diff --git a/Firestore/core/test/firebase/firestore/util/secure_random_test.cc b/Firestore/core/test/firebase/firestore/util/secure_random_test.cc
index 0b7a51b..b0dfdd6 100644
--- a/Firestore/core/test/firebase/firestore/util/secure_random_test.cc
+++ b/Firestore/core/test/firebase/firestore/util/secure_random_test.cc
@@ -16,7 +16,7 @@
#include "Firestore/core/src/firebase/firestore/util/secure_random.h"
-#include <gtest/gtest.h>
+#include "gtest/gtest.h"
using firebase::firestore::util::SecureRandom;
diff --git a/Firestore/core/test/firebase/firestore/util/string_printf_test.cc b/Firestore/core/test/firebase/firestore/util/string_printf_test.cc
index 085be84..14cc9c8 100644
--- a/Firestore/core/test/firebase/firestore/util/string_printf_test.cc
+++ b/Firestore/core/test/firebase/firestore/util/string_printf_test.cc
@@ -16,7 +16,7 @@
#include "Firestore/core/src/firebase/firestore/util/string_printf.h"
-#include <gtest/gtest.h>
+#include "gtest/gtest.h"
namespace firebase {
namespace firestore {
diff --git a/Firestore/core/test/firebase/firestore/util/string_util_test.cc b/Firestore/core/test/firebase/firestore/util/string_util_test.cc
index f94596f..a85c849 100644
--- a/Firestore/core/test/firebase/firestore/util/string_util_test.cc
+++ b/Firestore/core/test/firebase/firestore/util/string_util_test.cc
@@ -16,7 +16,7 @@
#include "Firestore/core/src/firebase/firestore/util/string_util.h"
-#include <gtest/gtest.h>
+#include "gtest/gtest.h"
namespace firebase {
namespace firestore {
diff --git a/scripts/cpplint.py b/scripts/cpplint.py
index d1c80b3..f09695c 100644
--- a/scripts/cpplint.py
+++ b/scripts/cpplint.py
@@ -428,6 +428,11 @@ _CPP_HEADERS = frozenset([
'cwctype',
])
+_C_SYSTEM_DIRECTORIES = frozenset([
+ 'libkern',
+ 'sys',
+])
+
# Type names
_TYPES = re.compile(
r'^(?:'
@@ -685,7 +690,7 @@ def Search(pattern, s):
def _IsSourceExtension(s):
"""File extension (excluding dot) matches a source file extension."""
- return s in ('c', 'cc', 'cpp', 'cxx')
+ return s in ('c', 'cc', 'cpp', 'cxx', 'm', 'mm')
class _IncludeState(object):
@@ -4411,7 +4416,7 @@ def CheckStyle(filename, clean_lines, linenum, file_extension, nesting_state,
CheckSectionSpacing(filename, clean_lines, classinfo, linenum, error)
-_RE_PATTERN_INCLUDE = re.compile(r'^\s*#\s*include\s*([<"])([^>"]*)[>"].*$')
+_RE_PATTERN_INCLUDE = re.compile(r'^\s*#\s*(?:include|import)\s*([<"])([^>"]*)[>"].*$')
# Matches the first component of a filename delimited by -s and _s. That is:
# _RE_FIRST_COMPONENT.match('foo').group(0) == 'foo'
# _RE_FIRST_COMPONENT.match('foo.cc').group(0) == 'foo'
@@ -4444,6 +4449,11 @@ def _DropCommonSuffixes(filename):
if (filename.endswith(suffix) and len(filename) > len(suffix) and
filename[-len(suffix) - 1] in ('-', '_')):
return filename[:-len(suffix) - 1]
+
+ for suffix in ['Tests.h', 'Test.m', 'Test.mm', 'Tests.m', 'Tests.mm']:
+ if (filename.endswith(suffix) and len(filename) > len(suffix)):
+ return filename[:-len(suffix)]
+
return os.path.splitext(filename)[0]
@@ -4524,6 +4534,30 @@ def CheckIncludeLine(filename, clean_lines, linenum, include_state, error):
fileinfo = FileInfo(filename)
line = clean_lines.lines[linenum]
+ # system-style includes should not be used for project includes
+ match = Match(r'#include\s*<(([^/>]+)/[^>]+)', line)
+ if match:
+ if match.group(2) not in _C_SYSTEM_DIRECTORIES:
+ error(filename, linenum, 'build/include', 4,
+ '<%s> should be #include "%s" or #import <%s>' %
+ (match.group(1), match.group(1), match.group(1)))
+
+ # C++ system files should not be #imported
+ match = Match(r'#import\s*<([^/>.]+)>', line)
+ if match:
+ error(filename, linenum, 'build/include', 4,
+ 'C++ header <%s> was #imported. Should be #include <%s>' %
+ (match.group(1), match.group(1)))
+
+ # Prefer C++ wrappers for C headers
+ match = Match(r'#include\s*<(([^>]+).h)>', line)
+ if match:
+ wrapper = 'c' + match.group(2)
+ if wrapper in _CPP_HEADERS:
+ error(filename, linenum, 'build/include', 4,
+ 'Prefer C++ header <%s> for C system header %s' %
+ (wrapper, match.group(1)))
+
# "include" should use the new style "foo/bar.h" instead of just "bar.h"
# Only do this check if the included header follows google naming
# conventions. If not, assume that it's a 3rd party API that
diff --git a/scripts/lint.sh b/scripts/lint.sh
index d0f82b1..9e33c87 100755
--- a/scripts/lint.sh
+++ b/scripts/lint.sh
@@ -14,21 +14,74 @@
# Lints C++ files for conformance with the Google C++ style guide
-options=(
+# Joins the given arguments with the separator given as the first argument.
+function join() {
+ local IFS="$1"
+ shift
+ echo "$*"
+}
+
+git_options=(
-z # \0 terminate output
)
+objc_lint_filters=(
+ # Objective-C uses #import and does not use header guards
+ -build/header_guard
+
+ # Inline definitions of Objective-C blocks confuse
+ -readability/braces
+
+ # C-style casts are acceptable in Objective-C++
+ -readability/casting
+
+ # Objective-C needs use type 'long' for interop between types like NSInteger
+ # and printf-style functions.
+ -runtime/int
+
+ # cpplint is generally confused by Objective-C mixing with C++.
+ # * Objective-C method invocations in a for loop make it think its a
+ # range-for
+ # * Objective-C dictionary literals confuse brace spacing
+ # * Empty category declarations ("@interface Foo ()") look like function
+ # invocations
+ -whitespace
+)
+
+objc_lint_options=(
+ # cpplint normally excludes Objective-C++
+ --extensions=h,m,mm
+
+ # Objective-C style allows longer lines
+ --linelength=100
+
+ --filter=$(join , "${objc_lint_filters[@]}")
+)
+
if [[ $# -gt 0 ]]; then
# Interpret any command-line argument as a revision range
command=(git diff --name-only)
- options+=("$@")
+ git_options+=("$@")
else
# Default to operating on all files that match the pattern
command=(git ls-files)
fi
-
-"${command[@]}" "${options[@]}" \
+# Straight C++ files get regular cpplint
+"${command[@]}" "${git_options[@]}" \
-- 'Firestore/core/**/*.'{h,cc} \
- | xargs -0 python scripts/cpplint.py --quiet
+ | xargs -0 python scripts/cpplint.py --quiet 2>&1
+CPP_STATUS=$?
+
+# Objective-C++ files get a looser cpplint
+"${command[@]}" "${git_options[@]}" \
+ -- 'Firestore/Source/**/*.'{h,m,mm} \
+ 'Firestore/Example/Tests/**/*.'{h,m,mm} \
+ 'Firestore/core/**/*.mm' \
+ | xargs -0 python scripts/cpplint.py "${objc_lint_options[@]}" --quiet 2>&1
+OBJC_STATUS=$?
+
+if [[ $CPP_STATUS != 0 || $OBJC_STATUS != 0 ]]; then
+ exit 1
+fi