ABI/API checker: populate several lazily computed attributes to nodes

ABI/API checker should check semantic differences of two modules.
Adhering too strictly to the actual ASTs could yield false positives. This
patch populates ObjC, Dynamic and Final to the attribute list if AST
APIs say so.

rdar://50217247
This commit is contained in:
Xi Ge
2019-08-29 15:07:06 -07:00
parent 016acf3ac9
commit 1e173d8931
9 changed files with 107 additions and 39 deletions

View File

@@ -3,11 +3,17 @@
// RUN: %empty-directory(%t.sdk)
// RUN: %empty-directory(%t.module-cache)
// The goal of this test to make sure flag -use-interface-for-module works.
// We first build .swiftinterface with -enable-library-evolution
// Secondly, we We first build .swiftmodule without -enable-library-evolution
// Using swift-api-digester to load via .swiftinterface and .swiftmodule should
// always give us some difference.
// Generate .swiftinterface file for module cake
// RUN: %target-swift-frontend -typecheck -emit-parseable-module-interface-path %t.mod1/cake.swiftinterface %S/Inputs/cake_baseline/cake.swift -I %S/Inputs/APINotesLeft %clang-importer-sdk-nosource -parse-as-library -enable-library-evolution -disable-objc-attr-requires-foundation-module -module-cache-path %t.module-cache
// Generate .swiftmodule file for module cake
// RUN: %target-swift-frontend -emit-module -o %t.mod1/cake.swiftmodule %S/Inputs/cake_baseline/cake.swift -I %S/Inputs/APINotesLeft %clang-importer-sdk-nosource -parse-as-library -disable-objc-attr-requires-foundation-module -module-cache-path %t.module-cache -enable-library-evolution
// RUN: %target-swift-frontend -emit-module -o %t.mod1/cake.swiftmodule %S/Inputs/cake_baseline/cake.swift -I %S/Inputs/APINotesLeft %clang-importer-sdk-nosource -parse-as-library -disable-objc-attr-requires-foundation-module -module-cache-path %t.module-cache
// Dump Json file for cake ABI via .swiftmodule file
// RUN: %api-digester -dump-sdk -module cake -o - -module-cache-path %t.module-cache %clang-importer-sdk-nosource -I %t.mod1 -I %S/Inputs/APINotesLeft -abi > %t.dump1.json