Skip to content

Commit 6e42dfb

Browse files
committed
ModuleObjcMessageTrace: also include a field for the current compiler version
1 parent 95f2523 commit 6e42dfb

File tree

2 files changed

+6
-0
lines changed

2 files changed

+6
-0
lines changed

lib/FrontendTool/LoadedModuleTrace.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
#include "swift/Basic/JSONSerialization.h"
2424
#include "swift/Basic/SourceManager.h"
2525
#include "swift/Frontend/FrontendOptions.h"
26+
#include "swift/Frontend/ModuleInterfaceSupport.h"
2627
#include "swift/IDE/SourceEntityWalker.h"
2728

2829
#include "clang/AST/DeclObjC.h"
@@ -819,6 +820,7 @@ bool swift::emitLoadedModuleTraceIfNeeded(ModuleDecl *mainModule,
819820
const static unsigned OBJC_METHOD_TRACE_FILE_FORMAT_VERSION = 1;
820821

821822
class ObjcMethodReferenceCollector: public SourceEntityWalker {
823+
std::string compilerVer;
822824
std::string target;
823825
std::string targetVariant;
824826
SmallVector<StringRef, 32> FilePaths;
@@ -855,6 +857,8 @@ class ObjcMethodReferenceCollector: public SourceEntityWalker {
855857
}
856858
public:
857859
ObjcMethodReferenceCollector(ModuleDecl *MD) {
860+
compilerVer =
861+
getSwiftInterfaceCompilerVersionForCurrentCompiler(MD->getASTContext());
858862
auto &Opts = MD->getASTContext().LangOpts;
859863
target = Opts.Target.str();
860864
targetVariant = Opts.TargetVariant.has_value() ?
@@ -868,6 +872,7 @@ class ObjcMethodReferenceCollector: public SourceEntityWalker {
868872
void serializeAsJson(llvm::raw_ostream &OS) {
869873
llvm::json::OStream out(OS, /*IndentSize=*/4);
870874
out.object([&] {
875+
out.attribute("swift-compiler-version", compilerVer);
871876
out.attribute("format-vesion", OBJC_METHOD_TRACE_FILE_FORMAT_VERSION);
872877
out.attribute("target", target);
873878
if (!targetVariant.empty())

test/IDE/objc_send_collector_1.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,4 @@ public func testProperties(_ x: FooClassBase, _ y: FooProtocolBase) {
2525
// CHECK-DAG: "file_id": 1,
2626
// CHECK-DAG: "file_path": "SOURCE_DIR/test/IDE/objc_send_collector_1.swift"
2727
// CHECK-DAG: "file_path": "SOURCE_DIR/test/IDE/Inputs/objc_send_collector_2.swift"
28+
// CHECK-DAG: "swift-compiler-version":

0 commit comments

Comments
 (0)