From 1f426773eed1bbed59dfdbbcc4288e92454b2b07 Mon Sep 17 00:00:00 2001 From: Holly Borla Date: Fri, 11 Sep 2020 12:45:46 -0700 Subject: [PATCH 01/31] [Property Wrappers] Lower assign_by_wrapper to re-assignment of the backing property wrapper before all of self is initialized if the wrapper has already been initialized. --- include/swift/SIL/SILInstruction.h | 21 +++++++- .../Mandatory/DIMemoryUseCollector.h | 4 ++ .../Mandatory/DefiniteInitialization.cpp | 44 ++++++++++------- .../Mandatory/RawSILInstLowering.cpp | 17 ++++--- test/SILOptimizer/di_property_wrappers.swift | 49 +++++++++++++++++++ 5 files changed, 108 insertions(+), 27 deletions(-) diff --git a/include/swift/SIL/SILInstruction.h b/include/swift/SIL/SILInstruction.h index 36ebd2ef858da..36bc7225dd634 100644 --- a/include/swift/SIL/SILInstruction.h +++ b/include/swift/SIL/SILInstruction.h @@ -3950,6 +3950,16 @@ class AssignByWrapperInst : public AssignInstBase { friend SILBuilder; +public: + /// The assignment destination for the property wrapper + enum class Destination { + BackingWrapper, + WrappedValue, + }; + +private: + Destination AssignDest = Destination::WrappedValue; + AssignByWrapperInst(SILDebugLocation DebugLoc, SILValue Src, SILValue Dest, SILValue Initializer, SILValue Setter, AssignOwnershipQualifier Qualifier = @@ -3964,8 +3974,17 @@ class AssignByWrapperInst return AssignOwnershipQualifier( SILInstruction::Bits.AssignByWrapperInst.OwnershipQualifier); } - void setOwnershipQualifier(AssignOwnershipQualifier qualifier) { + + Destination getAssignDestination() const { return AssignDest; } + + void setAssignInfo(AssignOwnershipQualifier qualifier, Destination dest) { + using Qualifier = AssignOwnershipQualifier; + assert(qualifier == Qualifier::Init && dest == Destination::BackingWrapper || + qualifier == Qualifier::Reassign && dest == Destination::BackingWrapper || + qualifier == Qualifier::Reassign && dest == Destination::WrappedValue); + SILInstruction::Bits.AssignByWrapperInst.OwnershipQualifier = unsigned(qualifier); + AssignDest = dest; } }; diff --git a/lib/SILOptimizer/Mandatory/DIMemoryUseCollector.h b/lib/SILOptimizer/Mandatory/DIMemoryUseCollector.h index 1cea674c1e3b8..fd81d130e4bcf 100644 --- a/lib/SILOptimizer/Mandatory/DIMemoryUseCollector.h +++ b/lib/SILOptimizer/Mandatory/DIMemoryUseCollector.h @@ -254,6 +254,10 @@ enum DIUseKind { /// value. Assign, + /// The instruction is an assignment of a wrapped value with an already initialized + /// backing property wrapper. + AssignWrappedValue, + /// The instruction is a store to a member of a larger struct value. PartialStore, diff --git a/lib/SILOptimizer/Mandatory/DefiniteInitialization.cpp b/lib/SILOptimizer/Mandatory/DefiniteInitialization.cpp index 14a63285fb1f3..28135f2625196 100644 --- a/lib/SILOptimizer/Mandatory/DefiniteInitialization.cpp +++ b/lib/SILOptimizer/Mandatory/DefiniteInitialization.cpp @@ -533,6 +533,7 @@ LifetimeChecker::LifetimeChecker(const DIMemoryObjectInfo &TheMemory, case DIUseKind::Escape: continue; case DIUseKind::Assign: + case DIUseKind::AssignWrappedValue: case DIUseKind::IndirectIn: case DIUseKind::InitOrAssign: case DIUseKind::InOutArgument: @@ -750,6 +751,7 @@ void LifetimeChecker::doIt() { continue; case DIUseKind::Assign: + case DIUseKind::AssignWrappedValue: // Instructions classified as assign are only generated when lowering // InitOrAssign instructions in regions known to be initialized. Since // they are already known to be definitely init, don't reprocess them. @@ -1048,16 +1050,15 @@ void LifetimeChecker::handleStoreUse(unsigned UseID) { // an initialization or assign in the uses list so that clients know about it. if (isFullyUninitialized) { Use.Kind = DIUseKind::Initialization; + } else if (isFullyInitialized && isa(Use.Inst)) { + // If some fields are uninitialized, re-write assign_by_wrapper to assignment + // of the backing wrapper. If all fields are initialized, assign to the wrapped + // value. + auto allFieldsInitialized = + getAnyUninitializedMemberAtInst(Use.Inst, 0, TheMemory.getNumElements()) == -1; + Use.Kind = allFieldsInitialized ? DIUseKind::AssignWrappedValue : DIUseKind::Assign; } else if (isFullyInitialized) { - // Only re-write assign_by_wrapper to assignment if all fields have been - // initialized. - if (isa(Use.Inst) && - getAnyUninitializedMemberAtInst(Use.Inst, 0, - TheMemory.getNumElements()) != -1) { - Use.Kind = DIUseKind::Initialization; - } else { - Use.Kind = DIUseKind::Assign; - } + Use.Kind = DIUseKind::Assign; } else { // If it is initialized on some paths, but not others, then we have an // inconsistent initialization, which needs dynamic control logic in the @@ -1918,7 +1919,7 @@ void LifetimeChecker::updateInstructionForInitState(DIMemoryUse &Use) { Use.Kind == DIUseKind::SelfInit) InitKind = IsInitialization; else { - assert(Use.Kind == DIUseKind::Assign); + assert(Use.Kind == DIUseKind::Assign || Use.Kind == DIUseKind::AssignWrappedValue); InitKind = IsNotInitialization; } @@ -1967,14 +1968,21 @@ void LifetimeChecker::updateInstructionForInitState(DIMemoryUse &Use) { Use.Inst = nullptr; NonLoadUses.erase(Inst); - if (TheMemory.isClassInitSelf() && - Use.Kind == DIUseKind::SelfInit) { - assert(InitKind == IsInitialization); - AI->setOwnershipQualifier(AssignOwnershipQualifier::Reinit); - } else { - AI->setOwnershipQualifier((InitKind == IsInitialization - ? AssignOwnershipQualifier::Init - : AssignOwnershipQualifier::Reassign)); + switch (Use.Kind) { + case DIUseKind::Initialization: + AI->setAssignInfo(AssignOwnershipQualifier::Init, + AssignByWrapperInst::Destination::BackingWrapper); + break; + case DIUseKind::Assign: + AI->setAssignInfo(AssignOwnershipQualifier::Reassign, + AssignByWrapperInst::Destination::BackingWrapper); + break; + case DIUseKind::AssignWrappedValue: + AI->setAssignInfo(AssignOwnershipQualifier::Reassign, + AssignByWrapperInst::Destination::WrappedValue); + break; + default: + llvm_unreachable("Wrong use kind for assign_by_wrapper"); } return; diff --git a/lib/SILOptimizer/Mandatory/RawSILInstLowering.cpp b/lib/SILOptimizer/Mandatory/RawSILInstLowering.cpp index f8e0397a3e697..cbcbb6c5f5c0a 100644 --- a/lib/SILOptimizer/Mandatory/RawSILInstLowering.cpp +++ b/lib/SILOptimizer/Mandatory/RawSILInstLowering.cpp @@ -179,8 +179,8 @@ static void lowerAssignByWrapperInstruction(SILBuilderWithScope &b, SILLocation loc = inst->getLoc(); SILBuilderWithScope forCleanup(std::next(inst->getIterator())); - switch (inst->getOwnershipQualifier()) { - case AssignOwnershipQualifier::Init: { + switch (inst->getAssignDestination()) { + case AssignByWrapperInst::Destination::BackingWrapper: { SILValue initFn = inst->getInitializer(); CanSILFunctionType fTy = initFn->getType().castTo(); SILFunctionConventions convention(fTy, inst->getModule()); @@ -193,15 +193,18 @@ static void lowerAssignByWrapperInstruction(SILBuilderWithScope &b, getAssignByWrapperArgs(args, src, convention, b, forCleanup); SILValue wrappedSrc = b.createApply(loc, initFn, SubstitutionMap(), args); - b.createTrivialStoreOr(loc, wrappedSrc, dest, - StoreOwnershipQualifier::Init); + if (inst->getOwnershipQualifier() == AssignOwnershipQualifier::Init || + inst->getDest()->getType().isTrivial(*inst->getFunction())) { + b.createTrivialStoreOr(loc, wrappedSrc, dest, StoreOwnershipQualifier::Init); + } else { + b.createStore(loc, wrappedSrc, dest, StoreOwnershipQualifier::Assign); + } } // TODO: remove the unused setter function, which usually is a dead // partial_apply. break; } - case AssignOwnershipQualifier::Unknown: - case AssignOwnershipQualifier::Reassign: { + case AssignByWrapperInst::Destination::WrappedValue: { SILValue setterFn = inst->getSetter(); CanSILFunctionType fTy = setterFn->getType().castTo(); SILFunctionConventions convention(fTy, inst->getModule()); @@ -220,8 +223,6 @@ static void lowerAssignByWrapperInstruction(SILBuilderWithScope &b, // partial_apply. break; } - case AssignOwnershipQualifier::Reinit: - llvm_unreachable("wrong qualifier for assign_by_wrapper"); } inst->eraseFromParent(); } diff --git a/test/SILOptimizer/di_property_wrappers.swift b/test/SILOptimizer/di_property_wrappers.swift index c4db338ab2975..ba6215be7a6c1 100644 --- a/test/SILOptimizer/di_property_wrappers.swift +++ b/test/SILOptimizer/di_property_wrappers.swift @@ -535,6 +535,54 @@ func testSR_12341() { _ = SR_12341(condition: true) } +class TestLeak: CustomStringConvertible { + let val: Int + init(val: Int) { self.val = val } + deinit { print(" .. \(self).deinit") } + var description: String { "TestLeak(\(val))" } +} + +struct SR_13495 { + @Wrapper var wrapped: TestLeak + var str: String + + init() { + wrapped = TestLeak(val: 42) + str = "" + wrapped = TestLeak(val: 27) + } + + init(conditionalInit: Bool) { + if (conditionalInit) { + wrapped = TestLeak(val: 42) + } + str = "" + wrapped = TestLeak(val: 27) + } +} + +func testSR_13495() { + // CHECK: ## SR_13495 + print("\n## SR_13495") + + // CHECK-NEXT: .. init TestLeak(42) + // CHECK-NEXT: .. TestLeak(42).deinit + // CHECK-NEXT: .. set TestLeak(27) + // CHECK-NEXT: .. TestLeak(27).deinit + _ = SR_13495() + + // CHECK-NEXT: .. init TestLeak(42) + // CHECK-NEXT: .. TestLeak(42).deinit + // CHECK-NEXT: .. init TestLeak(27) + // CHECK-NEXT: .. TestLeak(27).deinit + _ = SR_13495(conditionalInit: true) + + // CHECK-NEXT: .. init TestLeak(27) + // CHECK-NEXT: .. TestLeak(27).deinit + _ = SR_13495(conditionalInit: false) +} + + @propertyWrapper struct NonMutatingSetterWrapper { var value: Value @@ -573,4 +621,5 @@ testDefaultNilOptIntStruct() testComposed() testWrapperInitWithDefaultArg() testSR_12341() +testSR_13495() testNonMutatingSetterStruct() From ab4c58482e16d4ff8dc876564f57f376ed0b738f Mon Sep 17 00:00:00 2001 From: Doug Gregor Date: Thu, 17 Sep 2020 16:07:34 -0700 Subject: [PATCH 02/31] [Concurrency] Centralize rejection of concurrency-only attributes. Reject concurrency-only attributes in the parser if the experimental concurrency mode is not enabled. --- include/swift/AST/Attr.def | 2 +- include/swift/AST/DiagnosticsParse.def | 5 +++++ include/swift/AST/DiagnosticsSema.def | 5 ----- lib/Parse/ParseDecl.cpp | 9 +++++++++ lib/Sema/TypeCheckAttr.cpp | 5 ----- lib/Sema/TypeCheckConcurrency.cpp | 8 -------- test/attr/asynchandler_noconcurrency.swift | 2 +- test/decl/class/actor/noconcurrency.swift | 2 +- 8 files changed, 17 insertions(+), 21 deletions(-) diff --git a/include/swift/AST/Attr.def b/include/swift/AST/Attr.def index e737241386a0e..202af7b07a6c1 100644 --- a/include/swift/AST/Attr.def +++ b/include/swift/AST/Attr.def @@ -562,7 +562,7 @@ SIMPLE_DECL_ATTR(noDerivative, NoDerivative, 100) SIMPLE_DECL_ATTR(asyncHandler, AsyncHandler, - OnFunc | UserInaccessible | + OnFunc | ConcurrencyOnly | ABIStableToAdd | ABIStableToRemove | APIStableToAdd | APIStableToRemove, 101) diff --git a/include/swift/AST/DiagnosticsParse.def b/include/swift/AST/DiagnosticsParse.def index eaae1b7f858be..a9da96cd96304 100644 --- a/include/swift/AST/DiagnosticsParse.def +++ b/include/swift/AST/DiagnosticsParse.def @@ -1748,6 +1748,11 @@ ERROR(pound_available_package_description_not_allowed, none, ERROR(availability_query_repeated_platform, none, "version for '%0' already specified", (StringRef)) +ERROR(attr_requires_concurrency,none, + "'%0' %select{attribute|modifier}1 is only valid when experimental " + "concurrency is enabled", + (StringRef, bool)) + //------------------------------------------------------------------------------ // MARK: syntax parsing diagnostics //------------------------------------------------------------------------------ diff --git a/include/swift/AST/DiagnosticsSema.def b/include/swift/AST/DiagnosticsSema.def index d9a3489de1ab9..dd837308e129f 100644 --- a/include/swift/AST/DiagnosticsSema.def +++ b/include/swift/AST/DiagnosticsSema.def @@ -4107,9 +4107,6 @@ NOTE(protocol_witness_async_conflict,none, ERROR(async_autoclosure_nonasync_function,none, "'async' autoclosure parameter in a non-'async' function", ()) -ERROR(asynchandler_attr_requires_concurrency,none, - "'@asyncHandler' is only valid when experimental concurrency is enabled", - ()) ERROR(asynchandler_non_func,none, "'@asyncHandler' can only be applied to functions", ()) @@ -4142,8 +4139,6 @@ ERROR(satisfy_async_objc,none, ERROR(async_objc_dynamic_self,none, "asynchronous method returning 'Self' cannot be '@objc'", ()) -ERROR(actor_without_concurrency,none, - "'actor' classes require experimental concurrency support", ()) ERROR(actor_with_nonactor_superclass,none, "actor class cannot inherit from non-actor class %0", (DeclName)) diff --git a/lib/Parse/ParseDecl.cpp b/lib/Parse/ParseDecl.cpp index 032cf266c0eb7..50830e98a7f5f 100644 --- a/lib/Parse/ParseDecl.cpp +++ b/lib/Parse/ParseDecl.cpp @@ -1394,6 +1394,15 @@ bool Parser::parseNewDeclAttribute(DeclAttributes &Attributes, SourceLoc AtLoc, DiscardAttribute = true; } + // If this attribute is only permitted when concurrency is enabled, reject it. + if (DeclAttribute::isConcurrencyOnly(DK) && + !shouldParseExperimentalConcurrency()) { + diagnose( + Loc, diag::attr_requires_concurrency, AttrName, + DeclAttribute::isDeclModifier(DK)); + DiscardAttribute = true; + } + if (Context.LangOpts.Target.isOSBinFormatCOFF()) { if (DK == DAK_WeakLinked) { diagnose(Loc, diag::attr_unsupported_on_target, AttrName, diff --git a/lib/Sema/TypeCheckAttr.cpp b/lib/Sema/TypeCheckAttr.cpp index 11d2dc9d05ddd..3c14115a3e03a 100644 --- a/lib/Sema/TypeCheckAttr.cpp +++ b/lib/Sema/TypeCheckAttr.cpp @@ -259,11 +259,6 @@ class AttributeChecker : public AttributeVisitor { void visitTransposeAttr(TransposeAttr *attr); void visitAsyncHandlerAttr(AsyncHandlerAttr *attr) { - if (!Ctx.LangOpts.EnableExperimentalConcurrency) { - diagnoseAndRemoveAttr(attr, diag::asynchandler_attr_requires_concurrency); - return; - } - auto func = dyn_cast(D); if (!func) { diagnoseAndRemoveAttr(attr, diag::asynchandler_non_func); diff --git a/lib/Sema/TypeCheckConcurrency.cpp b/lib/Sema/TypeCheckConcurrency.cpp index f4e23ad1a98e3..70c180356ff3d 100644 --- a/lib/Sema/TypeCheckConcurrency.cpp +++ b/lib/Sema/TypeCheckConcurrency.cpp @@ -161,14 +161,6 @@ bool IsActorRequest::evaluate( Evaluator &evaluator, ClassDecl *classDecl) const { // If concurrency is not enabled, we don't have actors. auto actorAttr = classDecl->getAttrs().getAttribute(); - if (!classDecl->getASTContext().LangOpts.EnableExperimentalConcurrency) { - if (actorAttr) { - classDecl->diagnose(diag::actor_without_concurrency) - .highlight(actorAttr->getRange()); - } - - return false; - } // If there is a superclass, we can infer actor-ness from it. if (auto superclassDecl = classDecl->getSuperclassDecl()) { diff --git a/test/attr/asynchandler_noconcurrency.swift b/test/attr/asynchandler_noconcurrency.swift index 97545fd0bc555..94a6fab001d88 100644 --- a/test/attr/asynchandler_noconcurrency.swift +++ b/test/attr/asynchandler_noconcurrency.swift @@ -1,4 +1,4 @@ // RUN: %target-swift-frontend -typecheck -verify %s @asyncHandler func asyncHandler1() { } -// expected-error@-1{{'@asyncHandler' is only valid when experimental concurrency is enabled}} +// expected-error@-1{{'asyncHandler' attribute is only valid when experimental concurrency is enabled}} diff --git a/test/decl/class/actor/noconcurrency.swift b/test/decl/class/actor/noconcurrency.swift index b01725cd2c26d..48e4c7d018bc5 100644 --- a/test/decl/class/actor/noconcurrency.swift +++ b/test/decl/class/actor/noconcurrency.swift @@ -1,4 +1,4 @@ // RUN: %target-typecheck-verify-swift -actor class C { } // expected-error{{'actor' classes require experimental concurrency support}} +actor class C { } // expected-error{{'actor' attribute is only valid when experimental concurrency is enabled}} From 27624053906c49ac28e96071c6135ac14db654d5 Mon Sep 17 00:00:00 2001 From: Doug Gregor Date: Fri, 18 Sep 2020 13:12:41 -0700 Subject: [PATCH 03/31] [Concurrency] Introduce `@actorIndependent` attribute. Introduce a new attribute `@actorIndependent` that specifies that a given declaration is considered to be independent of any actor. Actor-independent declarations do not have access to actor-isolated state, even when they are declared as instance members of the actor. On the other hand, actor-independent declarations can be used to conform to (synchronous) requirements in protocols. --- include/swift/AST/ASTTypeIDZone.def | 1 + include/swift/AST/ASTTypeIDs.h | 1 + include/swift/AST/ActorIsolation.h | 111 ++++++++++++++++++++ include/swift/AST/Attr.def | 6 ++ include/swift/AST/DiagnosticsSema.def | 22 ++++ include/swift/AST/TypeCheckRequests.h | 19 ++++ include/swift/AST/TypeCheckerTypeIDZone.def | 3 + lib/AST/TypeCheckRequests.cpp | 22 ++++ lib/Sema/TypeCheckAttr.cpp | 47 +++++++++ lib/Sema/TypeCheckConcurrency.cpp | 85 +++++++++++---- lib/Sema/TypeCheckConcurrency.h | 8 +- lib/Sema/TypeCheckDeclOverride.cpp | 1 + lib/Sema/TypeCheckProtocol.cpp | 12 ++- test/Concurrency/actor_isolation.swift | 41 +++++++- test/attr/actorindependent.swift | 77 ++++++++++++++ test/decl/class/actor/conformance.swift | 6 ++ 16 files changed, 434 insertions(+), 28 deletions(-) create mode 100644 include/swift/AST/ActorIsolation.h create mode 100644 test/attr/actorindependent.swift diff --git a/include/swift/AST/ASTTypeIDZone.def b/include/swift/AST/ASTTypeIDZone.def index fa9dd1d3a8d3c..0bffc3a56697b 100644 --- a/include/swift/AST/ASTTypeIDZone.def +++ b/include/swift/AST/ASTTypeIDZone.def @@ -15,6 +15,7 @@ // //===----------------------------------------------------------------------===// +SWIFT_TYPEID(ActorIsolation) SWIFT_TYPEID(AncestryFlags) SWIFT_TYPEID(CtorInitializerKind) SWIFT_TYPEID(FunctionBuilderBodyPreCheck) diff --git a/include/swift/AST/ASTTypeIDs.h b/include/swift/AST/ASTTypeIDs.h index 6fc964d6fa305..e59255ec7ec28 100644 --- a/include/swift/AST/ASTTypeIDs.h +++ b/include/swift/AST/ASTTypeIDs.h @@ -23,6 +23,7 @@ namespace swift { class AbstractFunctionDecl; +class ActorIsolation; class BraceStmt; class ClosureExpr; class CodeCompletionCallbacksFactory; diff --git a/include/swift/AST/ActorIsolation.h b/include/swift/AST/ActorIsolation.h new file mode 100644 index 0000000000000..2de16ff3fe547 --- /dev/null +++ b/include/swift/AST/ActorIsolation.h @@ -0,0 +1,111 @@ +//===--- ActorIsolation.h - Actor isolation ---------------------*- C++ -*-===// +// +// This source file is part of the Swift.org open source project +// +// Copyright (c) 2014 - 2020 Apple Inc. and the Swift project authors +// Licensed under Apache License v2.0 with Runtime Library Exception +// +// See https://swift.org/LICENSE.txt for license information +// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors +// +//===----------------------------------------------------------------------===// +// +// This file provides a description of actor isolation state. +// +//===----------------------------------------------------------------------===// +#ifndef SWIFT_AST_ACTORISOLATIONSTATE_H +#define SWIFT_AST_ACTORISOLATIONSTATE_H + +#include "llvm/ADT/Hashing.h" + +namespace llvm { +class raw_ostream; +} + +namespace swift { +class ClassDecl; + +/// Describes the actor isolation of a given declaration, which determines +/// the actors with which it can interact. +class ActorIsolation { +public: + enum Kind { + /// The actor isolation has not been specified. It is assumed to be + /// unsafe to interact with this declaration from any actor. + Unspecified = 0, + /// The declaration is isolated to the instance of an actor class. + /// For example, a mutable stored property or synchronous function within + /// the actor is isolated to the instance of that actor. + ActorInstance, + /// The declaration can refer to actor-isolated state, but can also be + //// referenced from outside the actor. + ActorPrivileged, + /// The declaration is explicitly specified to be independent of any actor, + /// meaning that it can be used from any actor but is also unable to + /// refer to the isolated state of any given actor. + Independent, + }; + +private: + Kind kind; + ClassDecl *actor; + + ActorIsolation(Kind kind, ClassDecl *actor) : kind(kind), actor(actor) { } + +public: + static ActorIsolation forUnspecified() { + return ActorIsolation(Unspecified, nullptr); + } + + static ActorIsolation forIndependent() { + return ActorIsolation(Independent, nullptr); + } + + static ActorIsolation forActorPrivileged(ClassDecl *actor) { + return ActorIsolation(ActorPrivileged, actor); + } + + static ActorIsolation forActorInstance(ClassDecl *actor) { + return ActorIsolation(ActorInstance, actor); + } + + Kind getKind() const { return kind; } + + operator Kind() const { return getKind(); } + + ClassDecl *getActor() const { + assert(getKind() == ActorInstance || getKind() == ActorPrivileged); + return actor; + } + + friend bool operator==(const ActorIsolation &lhs, + const ActorIsolation &rhs) { + if (lhs.kind != rhs.kind) + return false; + + switch (lhs.kind) { + case Independent: + case Unspecified: + return true; + + case ActorInstance: + case ActorPrivileged: + return lhs.actor == rhs.actor; + } + } + + friend bool operator!=(const ActorIsolation &lhs, + const ActorIsolation &rhs) { + return !(lhs == rhs); + } + + friend llvm::hash_code hash_value(const ActorIsolation &state) { + return llvm::hash_combine(state.kind, state.actor); + } +}; + +void simple_display(llvm::raw_ostream &out, const ActorIsolation &state); + +} // end namespace swift + +#endif /* SWIFT_AST_ACTORISOLATIONSTATE_H */ diff --git a/include/swift/AST/Attr.def b/include/swift/AST/Attr.def index 202af7b07a6c1..93d8308bb34cc 100644 --- a/include/swift/AST/Attr.def +++ b/include/swift/AST/Attr.def @@ -572,6 +572,12 @@ CONTEXTUAL_SIMPLE_DECL_ATTR(actor, Actor, APIBreakingToAdd | APIBreakingToRemove, 102) +SIMPLE_DECL_ATTR(actorIndependent, ActorIndependent, + OnFunc | OnVar | OnSubscript | ConcurrencyOnly | + ABIStableToAdd | ABIStableToRemove | + APIStableToAdd | APIBreakingToRemove, + 103) + #undef TYPE_ATTR #undef DECL_ATTR_ALIAS #undef CONTEXTUAL_DECL_ATTR_ALIAS diff --git a/include/swift/AST/DiagnosticsSema.def b/include/swift/AST/DiagnosticsSema.def index dd837308e129f..424db029bff4f 100644 --- a/include/swift/AST/DiagnosticsSema.def +++ b/include/swift/AST/DiagnosticsSema.def @@ -4146,6 +4146,10 @@ ERROR(actor_isolated_non_self_reference,none, "actor-isolated %0 %1 can only be referenced " "%select{inside the actor|on 'self'}2", (DescriptiveDeclKind, DeclName, bool)) +ERROR(actor_isolated_self_independent_context,none, + "actor-isolated %0 %1 can not be referenced from an " + "'@actorIndependent' context", + (DescriptiveDeclKind, DeclName)) WARNING(concurrent_access_local,none, "local %0 %1 is unsafe to reference in code that may execute " "concurrently", @@ -4170,6 +4174,24 @@ NOTE(actor_isolated_witness_could_be_async_handler,none, "did you mean to make it an asychronous handler?", (DescriptiveDeclKind, DeclName)) +ERROR(actorisolated_let,none, + "'@actorIsolated' is meaningless on 'let' declarations because " + "they are immutable", + ()) +ERROR(actorisolated_mutable_storage,none, + "'@actorIsolated' can not be applied to stored properties", + ()) +ERROR(actorisolated_local_var,none, + "'@actorIsolated' can not be applied to local variables", + ()) +ERROR(actorisolated_not_actor_member,none, + "'@actorIsolated' can only be applied to actor members and " + "global/static variables", + ()) +ERROR(actorisolated_not_actor_instance_member,none, + "'@actorIsolated' can only be applied to instance members of actors", + ()) + //------------------------------------------------------------------------------ // MARK: Type Check Types //------------------------------------------------------------------------------ diff --git a/include/swift/AST/TypeCheckRequests.h b/include/swift/AST/TypeCheckRequests.h index 543f2d938be99..b30ac57f01ed6 100644 --- a/include/swift/AST/TypeCheckRequests.h +++ b/include/swift/AST/TypeCheckRequests.h @@ -16,6 +16,7 @@ #ifndef SWIFT_TYPE_CHECK_REQUESTS_H #define SWIFT_TYPE_CHECK_REQUESTS_H +#include "swift/AST/ActorIsolation.h" #include "swift/AST/AnyFunctionRef.h" #include "swift/AST/ASTTypeIDs.h" #include "swift/AST/GenericSignature.h" @@ -817,6 +818,24 @@ class IsActorRequest : bool isCached() const { return true; } }; +/// Determine the actor isolation for the given declaration. +class ActorIsolationRequest : + public SimpleRequest { +public: + using SimpleRequest::SimpleRequest; + +private: + friend SimpleRequest; + + ActorIsolation evaluate(Evaluator &evaluator, ValueDecl *value) const; + +public: + // Caching + bool isCached() const { return true; } +}; + /// Request whether the storage has a mutating getter. class IsGetterMutatingRequest : public SimpleRequest(getStorage()); attr->setType(value); } + + +void swift::simple_display( + llvm::raw_ostream &out, const ActorIsolation &state) { + switch (state) { + case ActorIsolation::ActorInstance: + out << "actor-isolated to instance of " << state.getActor()->getName(); + break; + + case ActorIsolation::ActorPrivileged: + out << "actor-privileged to instance of " << state.getActor()->getName(); + break; + + case ActorIsolation::Independent: + out << "actor-independent"; + break; + + case ActorIsolation::Unspecified: + out << "unspecified actor isolation"; + break; + } +} diff --git a/lib/Sema/TypeCheckAttr.cpp b/lib/Sema/TypeCheckAttr.cpp index 3c14115a3e03a..370c416416005 100644 --- a/lib/Sema/TypeCheckAttr.cpp +++ b/lib/Sema/TypeCheckAttr.cpp @@ -276,6 +276,53 @@ class AttributeChecker : public AttributeVisitor { (void)classDecl->isActor(); } + + void visitActorIndependentAttr(ActorIndependentAttr *attr) { + // @actorIndependent can be applied to global and static/class variables + // that do not have storage. + auto dc = D->getDeclContext(); + if (auto var = dyn_cast(D)) { + // @actorIndependent is meaningless on a `let`. + if (var->isLet()) { + diagnoseAndRemoveAttr(attr, diag::actorisolated_let); + return; + } + + // @actorIndependent can not be applied to stored properties. + if (var->hasStorage()) { + diagnoseAndRemoveAttr(attr, diag::actorisolated_mutable_storage); + return; + } + + // @actorIndependent can not be applied to local properties. + if (dc->isLocalContext()) { + diagnoseAndRemoveAttr(attr, diag::actorisolated_local_var); + return; + } + + // If this is a static or global variable, we're all set. + if (dc->isModuleScopeContext() || + (dc->isTypeContext() && var->isStatic())) { + return; + } + + // Otherwise, fall through to make sure we're in an appropriate + // context. + } + + // @actorIndependent only makes sense on an actor instance member. + if (!dc->getSelfClassDecl() || + !dc->getSelfClassDecl()->isActor()) { + diagnoseAndRemoveAttr(attr, diag::actorisolated_not_actor_member); + return; + } + + if (!cast(D)->isInstanceMember()) { + diagnoseAndRemoveAttr( + attr, diag::actorisolated_not_actor_instance_member); + return; + } + } }; } // end anonymous namespace diff --git a/lib/Sema/TypeCheckConcurrency.cpp b/lib/Sema/TypeCheckConcurrency.cpp index 70c180356ff3d..e1979a407e706 100644 --- a/lib/Sema/TypeCheckConcurrency.cpp +++ b/lib/Sema/TypeCheckConcurrency.cpp @@ -315,12 +315,21 @@ class IsolationRestriction { if (cast(decl)->isLocalCapture()) return forLocalCapture(decl->getDeclContext()); - // Protected actor instance members can only be accessed on 'self'. - if (auto actorClass = getActorIsolatingMember(cast(decl))) - return forActorSelf(actorClass); + // Determine the actor isolation of the given declaration. + switch (auto isolation = getActorIsolation(cast(decl))) { + case ActorIsolation::ActorInstance: + // Protected actor instance members can only be accessed on 'self'. + return forActorSelf(isolation.getActor()); + + case ActorIsolation::Independent: + case ActorIsolation::ActorPrivileged: + // Actor-independent and actor-privileged declarations have no + // restrictions on their access. + return forUnrestricted(); - // All other accesses are unsafe. - return forUnsafe(); + case ActorIsolation::Unspecified: + return forUnsafe(); + } } } @@ -569,6 +578,26 @@ void swift::checkActorIsolation(const Expr *expr, const DeclContext *dc) { return true; } + // Check whether the context of 'self' is actor-isolated. + switch (getActorIsolation( + cast(selfVar->getDeclContext()->getAsDecl()))) { + case ActorIsolation::ActorInstance: + case ActorIsolation::ActorPrivileged: + case ActorIsolation::Unspecified: + // Okay + break; + + case ActorIsolation::Independent: + // The 'self' is for an actor-independent member, which means + // we cannot refer to actor-isolated state. + ctx.Diags.diagnose( + memberLoc, diag::actor_isolated_self_independent_context, + member->getDescriptiveKind(), + member->getName()); + noteIsolatedActorMember(member); + break; + } + // Check whether we are in a context that will not execute concurrently // with the context of 'self'. if (mayExecuteConcurrentlyWith( @@ -597,22 +626,42 @@ void swift::checkActorIsolation(const Expr *expr, const DeclContext *dc) { const_cast(expr)->walk(walker); } -ClassDecl *swift::getActorIsolatingMember(ValueDecl *value) { - // Only instance members are isolated. - if (!value->isInstanceMember()) - return nullptr; +ActorIsolation ActorIsolationRequest::evaluate( + Evaluator &evaluator, ValueDecl *value) const { + // If the attribute is explicitly marked @actorIndependent, report it as + // independent. + if (value->getAttrs().hasAttribute()) { + return ActorIsolation::forIndependent(); + } - // Are we within an actor class? + // If the declaration overrides another declaration, it must have the same + // actor isolation. + if (auto overriddenValue = value->getOverriddenDecl()) { + if (auto isolation = getActorIsolation(overriddenValue)) + return isolation; + } + + // Check for instance members of actor classes, which are part of + // actor-isolated state. auto classDecl = value->getDeclContext()->getSelfClassDecl(); - if (!classDecl || !classDecl->isActor()) - return nullptr; + if (classDecl && classDecl->isActor() && value->isInstanceMember()) { + // A function that is an asynchronous context is actor-privileged. + if (auto func = dyn_cast(value)) { + if (func->isAsyncContext()) + return ActorIsolation::forActorPrivileged(classDecl); + } - // Functions that are an asynchronous context can be accessed from anywhere. - if (auto func = dyn_cast(value)) { - if (func->isAsyncContext()) - return nullptr; + // Everything else is part of the actor's isolated state. + return ActorIsolation::forActorInstance(classDecl); } - // This member is part of the isolated state. - return classDecl; + // Everything else is unspecified. + return ActorIsolation::forUnspecified(); +} + +ActorIsolation swift::getActorIsolation(ValueDecl *value) { + auto &ctx = value->getASTContext(); + return evaluateOrDefault( + ctx.evaluator, ActorIsolationRequest{value}, + ActorIsolation::forUnspecified()); } diff --git a/lib/Sema/TypeCheckConcurrency.h b/lib/Sema/TypeCheckConcurrency.h index 9bcdad2db287e..030b466537a8c 100644 --- a/lib/Sema/TypeCheckConcurrency.h +++ b/lib/Sema/TypeCheckConcurrency.h @@ -19,6 +19,7 @@ namespace swift { +class ActorIsolation; class ClassDecl; class DeclContext; class Expr; @@ -41,11 +42,8 @@ void addAsyncNotes(FuncDecl *func); /// Check actor isolation rules. void checkActorIsolation(const Expr *expr, const DeclContext *dc); -/// Determine whether the given value is an instance member of an actor -/// class that is isolated to the current actor instance. -/// -/// \returns the type of the actor. -ClassDecl *getActorIsolatingMember(ValueDecl *value); +/// Determine how the given value declaration is isolated. +ActorIsolation getActorIsolation(ValueDecl *value); } // end namespace swift diff --git a/lib/Sema/TypeCheckDeclOverride.cpp b/lib/Sema/TypeCheckDeclOverride.cpp index 29670ce622340..1c865bd8dd01b 100644 --- a/lib/Sema/TypeCheckDeclOverride.cpp +++ b/lib/Sema/TypeCheckDeclOverride.cpp @@ -1513,6 +1513,7 @@ namespace { UNINTERESTING_ATTR(ProjectedValueProperty) UNINTERESTING_ATTR(OriginallyDefinedIn) UNINTERESTING_ATTR(Actor) + UNINTERESTING_ATTR(ActorIndependent) #undef UNINTERESTING_ATTR void visitAvailableAttr(AvailableAttr *attr) { diff --git a/lib/Sema/TypeCheckProtocol.cpp b/lib/Sema/TypeCheckProtocol.cpp index bf1bc6a6f5c56..d5821a90f5844 100644 --- a/lib/Sema/TypeCheckProtocol.cpp +++ b/lib/Sema/TypeCheckProtocol.cpp @@ -727,10 +727,18 @@ swift::matchWitness( } } - // Actor-isolated witnesses cannot conform to protocol requirements. - if (getActorIsolatingMember(witness)) + // Check for actor-isolation consistency. + switch (getActorIsolation(witness)) { + case ActorIsolation::ActorInstance: + // Actor-isolated witnesses cannot conform to protocol requirements. return RequirementMatch(witness, MatchKind::ActorIsolatedWitness); + case ActorIsolation::ActorPrivileged: + case ActorIsolation::Independent: + case ActorIsolation::Unspecified: + break; + } + // Now finalize the match. auto result = finalize(anyRenaming, optionalAdjustments); // Check if the requirement's `@differentiable` attributes are satisfied by diff --git a/test/Concurrency/actor_isolation.swift b/test/Concurrency/actor_isolation.swift index 838c35eb73b9e..a1dc9fcc950ef 100644 --- a/test/Concurrency/actor_isolation.swift +++ b/test/Concurrency/actor_isolation.swift @@ -1,7 +1,7 @@ // RUN: %target-typecheck-verify-swift -enable-experimental-concurrency let immutableGlobal: String = "hello" -var mutableGlobal: String = "can't touch this" // expected-note{{var declared here}} +var mutableGlobal: String = "can't touch this" // expected-note 2{{var declared here}} func globalFunc() { } func acceptClosure(_: () -> T) { } @@ -23,16 +23,46 @@ actor class MySuperActor { actor class MyActor: MySuperActor { let immutable: Int = 17 - var text: [String] = [] // expected-note 5{{mutable state is only available within the actor instance}} + var text: [String] = [] // expected-note 6{{mutable state is only available within the actor instance}} class func synchronousClass() { } static func synchronousStatic() { } - func synchronous() -> String { text.first ?? "nothing" } // expected-note 5{{only asynchronous methods can be used outside the actor instance; do you want to add 'async'?}} + func synchronous() -> String { text.first ?? "nothing" } // expected-note 6{{only asynchronous methods can be used outside the actor instance; do you want to add 'async'?}} func asynchronous() async -> String { synchronous() } } extension MyActor { + @actorIndependent var actorIndependentVar: Int { + get { 5 } + set { } + } + + @actorIndependent func actorIndependentFunc(otherActor: MyActor) -> Int { + _ = immutable + _ = text[0] // expected-error{{actor-isolated property 'text' can not be referenced from an '@actorIndependent' context}} + _ = synchronous() // expected-error{{actor-isolated instance method 'synchronous()' can not be referenced from an '@actorIndependent' context}} + + // @actorIndependent + _ = actorIndependentFunc(otherActor: self) + _ = actorIndependentVar + actorIndependentVar = 17 + _ = self.actorIndependentFunc(otherActor: self) + _ = self.actorIndependentVar + self.actorIndependentVar = 17 + + // @actorIndependent on another actor + _ = otherActor.actorIndependentFunc(otherActor: self) + _ = otherActor.actorIndependentVar + otherActor.actorIndependentVar = 17 + + // Global data is okay if it is immutable. + _ = immutableGlobal + _ = mutableGlobal // expected-warning{{reference to var 'mutableGlobal' is not concurrency-safe because it involves shared mutable state}} + + return 5 + } + func testAsynchronous(otherActor: MyActor) async { _ = immutable _ = synchronous() @@ -125,6 +155,11 @@ func testGlobalRestrictions(actor: MyActor) async { _ = actor.text[0] // expected-error{{actor-isolated property 'text' can only be referenced inside the actor}} _ = actor[0] // expected-error{{actor-isolated subscript 'subscript(_:)' can only be referenced inside the actor}} + // @actorIndependent declarations are permitted. + _ = actor.actorIndependentFunc(otherActor: actor) + _ = actor.actorIndependentVar + actor.actorIndependentVar = 5 + // Operations on non-instances are permitted. MyActor.synchronousStatic() MyActor.synchronousClass() diff --git a/test/attr/actorindependent.swift b/test/attr/actorindependent.swift new file mode 100644 index 0000000000000..4cc8d3ef45acb --- /dev/null +++ b/test/attr/actorindependent.swift @@ -0,0 +1,77 @@ +// RUN: %target-swift-frontend -typecheck -verify %s -enable-experimental-concurrency + +// expected-error@+1{{'@actorIsolated' can only be applied to actor members and global/static variables}} +@actorIndependent func globalFunction() { } + +@actorIndependent var globalComputedProperty1: Int { 17 } + +@actorIndependent var globalComputedProperty2: Int { + get { 17 } + set { } +} + +// expected-error@+1{{'@actorIsolated' can not be applied to stored properties}} +@actorIndependent var globalStoredProperty: Int = 17 + +struct X { + @actorIndependent + static var staticProperty1: Int { + return 5 + } + + @actorIndependent + static var staticProperty2: Int { + get { 5 } + set { } + } + + // expected-error@+1{{'@actorIsolated' can not be applied to stored properties}} + @actorIndependent + static var storedStaticProperty: Int = 17 +} + +class C { + // expected-error@+1{{'@actorIsolated' can only be applied to actor members and global/static variables}} + @actorIndependent + var property3: Int { 5 } +} + +actor class A { + var property: Int = 5 + + // expected-error@+1{{'@actorIsolated' can not be applied to stored properties}} + @actorIndependent + var property2: Int = 5 + + @actorIndependent + var property3: Int { 5 } + + @actorIndependent + var property4: Int { + get { 5 } + set { } + } + + @actorIndependent + static var staticProperty1: Int { + return 5 + } + + @actorIndependent + static var staticProperty2: Int { + get { 5 } + set { } + } + + @actorIndependent + func synchronousFunc() { } + + @actorIndependent + func asynchronousFunc() async { } + + @actorIndependent + subscript(index: Int) -> String { "\(index)" } + + // expected-error@+1{{'@actorIsolated' can only be applied to instance members of actors}} + @actorIndependent static func staticFunc() { } +} diff --git a/test/decl/class/actor/conformance.swift b/test/decl/class/actor/conformance.swift index 5cd3542d25ca0..70f10d4afab2f 100644 --- a/test/decl/class/actor/conformance.swift +++ b/test/decl/class/actor/conformance.swift @@ -24,6 +24,8 @@ protocol SyncProtocol { func syncMethodB() + func syncMethodC() -> Int + subscript (index: Int) -> String { get } // expected-note@-1{{do you want to add a stub}} @@ -46,6 +48,10 @@ actor class OtherActor: SyncProtocol { // expected-error{{type 'OtherActor' does @asyncHandler func syncMethodB() { } + // @actorIndependent methods are okay. + // FIXME: Consider suggesting @actorIndependent if this didn't match. + @actorIndependent func syncMethodC() -> Int { 5 } + subscript (index: Int) -> String { "\(index)" } // expected-note@-1{{actor-isolated subscript 'subscript(_:)' cannot be used to satisfy a protocol requirement}} From 66d62ff144c3b3f4b9cb77189d1d5b2c98409d7d Mon Sep 17 00:00:00 2001 From: Erik Eckstein Date: Mon, 21 Sep 2020 12:21:11 +0200 Subject: [PATCH 04/31] stdlib: fix a back-deployment issue for array COW checks with a stdlib assert-build And rename COWSanityChecks -> COWChecks. rdar://problem/68181747 --- .../public/core/ContiguousArrayBuffer.swift | 50 +++++++++---------- .../public/runtime/EnvironmentVariables.cpp | 4 +- .../public/runtime/EnvironmentVariables.def | 4 +- test/lit.cfg | 2 +- 4 files changed, 29 insertions(+), 31 deletions(-) diff --git a/stdlib/public/core/ContiguousArrayBuffer.swift b/stdlib/public/core/ContiguousArrayBuffer.swift index 5d737ec0f3929..88a35ac497f44 100644 --- a/stdlib/public/core/ContiguousArrayBuffer.swift +++ b/stdlib/public/core/ContiguousArrayBuffer.swift @@ -14,16 +14,8 @@ import SwiftShims #if INTERNAL_CHECKS_ENABLED @available(macOS 9999, iOS 9999, watchOS 9999, tvOS 9999, *) -@_silgen_name("swift_COWSanityChecksEnabled") -public func _COWSanityChecksEnabled() -> Bool - -@_alwaysEmitIntoClient -internal func doCOWSanityChecks() -> Bool { - if #available(macOS 9999, iOS 9999, watchOS 9999, tvOS 9999, *) { - return _COWSanityChecksEnabled() - } - return false -} +@_silgen_name("swift_COWChecksEnabled") +public func _COWChecksEnabled() -> Bool #endif /// Class used whose sole instance is used as storage for empty @@ -468,25 +460,29 @@ internal struct _ContiguousArrayBuffer: _ArrayBufferProtocol { @_alwaysEmitIntoClient internal var isImmutable: Bool { get { - if doCOWSanityChecks() { - return capacity == 0 || _swift_isImmutableCOWBuffer(_storage) + if #available(macOS 9999, iOS 9999, watchOS 9999, tvOS 9999, *) { + if (_COWChecksEnabled()) { + return capacity == 0 || _swift_isImmutableCOWBuffer(_storage) + } } return true } nonmutating set { - if doCOWSanityChecks() { - if newValue { - if capacity > 0 { - let wasImmutable = _swift_setImmutableCOWBuffer(_storage, true) - _internalInvariant(!wasImmutable, - "re-setting immutable array buffer to immutable") + if #available(macOS 9999, iOS 9999, watchOS 9999, tvOS 9999, *) { + if (_COWChecksEnabled()) { + if newValue { + if capacity > 0 { + let wasImmutable = _swift_setImmutableCOWBuffer(_storage, true) + _internalInvariant(!wasImmutable, + "re-setting immutable array buffer to immutable") + } + } else { + _internalInvariant(capacity > 0, + "setting empty array buffer to mutable") + let wasImmutable = _swift_setImmutableCOWBuffer(_storage, false) + _internalInvariant(wasImmutable, + "re-setting mutable array buffer to mutable") } - } else { - _internalInvariant(capacity > 0, - "setting empty array buffer to mutable") - let wasImmutable = _swift_setImmutableCOWBuffer(_storage, false) - _internalInvariant(wasImmutable, - "re-setting mutable array buffer to mutable") } } } @@ -494,8 +490,10 @@ internal struct _ContiguousArrayBuffer: _ArrayBufferProtocol { @_alwaysEmitIntoClient internal var isMutable: Bool { - if doCOWSanityChecks() { - return !_swift_isImmutableCOWBuffer(_storage) + if #available(macOS 9999, iOS 9999, watchOS 9999, tvOS 9999, *) { + if (_COWChecksEnabled()) { + return !_swift_isImmutableCOWBuffer(_storage) + } } return true } diff --git a/stdlib/public/runtime/EnvironmentVariables.cpp b/stdlib/public/runtime/EnvironmentVariables.cpp index 8c9ae7eaf2fb6..7ef1fe5747667 100644 --- a/stdlib/public/runtime/EnvironmentVariables.cpp +++ b/stdlib/public/runtime/EnvironmentVariables.cpp @@ -190,7 +190,7 @@ void swift::runtime::environment::initialize(void *context) { #endif SWIFT_RUNTIME_EXPORT -bool swift_COWSanityChecksEnabled() { - return runtime::environment::SWIFT_DEBUG_ENABLE_COW_SANITY_CHECKS(); +bool swift_COWChecksEnabled() { + return runtime::environment::SWIFT_DEBUG_ENABLE_COW_CHECKS(); } diff --git a/stdlib/public/runtime/EnvironmentVariables.def b/stdlib/public/runtime/EnvironmentVariables.def index bff9a4079bcd1..bd6f42519084b 100644 --- a/stdlib/public/runtime/EnvironmentVariables.def +++ b/stdlib/public/runtime/EnvironmentVariables.def @@ -44,7 +44,7 @@ VARIABLE(SWIFT_ENABLE_MANGLED_NAME_VERIFICATION, bool, false, VARIABLE(SWIFT_DEBUG_ENABLE_MALLOC_SCRIBBLE, bool, false, "Scribble on runtime allocations such as metadata allocations.") -VARIABLE(SWIFT_DEBUG_ENABLE_COW_SANITY_CHECKS, bool, false, - "Enable sanity checks for copy-on-write operations.") +VARIABLE(SWIFT_DEBUG_ENABLE_COW_CHECKS, bool, false, + "Enable internal checks for copy-on-write operations.") #undef VARIABLE diff --git a/test/lit.cfg b/test/lit.cfg index 1df74ed484d46..0f5d9392297b2 100644 --- a/test/lit.cfg +++ b/test/lit.cfg @@ -1993,7 +1993,7 @@ config.environment[TARGET_ENV_PREFIX + 'SWIFT_DETERMINISTIC_HASHING'] = '1' config.environment[TARGET_ENV_PREFIX + 'SWIFT_DEBUG_ENABLE_MALLOC_SCRIBBLE'] = 'YES' # Enable COW sanity checks in the swift runtime by default. -config.environment['SWIFT_DEBUG_ENABLE_COW_SANITY_CHECKS'] = 'true' +config.environment['SWIFT_DEBUG_ENABLE_COW_CHECKS'] = 'true' # Run lsb_release on the target to be tested and return the results. def linux_get_lsb_release(): From 45299909bca5439c234ac3bd342c96a9ee87b843 Mon Sep 17 00:00:00 2001 From: Xiaodi Wu <13952+xwu@users.noreply.github.com> Date: Mon, 21 Sep 2020 07:30:43 -0400 Subject: [PATCH 05/31] [runtime] Silence unreachable code warning (#33912) --- stdlib/public/runtime/DynamicCast.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/stdlib/public/runtime/DynamicCast.cpp b/stdlib/public/runtime/DynamicCast.cpp index f84800067e976..f19af13ab6311 100644 --- a/stdlib/public/runtime/DynamicCast.cpp +++ b/stdlib/public/runtime/DynamicCast.cpp @@ -864,8 +864,9 @@ tryCastToString( destLocation, destType, srcValue, srcType, destFailureType, srcFailureType, takeOnSuccess, mayDeferChecks); -#endif +#else SWIFT_FALLTHROUGH; +#endif } default: return DynamicCastResult::Failure; From 0591fa0d6b7626725bee4eff029ac67d183c14b5 Mon Sep 17 00:00:00 2001 From: Michael Gottesman Date: Mon, 21 Sep 2020 09:57:37 -0500 Subject: [PATCH 06/31] [leaks-checker] Add verbose flag to dump out raw output from runtime to help debug failures on bots. Just a quick hack to ease debugging on the bots. --- .../scripts/Benchmark_RuntimeLeaksRunner.in | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/benchmark/scripts/Benchmark_RuntimeLeaksRunner.in b/benchmark/scripts/Benchmark_RuntimeLeaksRunner.in index aab05c9821194..d59ea41032c0f 100644 --- a/benchmark/scripts/Benchmark_RuntimeLeaksRunner.in +++ b/benchmark/scripts/Benchmark_RuntimeLeaksRunner.in @@ -62,12 +62,13 @@ class LeaksRunnerResult(perf_test_driver.Result): class LeaksRunnerBenchmarkDriver(perf_test_driver.BenchmarkDriver): - def __init__(self, binary, xfail_list, num_samples, num_iters): + def __init__(self, binary, xfail_list, num_samples, num_iters, verbose): perf_test_driver.BenchmarkDriver.__init__( self, binary, xfail_list, enable_parallel=True ) self.num_samples = num_samples self.num_iters = num_iters + self.verbose = verbose def print_data_header(self, max_test_len): fmt = "{:<%d}{:<10}{:}" % (max_test_len + 5) @@ -120,6 +121,13 @@ class LeaksRunnerBenchmarkDriver(perf_test_driver.BenchmarkDriver): ] d["objc_count"] = len(d["objc_objects"]) + # If we are asked to emit verbose output, do so now. + if self.verbose: + tmp = (data["path"], data["test_name"], d) + sys.stderr.write( + "VERBOSE (%s,%s): %s" % tmp) + sys.stderr.flush() + total_count = d["objc_count"] + d["swift_count"] return total_count except Exception: @@ -156,13 +164,17 @@ def parse_args(): ) parser.add_argument("-num-samples", type=int, default=2) parser.add_argument("-num-iters", type=int, default=2) + parser.add_argument("-v", "--verbose", action="store_true", + help="Upon failure, dump out raw result", + dest="verbose") return parser.parse_args() if __name__ == "__main__": args = parse_args() driver = LeaksRunnerBenchmarkDriver( - SWIFT_BIN_DIR, XFAIL_LIST, args.num_samples, args.num_iters + SWIFT_BIN_DIR, XFAIL_LIST, args.num_samples, args.num_iters, + args.verbose ) if driver.run(args.filter): sys.exit(0) From c0375dbe82294087c23f6a8e8bbd68cc67f98684 Mon Sep 17 00:00:00 2001 From: Robert Widmann Date: Thu, 23 Jul 2020 18:21:04 -0700 Subject: [PATCH 07/31] Remove TypeResolutionFlags::KnownNonCascadingDependency --- lib/Sema/TypeCheckDecl.cpp | 5 ----- lib/Sema/TypeCheckGeneric.cpp | 5 ----- lib/Sema/TypeCheckType.cpp | 20 ++++---------------- lib/Sema/TypeCheckType.h | 9 +++------ 4 files changed, 7 insertions(+), 32 deletions(-) diff --git a/lib/Sema/TypeCheckDecl.cpp b/lib/Sema/TypeCheckDecl.cpp index 79e362e0e4064..c0b80def44141 100644 --- a/lib/Sema/TypeCheckDecl.cpp +++ b/lib/Sema/TypeCheckDecl.cpp @@ -1751,11 +1751,6 @@ UnderlyingTypeRequest::evaluate(Evaluator &evaluator, ? TypeResolverContext::GenericTypeAliasDecl : TypeResolverContext::TypeAliasDecl)); - if (!typeAlias->getDeclContext()->isCascadingContextForLookup( - /*functionsAreNonCascading*/ true)) { - options |= TypeResolutionFlags::KnownNonCascadingDependency; - } - // This can happen when code completion is attempted inside // of typealias underlying type e.g. `typealias F = () -> Int#^TOK^#` auto *underlyingRepr = typeAlias->getUnderlyingTypeRepr(); diff --git a/lib/Sema/TypeCheckGeneric.cpp b/lib/Sema/TypeCheckGeneric.cpp index 016345c4620bc..9c69020d726b0 100644 --- a/lib/Sema/TypeCheckGeneric.cpp +++ b/lib/Sema/TypeCheckGeneric.cpp @@ -951,11 +951,6 @@ Type StructuralTypeRequest::evaluate(Evaluator &evaluator, ? TypeResolverContext::GenericTypeAliasDecl : TypeResolverContext::TypeAliasDecl)); - if (!typeAlias->getDeclContext()->isCascadingContextForLookup( - /*functionsAreNonCascading*/ true)) { - options |= TypeResolutionFlags::KnownNonCascadingDependency; - } - // This can happen when code completion is attempted inside // of typealias underlying type e.g. `typealias F = () -> Int#^TOK^#` auto &ctx = typeAlias->getASTContext(); diff --git a/lib/Sema/TypeCheckType.cpp b/lib/Sema/TypeCheckType.cpp index ea62c20a7e817..5c7bda88730bf 100644 --- a/lib/Sema/TypeCheckType.cpp +++ b/lib/Sema/TypeCheckType.cpp @@ -1325,11 +1325,8 @@ static Type resolveTopLevelIdentTypeComponent(TypeResolution resolution, } } - NameLookupOptions lookupOptions = defaultUnqualifiedLookupOptions; - if (options.contains(TypeResolutionFlags::KnownNonCascadingDependency)) - lookupOptions |= NameLookupFlags::KnownPrivate; auto globals = TypeChecker::lookupUnqualifiedType(DC, id, comp->getLoc(), - lookupOptions); + defaultUnqualifiedLookupOptions); // Process the names we found. Type current; @@ -1407,7 +1404,7 @@ static Type resolveTopLevelIdentTypeComponent(TypeResolution resolution, return ErrorType::get(ctx); return diagnoseUnknownType(resolution, nullptr, SourceRange(), comp, - lookupOptions); + defaultUnqualifiedLookupOptions); } comp->setValue(currentDecl, currentDC); @@ -1529,20 +1526,11 @@ static Type resolveNestedIdentTypeComponent(TypeResolution resolution, // Phase 1: Find and bind the component decl. // Look for member types with the given name. - bool isKnownNonCascading = options.contains(TypeResolutionFlags::KnownNonCascadingDependency); - if (!isKnownNonCascading && options.isAnyExpr()) { - // Expressions cannot affect a function's signature. - isKnownNonCascading = isa(DC); - } - - NameLookupOptions lookupOptions = defaultMemberLookupOptions; - if (isKnownNonCascading) - lookupOptions |= NameLookupFlags::KnownPrivate; LookupTypeResult memberTypes; if (parentTy->mayHaveMembers()) memberTypes = TypeChecker::lookupMemberType(DC, parentTy, comp->getNameRef(), - lookupOptions); + defaultMemberLookupOptions); // Name lookup was ambiguous. Complain. // FIXME: Could try to apply generic arguments first, and see whether @@ -1565,7 +1553,7 @@ static Type resolveNestedIdentTypeComponent(TypeResolution resolution, return ErrorType::get(ctx); memberType = diagnoseUnknownType(resolution, parentTy, parentRange, comp, - lookupOptions); + defaultMemberLookupOptions); member = comp->getBoundDecl(); if (!member) return ErrorType::get(ctx); diff --git a/lib/Sema/TypeCheckType.h b/lib/Sema/TypeCheckType.h index e73b555c7f9e4..ab6f58b1de4b6 100644 --- a/lib/Sema/TypeCheckType.h +++ b/lib/Sema/TypeCheckType.h @@ -55,17 +55,14 @@ enum class TypeResolutionFlags : uint16_t { /// Whether this is a resolution based on a non-inferred type pattern. FromNonInferredPattern = 1 << 6, - /// Whether this type resolution is guaranteed not to affect downstream files. - KnownNonCascadingDependency = 1 << 7, - /// Whether we are at the direct base of a type expression. - Direct = 1 << 8, + Direct = 1 << 7, /// Whether we should not produce diagnostics if the type is invalid. - SilenceErrors = 1 << 9, + SilenceErrors = 1 << 8, /// Whether to allow module declaration types. - AllowModule = 1 << 10 + AllowModule = 1 << 9, }; /// Type resolution contexts that require special handling. From 259e1a94c98240da8a04c47fed576f409fd34e5c Mon Sep 17 00:00:00 2001 From: Robert Widmann Date: Thu, 23 Jul 2020 18:22:30 -0700 Subject: [PATCH 08/31] Remove UnqualifiedLookupFlags::KnownPrivate --- include/swift/AST/NameLookup.h | 10 ++++------ lib/AST/NameLookup.cpp | 1 - lib/AST/NameLookupRequests.cpp | 6 +----- lib/Sema/CSSimplify.cpp | 3 +-- lib/Sema/MiscDiagnostics.cpp | 3 +-- lib/Sema/TypeCheckNameLookup.cpp | 6 ------ 6 files changed, 7 insertions(+), 22 deletions(-) diff --git a/include/swift/AST/NameLookup.h b/include/swift/AST/NameLookup.h index 4099879c67f08..892bc18d0aee9 100644 --- a/include/swift/AST/NameLookup.h +++ b/include/swift/AST/NameLookup.h @@ -215,18 +215,16 @@ class LookupResult { }; enum class UnqualifiedLookupFlags { - /// This lookup is known to not affect downstream files. - KnownPrivate = 0x01, /// This lookup should only return types. - TypeLookup = 0x02, + TypeLookup = 1 << 0, /// This lookup should consider declarations within protocols to which the /// context type conforms. - AllowProtocolMembers = 0x04, + AllowProtocolMembers = 1 << 2, /// Don't check access when doing lookup into a type. - IgnoreAccessControl = 0x08, + IgnoreAccessControl = 1 << 3, /// This lookup should include results from outside the innermost scope with /// results. - IncludeOuterResults = 0x10, + IncludeOuterResults = 1 << 4, }; using UnqualifiedLookupOptions = OptionSet; diff --git a/lib/AST/NameLookup.cpp b/lib/AST/NameLookup.cpp index 17fd2c3e09264..fa64c41e2951e 100644 --- a/lib/AST/NameLookup.cpp +++ b/lib/AST/NameLookup.cpp @@ -119,7 +119,6 @@ void swift::simple_display(llvm::raw_ostream &out, {UnqualifiedLookupFlags::AllowProtocolMembers, "AllowProtocolMembers"}, {UnqualifiedLookupFlags::IgnoreAccessControl, "IgnoreAccessControl"}, {UnqualifiedLookupFlags::IncludeOuterResults, "IncludeOuterResults"}, - {UnqualifiedLookupFlags::KnownPrivate, "KnownPrivate"}, {UnqualifiedLookupFlags::TypeLookup, "TypeLookup"}, }; diff --git a/lib/AST/NameLookupRequests.cpp b/lib/AST/NameLookupRequests.cpp index e581001fba475..5d18344d12536 100644 --- a/lib/AST/NameLookupRequests.cpp +++ b/lib/AST/NameLookupRequests.cpp @@ -439,11 +439,7 @@ evaluator::DependencySource UnqualifiedLookupRequest::readDependencySource( // with the existing scheme, but the existing scheme is totally ad-hoc. We // should remove this flag and ensure that non-cascading qualified lookups // occur in the right contexts instead. - auto scope = evaluator::DependencyScope::Cascading; - if (desc.Options.contains(UnqualifiedLookupFlags::KnownPrivate)) { - scope = evaluator::DependencyScope::Private; - } - return {desc.DC->getParentSourceFile(), scope}; + return {desc.DC->getParentSourceFile(), evaluator::DependencyScope::Cascading}; } void UnqualifiedLookupRequest::writeDependencySink( diff --git a/lib/Sema/CSSimplify.cpp b/lib/Sema/CSSimplify.cpp index 05e244eff72c4..95026f70c9bdd 100644 --- a/lib/Sema/CSSimplify.cpp +++ b/lib/Sema/CSSimplify.cpp @@ -7291,8 +7291,7 @@ ConstraintSystem::SolutionKind ConstraintSystem::simplifyMemberConstraint( DeclNameRef(param->getName()), paramDecl->getDeclContext()->getParentSourceFile(), SourceLoc(), - UnqualifiedLookupFlags::KnownPrivate | - UnqualifiedLookupFlags::TypeLookup); + UnqualifiedLookupFlags::TypeLookup); auto lookup = evaluateOrDefault( Context.evaluator, UnqualifiedLookupRequest{descriptor}, {}); for (auto &result : lookup) { diff --git a/lib/Sema/MiscDiagnostics.cpp b/lib/Sema/MiscDiagnostics.cpp index 8fe6f4f079377..95ab4e77dd50f 100644 --- a/lib/Sema/MiscDiagnostics.cpp +++ b/lib/Sema/MiscDiagnostics.cpp @@ -655,8 +655,7 @@ static void diagSyntacticUseRestrictions(const Expr *E, const DeclContext *DC, DeclContext *topLevelContext = DC->getModuleScopeContext(); auto descriptor = UnqualifiedLookupDescriptor( - DeclNameRef(VD->getBaseName()), topLevelContext, SourceLoc(), - UnqualifiedLookupFlags::KnownPrivate); + DeclNameRef(VD->getBaseName()), topLevelContext, SourceLoc()); auto lookup = evaluateOrDefault(Ctx.evaluator, UnqualifiedLookupRequest{descriptor}, {}); diff --git a/lib/Sema/TypeCheckNameLookup.cpp b/lib/Sema/TypeCheckNameLookup.cpp index 88b6736f9fe64..62347f886bbec 100644 --- a/lib/Sema/TypeCheckNameLookup.cpp +++ b/lib/Sema/TypeCheckNameLookup.cpp @@ -207,8 +207,6 @@ namespace { static UnqualifiedLookupOptions convertToUnqualifiedLookupOptions(NameLookupOptions options) { UnqualifiedLookupOptions newOptions = UnqualifiedLookupFlags::AllowProtocolMembers; - if (options.contains(NameLookupFlags::KnownPrivate)) - newOptions |= UnqualifiedLookupFlags::KnownPrivate; if (options.contains(NameLookupFlags::IgnoreAccessControl)) newOptions |= UnqualifiedLookupFlags::IgnoreAccessControl; if (options.contains(NameLookupFlags::IncludeOuterResults)) @@ -312,8 +310,6 @@ LookupResult TypeChecker::lookupMember(DeclContext *dc, LookupResult result; NLOptions subOptions = (NL_QualifiedDefault | NL_ProtocolMembers); - if (options.contains(NameLookupFlags::KnownPrivate)) - subOptions |= NL_KnownNonCascadingDependency; if (options.contains(NameLookupFlags::IgnoreAccessControl)) subOptions |= NL_IgnoreAccessControl; @@ -388,8 +384,6 @@ LookupTypeResult TypeChecker::lookupMemberType(DeclContext *dc, SmallVector decls; NLOptions subOptions = (NL_QualifiedDefault | NL_OnlyTypes | NL_ProtocolMembers); - if (options.contains(NameLookupFlags::KnownPrivate)) - subOptions |= NL_KnownNonCascadingDependency; if (options.contains(NameLookupFlags::IgnoreAccessControl)) subOptions |= NL_IgnoreAccessControl; From ee35a4fe18c5c9bf6f51019c09bc3bd69f451471 Mon Sep 17 00:00:00 2001 From: Robert Widmann Date: Thu, 23 Jul 2020 18:26:00 -0700 Subject: [PATCH 09/31] Remove NameLookupFlags::KnownPrivate --- lib/AST/UnqualifiedLookup.cpp | 3 +-- lib/Sema/CSSimplify.cpp | 2 -- lib/Sema/ConstraintSystem.cpp | 6 +----- lib/Sema/MiscDiagnostics.cpp | 3 +-- lib/Sema/TypeCheckConstraints.cpp | 33 +++++++------------------------ lib/Sema/TypeCheckExpr.cpp | 5 +---- lib/Sema/TypeCheckPattern.cpp | 5 ++--- lib/Sema/TypeCheckProtocol.cpp | 10 +++------- lib/Sema/TypeCheckStmt.cpp | 3 ++- lib/Sema/TypeCheckType.cpp | 4 ---- lib/Sema/TypeChecker.h | 6 ++---- 11 files changed, 20 insertions(+), 60 deletions(-) diff --git a/lib/AST/UnqualifiedLookup.cpp b/lib/AST/UnqualifiedLookup.cpp index 1d418524f465b..25efab6e1f718 100644 --- a/lib/AST/UnqualifiedLookup.cpp +++ b/lib/AST/UnqualifiedLookup.cpp @@ -195,8 +195,7 @@ namespace { const bool isOriginallyTypeLookup); Optional getInitialIsCascadingUse() const { - return options.contains(Flags::KnownPrivate) ? Optional(false) - : None; + return Optional(false); } void findResultsAndSaveUnavailables( diff --git a/lib/Sema/CSSimplify.cpp b/lib/Sema/CSSimplify.cpp index 95026f70c9bdd..c229e84b11e7c 100644 --- a/lib/Sema/CSSimplify.cpp +++ b/lib/Sema/CSSimplify.cpp @@ -6693,8 +6693,6 @@ performMemberLookup(ConstraintKind constraintKind, DeclNameRef memberName, // Ignore access control so we get candidates that might have been missed // before. lookupOptions |= NameLookupFlags::IgnoreAccessControl; - // This is only used for diagnostics, so always use KnownPrivate. - lookupOptions |= NameLookupFlags::KnownPrivate; auto lookup = TypeChecker::lookupMember(DC, instanceTy, memberName, lookupOptions); diff --git a/lib/Sema/ConstraintSystem.cpp b/lib/Sema/ConstraintSystem.cpp index c035f4567deca..6e10186b12b60 100644 --- a/lib/Sema/ConstraintSystem.cpp +++ b/lib/Sema/ConstraintSystem.cpp @@ -247,11 +247,7 @@ LookupResult &ConstraintSystem::lookupMember(Type base, DeclNameRef name) { if (result) return *result; // Lookup the member. - NameLookupOptions lookupOptions = defaultMemberLookupOptions; - if (isa(DC)) - lookupOptions |= NameLookupFlags::KnownPrivate; - - result = TypeChecker::lookupMember(DC, base, name, lookupOptions); + result = TypeChecker::lookupMember(DC, base, name, defaultMemberLookupOptions); // If we aren't performing dynamic lookup, we're done. if (!*result || !base->isAnyObject()) diff --git a/lib/Sema/MiscDiagnostics.cpp b/lib/Sema/MiscDiagnostics.cpp index 95ab4e77dd50f..6e9c126f3599c 100644 --- a/lib/Sema/MiscDiagnostics.cpp +++ b/lib/Sema/MiscDiagnostics.cpp @@ -3458,8 +3458,7 @@ class ObjCSelectorWalker : public ASTWalker { auto nominal = method->getDeclContext()->getSelfNominalTypeDecl(); auto result = TypeChecker::lookupMember( const_cast(DC), nominal->getDeclaredInterfaceType(), - DeclNameRef(lookupName), - (defaultMemberLookupOptions | NameLookupFlags::KnownPrivate)); + DeclNameRef(lookupName), defaultMemberLookupOptions); // If we didn't find multiple methods, there is no ambiguity. if (result.size() < 2) return false; diff --git a/lib/Sema/TypeCheckConstraints.cpp b/lib/Sema/TypeCheckConstraints.cpp index 44669f0f2b7ea..5e3728222ca5b 100644 --- a/lib/Sema/TypeCheckConstraints.cpp +++ b/lib/Sema/TypeCheckConstraints.cpp @@ -341,14 +341,11 @@ static bool diagnoseOperatorJuxtaposition(UnresolvedDeclRefExpr *UDRE, // Perform name lookup for the first and second pieces. If either fail to // be found, then it isn't a valid split. - NameLookupOptions LookupOptions = defaultUnqualifiedLookupOptions; - // This is only used for diagnostics, so always use KnownPrivate. - LookupOptions |= NameLookupFlags::KnownPrivate; auto startLookup = TypeChecker::lookupUnqualified( - DC, startName, UDRE->getLoc(), LookupOptions); + DC, startName, UDRE->getLoc(), defaultUnqualifiedLookupOptions); if (!startLookup) continue; auto endLookup = TypeChecker::lookupUnqualified(DC, endName, UDRE->getLoc(), - LookupOptions); + defaultUnqualifiedLookupOptions); if (!endLookup) continue; // If the overall operator is a binary one, then we're looking at @@ -536,9 +533,6 @@ Expr *TypeChecker::resolveDeclRefExpr(UnresolvedDeclRefExpr *UDRE, // Perform standard value name lookup. NameLookupOptions lookupOptions = defaultUnqualifiedLookupOptions; - if (isa(DC)) - lookupOptions |= NameLookupFlags::KnownPrivate; - // TODO: Include all of the possible members to give a solver a // chance to diagnose name shadowing which requires explicit // name/module qualifier to access top-level name. @@ -562,7 +556,6 @@ Expr *TypeChecker::resolveDeclRefExpr(UnresolvedDeclRefExpr *UDRE, // Try ignoring access control. NameLookupOptions relookupOptions = lookupOptions; - relookupOptions |= NameLookupFlags::KnownPrivate; relookupOptions |= NameLookupFlags::IgnoreAccessControl; auto inaccessibleResults = TypeChecker::lookupUnqualified(DC, Name, Loc, relookupOptions); @@ -1424,14 +1417,10 @@ TypeExpr *PreCheckExpression::simplifyNestedTypeExpr(UnresolvedDotExpr *UDE) { // and not a TypeExpr. if (auto *DRE = dyn_cast(UDE->getBase())) { if (auto *TD = dyn_cast(DRE->getDecl())) { - auto lookupOptions = defaultMemberLookupOptions; - if (isa(DC) || - isa(DC)) - lookupOptions |= NameLookupFlags::KnownPrivate; - // See if the type has a member type with this name. auto Result = TypeChecker::lookupMemberType( - DC, TD->getDeclaredInterfaceType(), Name, lookupOptions); + DC, TD->getDeclaredInterfaceType(), Name, + defaultMemberLookupOptions); // If there is no nested type with this name, we have a lookup of // a non-type member, so leave the expression as-is. @@ -1484,14 +1473,10 @@ TypeExpr *PreCheckExpression::simplifyNestedTypeExpr(UnresolvedDotExpr *UDE) { const auto BaseTy = resolution.resolveType(InnerTypeRepr); if (BaseTy->mayHaveMembers()) { - auto lookupOptions = defaultMemberLookupOptions; - if (isa(DC) || - isa(DC)) - lookupOptions |= NameLookupFlags::KnownPrivate; - // See if there is a member type with this name. auto Result = - TypeChecker::lookupMemberType(DC, BaseTy, Name, lookupOptions); + TypeChecker::lookupMemberType(DC, BaseTy, Name, + defaultMemberLookupOptions); // If there is no nested type with this name, we have a lookup of // a non-type member, so leave the expression as-is. @@ -2466,12 +2451,10 @@ bool TypeChecker::typeCheckExprPattern(ExprPattern *EP, DeclContext *DC, EP->setMatchVar(matchVar); // Find '~=' operators for the match. - auto lookupOptions = defaultUnqualifiedLookupOptions; - lookupOptions |= NameLookupFlags::KnownPrivate; auto matchLookup = lookupUnqualified(DC->getModuleScopeContext(), DeclNameRef(Context.Id_MatchOperator), - SourceLoc(), lookupOptions); + SourceLoc(), defaultUnqualifiedLookupOptions); auto &diags = DC->getASTContext().Diags; if (!matchLookup) { diags.diagnose(EP->getLoc(), diag::no_match_operator); @@ -3884,8 +3867,6 @@ IsCallableNominalTypeRequest::evaluate(Evaluator &evaluator, CanType ty, DeclContext *dc) const { auto options = defaultMemberLookupOptions; options |= NameLookupFlags::IgnoreAccessControl; - if (isa(dc)) - options |= NameLookupFlags::KnownPrivate; // Look for a callAsFunction method. auto &ctx = ty->getASTContext(); diff --git a/lib/Sema/TypeCheckExpr.cpp b/lib/Sema/TypeCheckExpr.cpp index 3e0f89cec52cc..7e8135083ea34 100644 --- a/lib/Sema/TypeCheckExpr.cpp +++ b/lib/Sema/TypeCheckExpr.cpp @@ -617,13 +617,10 @@ Expr *TypeChecker::buildRefExpr(ArrayRef Decls, static Type lookupDefaultLiteralType(const DeclContext *dc, StringRef name) { auto &ctx = dc->getASTContext(); - auto lookupOptions = defaultUnqualifiedLookupOptions; - if (isa(dc)) - lookupOptions |= NameLookupFlags::KnownPrivate; DeclNameRef nameRef(ctx.getIdentifier(name)); auto lookup = TypeChecker::lookupUnqualified(dc->getModuleScopeContext(), nameRef, SourceLoc(), - lookupOptions); + defaultUnqualifiedLookupOptions); TypeDecl *TD = lookup.getSingleTypeResult(); if (!TD) return Type(); diff --git a/lib/Sema/TypeCheckPattern.cpp b/lib/Sema/TypeCheckPattern.cpp index 72d5446207b30..459b7df7636c8 100644 --- a/lib/Sema/TypeCheckPattern.cpp +++ b/lib/Sema/TypeCheckPattern.cpp @@ -119,10 +119,9 @@ lookupUnqualifiedEnumMemberElement(DeclContext *DC, DeclNameRef name, // FIXME: We should probably pay attention to argument labels someday. name = name.withoutArgumentLabels(); - auto lookupOptions = defaultUnqualifiedLookupOptions; - lookupOptions |= NameLookupFlags::KnownPrivate; auto lookup = - TypeChecker::lookupUnqualified(DC, name, UseLoc, lookupOptions); + TypeChecker::lookupUnqualified(DC, name, UseLoc, + defaultUnqualifiedLookupOptions); return filterForEnumElement(DC, UseLoc, /*unqualifiedLookup=*/true, lookup); } diff --git a/lib/Sema/TypeCheckProtocol.cpp b/lib/Sema/TypeCheckProtocol.cpp index 5873dee725e14..2e12e57c9e48a 100644 --- a/lib/Sema/TypeCheckProtocol.cpp +++ b/lib/Sema/TypeCheckProtocol.cpp @@ -1164,12 +1164,9 @@ WitnessChecker::lookupValueWitnesses(ValueDecl *req, bool *ignoringNames) { if (req->isOperator()) { // Operator lookup is always global. - auto lookupOptions = defaultUnqualifiedLookupOptions; - if (!DC->isCascadingContextForLookup(false)) - lookupOptions |= NameLookupFlags::KnownPrivate; auto lookup = TypeChecker::lookupUnqualified(DC->getModuleScopeContext(), reqBaseName, SourceLoc(), - lookupOptions); + defaultUnqualifiedLookupOptions); for (auto candidate : lookup) { auto decl = candidate.getValueDecl(); if (swift::isMemberOperator(cast(decl), Adoptee)) { @@ -1249,10 +1246,9 @@ bool WitnessChecker::findBestWitness( if (!overlay) continue; - auto lookupOptions = defaultUnqualifiedLookupOptions; - lookupOptions |= NameLookupFlags::KnownPrivate; auto lookup = TypeChecker::lookupUnqualified( - overlay, requirement->createNameRef(), SourceLoc(), lookupOptions); + overlay, requirement->createNameRef(), SourceLoc(), + defaultUnqualifiedLookupOptions); for (auto candidate : lookup) witnesses.push_back(candidate.getValueDecl()); break; diff --git a/lib/Sema/TypeCheckStmt.cpp b/lib/Sema/TypeCheckStmt.cpp index 4ba673ceaab4c..675b18ea127e7 100644 --- a/lib/Sema/TypeCheckStmt.cpp +++ b/lib/Sema/TypeCheckStmt.cpp @@ -1669,7 +1669,7 @@ static bool checkSuperInit(ConstructorDecl *fromCtor, if (!superclassCtor || !superclassCtor->isDesignatedInit() || superclassCtor == ctor) continue; - + // Found another designated initializer in the superclass. Don't add the // super.init() call. return true; @@ -1684,6 +1684,7 @@ static bool checkSuperInit(ConstructorDecl *fromCtor, } } + return false; } diff --git a/lib/Sema/TypeCheckType.cpp b/lib/Sema/TypeCheckType.cpp index 5c7bda88730bf..36ba13de5dd52 100644 --- a/lib/Sema/TypeCheckType.cpp +++ b/lib/Sema/TypeCheckType.cpp @@ -1111,7 +1111,6 @@ static Type diagnoseUnknownType(TypeResolution resolution, // Try ignoring access control. NameLookupOptions relookupOptions = lookupOptions; - relookupOptions |= NameLookupFlags::KnownPrivate; relookupOptions |= NameLookupFlags::IgnoreAccessControl; auto inaccessibleResults = TypeChecker::lookupUnqualifiedType(dc, comp->getNameRef(), @@ -1177,7 +1176,6 @@ static Type diagnoseUnknownType(TypeResolution resolution, // Try ignoring access control. NameLookupOptions relookupOptions = lookupOptions; - relookupOptions |= NameLookupFlags::KnownPrivate; relookupOptions |= NameLookupFlags::IgnoreAccessControl; auto inaccessibleMembers = TypeChecker::lookupMemberType(dc, parentType, comp->getNameRef(), @@ -1212,8 +1210,6 @@ static Type diagnoseUnknownType(TypeResolution resolution, // identifier not found as a member type vs. not found at all. NameLookupOptions memberLookupOptions = lookupOptions; memberLookupOptions |= NameLookupFlags::IgnoreAccessControl; - memberLookupOptions |= NameLookupFlags::KnownPrivate; - memberLookup = TypeChecker::lookupMember(dc, parentType, comp->getNameRef(), memberLookupOptions); diff --git a/lib/Sema/TypeChecker.h b/lib/Sema/TypeChecker.h index a7c0a3fed8316..dbd5f63e86b05 100644 --- a/lib/Sema/TypeChecker.h +++ b/lib/Sema/TypeChecker.h @@ -186,14 +186,12 @@ inline TypeCheckExprOptions operator|(TypeCheckExprFlags flag1, /// Flags that can be used to control name lookup. enum class NameLookupFlags { - /// Whether we know that this lookup is always a private dependency. - KnownPrivate = 0x01, /// Whether to ignore access control for this lookup, allowing inaccessible /// results to be returned. - IgnoreAccessControl = 0x10, + IgnoreAccessControl = 1 << 0, /// Whether to include results from outside the innermost scope that has a /// result. - IncludeOuterResults = 0x20, + IncludeOuterResults = 1 << 1, }; /// A set of options that control name lookup. From 7bee5ffc0c9b2e57f4c9edcd3eb5af5185feeebb Mon Sep 17 00:00:00 2001 From: Robert Widmann Date: Thu, 23 Jul 2020 18:28:26 -0700 Subject: [PATCH 10/31] Remove NLOptions::NL_Known* --- include/swift/AST/LookupKinds.h | 41 ++++----------------------- lib/AST/NameLookup.cpp | 2 -- lib/AST/NameLookupRequests.cpp | 8 ++---- lib/AST/UnqualifiedLookup.cpp | 5 +--- lib/ClangImporter/ImportDecl.cpp | 4 +-- lib/SIL/IR/SILFunctionType.cpp | 3 +- lib/Sema/TypeCheckStmt.cpp | 2 +- lib/Serialization/Deserialization.cpp | 2 +- lib/Serialization/ModuleFile.cpp | 2 +- 9 files changed, 15 insertions(+), 54 deletions(-) diff --git a/include/swift/AST/LookupKinds.h b/include/swift/AST/LookupKinds.h index a33c2dd14880f..67d45bf74c3f5 100644 --- a/include/swift/AST/LookupKinds.h +++ b/include/swift/AST/LookupKinds.h @@ -31,53 +31,24 @@ void simple_display(llvm::raw_ostream &out, NLKind kind); /// Constants used to customize name lookup. enum NLOptions : unsigned { /// Consider declarations within protocols to which the context type conforms. - NL_ProtocolMembers = 0x02, + NL_ProtocolMembers = 1 << 0, /// Remove non-visible declarations from the set of results. - NL_RemoveNonVisible = 0x04, + NL_RemoveNonVisible = 1 << 1, /// Remove overridden declarations from the set of results. - NL_RemoveOverridden = 0x08, + NL_RemoveOverridden = 1 << 2, /// Don't check access when doing lookup into a type. /// /// This option is not valid when performing lookup into a module. - NL_IgnoreAccessControl = 0x10, - - /// This lookup is known to be a non-cascading dependency, i.e. one that does - /// not affect downstream files. - /// - /// \see NL_KnownDependencyMask - NL_KnownNonCascadingDependency = 0x20, - - /// This lookup is known to be a cascading dependency, i.e. one that can - /// affect downstream files. - /// - /// \see NL_KnownDependencyMask - NL_KnownCascadingDependency = 0x40, + NL_IgnoreAccessControl = 1 << 3, /// This lookup should only return type declarations. - NL_OnlyTypes = 0x80, + NL_OnlyTypes = 1 << 4, /// Include synonyms declared with @_implements() - NL_IncludeAttributeImplements = 0x100, - - /// This lookup is known to not add any additional dependencies to the - /// primary source file. - /// - /// \see NL_KnownDependencyMask - NL_KnownNoDependency = - NL_KnownNonCascadingDependency|NL_KnownCascadingDependency, - - /// A mask of all options controlling how a lookup should be recorded as a - /// dependency. - /// - /// This offers three possible options: NL_KnownNonCascadingDependency, - /// NL_KnownCascadingDependency, NL_KnownNoDependency, as well as a default - /// "unspecified" value (0). If the dependency kind is unspecified, the - /// lookup function will attempt to infer whether it is a cascading or - /// non-cascading dependency from the decl context. - NL_KnownDependencyMask = NL_KnownNoDependency, + NL_IncludeAttributeImplements = 1 << 5, /// The default set of options used for qualified name lookup. /// diff --git a/lib/AST/NameLookup.cpp b/lib/AST/NameLookup.cpp index fa64c41e2951e..a7b4c6d922755 100644 --- a/lib/AST/NameLookup.cpp +++ b/lib/AST/NameLookup.cpp @@ -2796,8 +2796,6 @@ void swift::simple_display(llvm::raw_ostream &out, NLOptions options) { FLAG(NL_RemoveNonVisible) FLAG(NL_RemoveOverridden) FLAG(NL_IgnoreAccessControl) - FLAG(NL_KnownNonCascadingDependency) - FLAG(NL_KnownCascadingDependency) FLAG(NL_OnlyTypes) FLAG(NL_IncludeAttributeImplements) #undef FLAG diff --git a/lib/AST/NameLookupRequests.cpp b/lib/AST/NameLookupRequests.cpp index 5d18344d12536..876584693c12a 100644 --- a/lib/AST/NameLookupRequests.cpp +++ b/lib/AST/NameLookupRequests.cpp @@ -376,13 +376,11 @@ evaluator::DependencySource ModuleQualifiedLookupRequest::readDependencySource( // FIXME(Evaluator Incremental Dependencies): This is an artifact of the // current scheme and should be removed. There are very few callers that are // accurately passing the right known dependencies mask. - const bool knownPrivate = - (options & NL_KnownDependencyMask) == NL_KnownNonCascadingDependency; const bool fromPrivateDC = DC->isCascadingContextForLookup(/*functionsAreNonCascading=*/false); auto scope = evaluator::DependencyScope::Cascading; - if (knownPrivate || fromPrivateDC) + if (fromPrivateDC) scope = evaluator::DependencyScope::Private; return { DC->getParentSourceFile(), scope }; } @@ -461,10 +459,8 @@ evaluator::DependencySource QualifiedLookupRequest::readDependencySource( // accurately passing the right known dependencies mask. const bool cascades = dc->isCascadingContextForLookup(/*functionsAreNonCascading*/ false); - const bool knownPrivate = - (opts & NL_KnownDependencyMask) == NL_KnownNonCascadingDependency; auto scope = evaluator::DependencyScope::Cascading; - if (!cascades || knownPrivate) + if (!cascades) scope = evaluator::DependencyScope::Private; return { dyn_cast(dc->getModuleScopeContext()), diff --git a/lib/AST/UnqualifiedLookup.cpp b/lib/AST/UnqualifiedLookup.cpp index 25efab6e1f718..659d98bb63406 100644 --- a/lib/AST/UnqualifiedLookup.cpp +++ b/lib/AST/UnqualifiedLookup.cpp @@ -363,12 +363,9 @@ void UnqualifiedLookupFactory::ResultFinderForTypeContext::findResults( // An optimization: if (selfBounds.empty()) return; - const NLOptions options = - baseNLOptions | (isCascadingUse ? NL_KnownCascadingDependency - : NL_KnownNonCascadingDependency); SmallVector Lookup; - contextForLookup->lookupQualified(selfBounds, Name, options, Lookup); + contextForLookup->lookupQualified(selfBounds, Name, baseNLOptions, Lookup); for (auto Result : Lookup) { results.push_back(LookupResultEntry(whereValueIsMember(Result), Result)); #ifndef NDEBUG diff --git a/lib/ClangImporter/ImportDecl.cpp b/lib/ClangImporter/ImportDecl.cpp index aca61e4d0da04..b9271191a780c 100644 --- a/lib/ClangImporter/ImportDecl.cpp +++ b/lib/ClangImporter/ImportDecl.cpp @@ -6574,7 +6574,7 @@ void SwiftDeclConverter::recordObjCOverride(AbstractFunctionDecl *decl) { // Dig out the Objective-C superclass. SmallVector results; superDecl->lookupQualified(superDecl, DeclNameRef(decl->getName()), - NL_QualifiedDefault | NL_KnownNoDependency, + NL_QualifiedDefault, results); for (auto member : results) { if (member->getKind() != decl->getKind() || @@ -6647,7 +6647,7 @@ void SwiftDeclConverter::recordObjCOverride(SubscriptDecl *subscript) { SmallVector lookup; subscript->getModuleContext()->lookupQualified( superDecl, DeclNameRef(subscript->getName()), - NL_QualifiedDefault | NL_KnownNoDependency, lookup); + NL_QualifiedDefault, lookup); for (auto result : lookup) { auto parentSub = dyn_cast(result); diff --git a/lib/SIL/IR/SILFunctionType.cpp b/lib/SIL/IR/SILFunctionType.cpp index 2fc920638e98f..4963e5ac05d87 100644 --- a/lib/SIL/IR/SILFunctionType.cpp +++ b/lib/SIL/IR/SILFunctionType.cpp @@ -931,8 +931,7 @@ static CanType getKnownType(Optional &cacheSlot, ASTContext &C, // themselves. SmallVector decls; mod->lookupQualified(mod, DeclNameRef(C.getIdentifier(typeName)), - NL_QualifiedDefault | NL_KnownNonCascadingDependency, - decls); + NL_QualifiedDefault, decls); if (decls.size() != 1) return CanType(); diff --git a/lib/Sema/TypeCheckStmt.cpp b/lib/Sema/TypeCheckStmt.cpp index 675b18ea127e7..c9abcefaaa9d4 100644 --- a/lib/Sema/TypeCheckStmt.cpp +++ b/lib/Sema/TypeCheckStmt.cpp @@ -1657,7 +1657,7 @@ static bool checkSuperInit(ConstructorDecl *fromCtor, superclassDecl->synthesizeSemanticMembersIfNeeded( DeclBaseName::createConstructor()); - NLOptions subOptions = NL_QualifiedDefault | NL_KnownNonCascadingDependency; + NLOptions subOptions = NL_QualifiedDefault; SmallVector lookupResults; fromCtor->lookupQualified(superclassDecl, diff --git a/lib/Serialization/Deserialization.cpp b/lib/Serialization/Deserialization.cpp index 97208511b7b57..96789352635da 100644 --- a/lib/Serialization/Deserialization.cpp +++ b/lib/Serialization/Deserialization.cpp @@ -1322,7 +1322,7 @@ ModuleFile::resolveCrossReference(ModuleID MID, uint32_t pathLen) { getIdentifier(privateDiscriminator)); } else { baseModule->lookupQualified(baseModule, DeclNameRef(name), - NL_QualifiedDefault | NL_KnownNoDependency, + NL_QualifiedDefault, values); } filterValues(filterTy, nullptr, nullptr, isType, inProtocolExt, diff --git a/lib/Serialization/ModuleFile.cpp b/lib/Serialization/ModuleFile.cpp index 1b65ccd989203..2c35ce2890e30 100644 --- a/lib/Serialization/ModuleFile.cpp +++ b/lib/Serialization/ModuleFile.cpp @@ -486,7 +486,7 @@ void ModuleFile::getImportDecls(SmallVectorImpl &Results) { SmallVector Decls; TopLevelModule->lookupQualified( TopLevelModule, DeclNameRef(ScopeID), - NL_QualifiedDefault | NL_KnownNoDependency, Decls); + NL_QualifiedDefault, Decls); Optional FoundKind = ImportDecl::findBestImportKind(Decls); assert(FoundKind.hasValue() && "deserialized imports should not be ambiguous"); From 934f994b462986db3929c97b324b3a11c7e31691 Mon Sep 17 00:00:00 2001 From: Robert Widmann Date: Thu, 23 Jul 2020 18:30:59 -0700 Subject: [PATCH 11/31] Remove DeclContext::isCascadingContextForLookup --- include/swift/AST/DeclContext.h | 8 ------ lib/AST/ASTScopeLookup.cpp | 9 ++----- lib/AST/DeclContext.cpp | 46 --------------------------------- lib/AST/NameLookupRequests.cpp | 24 ++--------------- 4 files changed, 4 insertions(+), 83 deletions(-) diff --git a/include/swift/AST/DeclContext.h b/include/swift/AST/DeclContext.h index c41eaa46a8b40..d38f1305a8bce 100644 --- a/include/swift/AST/DeclContext.h +++ b/include/swift/AST/DeclContext.h @@ -508,14 +508,6 @@ class alignas(1 << DeclContextAlignInBits) DeclContext { /// FIXME: do this for Protocols, too someday bool canBeParentOfExtension() const; - /// Returns true if lookups within this context could affect downstream files. - /// - /// \param functionsAreNonCascading If true, functions are considered non- - /// cascading contexts. If false, functions are considered non-cascading only - /// if implicitly or explicitly marked private. When concerned only with a - /// function's body, pass true. - bool isCascadingContextForLookup(bool functionsAreNonCascading) const; - /// Look for the set of declarations with the given name within a type, /// its extensions and, optionally, its supertypes. /// diff --git a/lib/AST/ASTScopeLookup.cpp b/lib/AST/ASTScopeLookup.cpp index f25dd0f2071c0..fc08068c8cd69 100644 --- a/lib/AST/ASTScopeLookup.cpp +++ b/lib/AST/ASTScopeLookup.cpp @@ -525,13 +525,9 @@ NullablePtr ASTScopeImpl::ancestorWithDeclSatisfying( #pragma mark ifUnknownIsCascadingUseAccordingTo -static bool isCascadingUseAccordingTo(const DeclContext *const dc) { - return dc->isCascadingContextForLookup(false); -} - static bool ifUnknownIsCascadingUseAccordingTo(Optional isCascadingUse, const DeclContext *const dc) { - return isCascadingUse.getValueOr(isCascadingUseAccordingTo(dc)); + return isCascadingUse.getValueOr(false); } #pragma mark resolveIsCascadingUseForThisScope @@ -550,8 +546,7 @@ Optional GenericParamScope::resolveIsCascadingUseForThisScope( Optional AbstractFunctionDeclScope::resolveIsCascadingUseForThisScope( Optional isCascadingUse) const { - return decl->isCascadingContextForLookup(false) && - isCascadingUse.getValueOr(true); + return false; } Optional AbstractFunctionBodyScope::resolveIsCascadingUseForThisScope( diff --git a/lib/AST/DeclContext.cpp b/lib/AST/DeclContext.cpp index f1cc0b4722107..973f13a9a7fd0 100644 --- a/lib/AST/DeclContext.cpp +++ b/lib/AST/DeclContext.cpp @@ -445,52 +445,6 @@ bool DeclContext::isInnermostContextGeneric() const { return false; } -bool -DeclContext::isCascadingContextForLookup(bool functionsAreNonCascading) const { - // FIXME: This is explicitly checking for attributes in some cases because - // it can be called before access control is computed. - switch (getContextKind()) { - case DeclContextKind::AbstractClosureExpr: - break; - - case DeclContextKind::SerializedLocal: - llvm_unreachable("should not perform lookups in deserialized contexts"); - - case DeclContextKind::Initializer: - // Default arguments still require a type. - if (isa(this)) - return false; - break; - - case DeclContextKind::TopLevelCodeDecl: - // FIXME: Pattern initializers at top-level scope end up here. - return true; - - case DeclContextKind::AbstractFunctionDecl: - if (functionsAreNonCascading) - return false; - break; - - case DeclContextKind::SubscriptDecl: - break; - - case DeclContextKind::EnumElementDecl: - break; - - case DeclContextKind::Module: - case DeclContextKind::FileUnit: - return true; - - case DeclContextKind::GenericTypeDecl: - break; - - case DeclContextKind::ExtensionDecl: - return true; - } - - return getParent()->isCascadingContextForLookup(true); -} - unsigned DeclContext::getSyntacticDepth() const { // Module scope == depth 0. if (isModuleScopeContext()) diff --git a/lib/AST/NameLookupRequests.cpp b/lib/AST/NameLookupRequests.cpp index 876584693c12a..fde7432ea3c6c 100644 --- a/lib/AST/NameLookupRequests.cpp +++ b/lib/AST/NameLookupRequests.cpp @@ -371,18 +371,7 @@ swift::extractNearestSourceLoc(const LookupConformanceDescriptor &desc) { evaluator::DependencySource ModuleQualifiedLookupRequest::readDependencySource( const evaluator::DependencyRecorder &eval) const { auto *DC = std::get<0>(getStorage()); - auto options = std::get<3>(getStorage()); - - // FIXME(Evaluator Incremental Dependencies): This is an artifact of the - // current scheme and should be removed. There are very few callers that are - // accurately passing the right known dependencies mask. - const bool fromPrivateDC = - DC->isCascadingContextForLookup(/*functionsAreNonCascading=*/false); - - auto scope = evaluator::DependencyScope::Cascading; - if (fromPrivateDC) - scope = evaluator::DependencyScope::Private; - return { DC->getParentSourceFile(), scope }; + return { DC->getParentSourceFile(), evaluator::DependencyScope::Private }; } void ModuleQualifiedLookupRequest::writeDependencySink( @@ -453,18 +442,9 @@ void UnqualifiedLookupRequest::writeDependencySink( evaluator::DependencySource QualifiedLookupRequest::readDependencySource( const evaluator::DependencyRecorder &) const { auto *dc = std::get<0>(getStorage()); - auto opts = std::get<3>(getStorage()); - // FIXME(Evaluator Incremental Dependencies): This is an artifact of the - // current scheme and should be removed. There are very few callers that are - // accurately passing the right known dependencies mask. - const bool cascades = - dc->isCascadingContextForLookup(/*functionsAreNonCascading*/ false); - auto scope = evaluator::DependencyScope::Cascading; - if (!cascades) - scope = evaluator::DependencyScope::Private; return { dyn_cast(dc->getModuleScopeContext()), - scope + evaluator::DependencyScope::Private }; } From 3dd74c1c074d56a1f1b34122767900e0a8f72f63 Mon Sep 17 00:00:00 2001 From: Robert Widmann Date: Thu, 23 Jul 2020 18:32:18 -0700 Subject: [PATCH 12/31] Remove evaluator::getScopeForAccessLevel --- include/swift/AST/EvaluatorDependencies.h | 32 ----------------------- lib/AST/NameLookupRequests.cpp | 2 +- lib/AST/TypeCheckRequests.cpp | 6 ++--- 3 files changed, 4 insertions(+), 36 deletions(-) diff --git a/include/swift/AST/EvaluatorDependencies.h b/include/swift/AST/EvaluatorDependencies.h index 7808e86caa9cc..9048540a64480 100644 --- a/include/swift/AST/EvaluatorDependencies.h +++ b/include/swift/AST/EvaluatorDependencies.h @@ -66,38 +66,6 @@ enum class DependencyScope : bool { Cascading = true, }; -/// Returns a \c DependencyScope appropriate for the given (formal) access level. -/// -/// :warning: This function exists to bridge the old manual reference -/// dependencies code to the new evaluator-based reference dependencies code. -/// The manual code often made private/cascading scope judgements based on the -/// access level of a declaration. While this makes some sense intuitively, it -/// does not necessarily capture an accurate picture of where real incremental -/// dependencies lie. For example, references to formally private types can -/// "escape" to contexts that have no reference to the private name if, say, -/// the layout of that private type is taken into consideration by -/// SILGen or IRGen in a separate file that references the declaration -/// transitively. However, due to the density of the current dependency -/// graph, redundancy in registered dependency edges, and the liberal use of -/// cascading edges, we may be saved from the worst consequences of this -/// modelling choice. -/// -/// The use of access-levels for dependency decisions is an anti-pattern that -/// should be revisited once finer-grained dependencies are explored more -/// thoroughly. -inline DependencyScope getScopeForAccessLevel(AccessLevel l) { - switch (l) { - case AccessLevel::Private: - case AccessLevel::FilePrivate: - return DependencyScope::Private; - case AccessLevel::Internal: - case AccessLevel::Public: - case AccessLevel::Open: - return DependencyScope::Cascading; - } - llvm_unreachable("invalid access level kind"); -} - // A \c DependencySource is currently defined to be a parent source file and // an associated dependency scope. // diff --git a/lib/AST/NameLookupRequests.cpp b/lib/AST/NameLookupRequests.cpp index fde7432ea3c6c..8521ed8655891 100644 --- a/lib/AST/NameLookupRequests.cpp +++ b/lib/AST/NameLookupRequests.cpp @@ -99,7 +99,7 @@ evaluator::DependencySource InheritedProtocolsRequest::readDependencySource( return { nullptr, e.getActiveSourceScope() }; return { e.getActiveDependencySourceOrNull(), - evaluator::getScopeForAccessLevel(PD->getFormalAccess()) + DependencyScope::Private, }; } diff --git a/lib/AST/TypeCheckRequests.cpp b/lib/AST/TypeCheckRequests.cpp index a631e4fc58365..e80b4b8c9c470 100644 --- a/lib/AST/TypeCheckRequests.cpp +++ b/lib/AST/TypeCheckRequests.cpp @@ -162,7 +162,7 @@ evaluator::DependencySource SuperclassTypeRequest::readDependencySource( const auto access = std::get<0>(getStorage())->getFormalAccess(); return { e.getActiveDependencySourceOrNull(), - evaluator::getScopeForAccessLevel(access) + evaluator::DependencyScope::Private, }; } @@ -1289,7 +1289,7 @@ evaluator::DependencySource CheckRedeclarationRequest::readDependencySource( auto *currentDC = current->getDeclContext(); return { currentDC->getParentSourceFile(), - evaluator::getScopeForAccessLevel(current->getFormalAccess()) + evaluator::DependencyScope::Private, }; } @@ -1329,7 +1329,7 @@ LookupAllConformancesInContextRequest::readDependencySource( } return {collector.getActiveDependencySourceOrNull(), - evaluator::getScopeForAccessLevel(nominal->getFormalAccess())}; + evaluator::DependencyScope::Private}; } void LookupAllConformancesInContextRequest::writeDependencySink( From 7fb448071c9e58e5e85c06481632d5937083a67f Mon Sep 17 00:00:00 2001 From: Robert Widmann Date: Thu, 23 Jul 2020 18:49:54 -0700 Subject: [PATCH 13/31] Remove DependencyScope --- include/swift/AST/EvaluatorDependencies.h | 60 +++-------------------- lib/AST/ASTScopeLookup.cpp | 2 +- lib/AST/Evaluator.cpp | 11 ++--- lib/AST/NameLookupRequests.cpp | 40 +++++---------- lib/AST/TypeCheckRequests.cpp | 34 +++---------- lib/IRGen/IRGenRequests.cpp | 4 +- lib/Parse/ParseRequests.cpp | 4 +- lib/SILGen/SILGenRequests.cpp | 5 +- 8 files changed, 37 insertions(+), 123 deletions(-) diff --git a/include/swift/AST/EvaluatorDependencies.h b/include/swift/AST/EvaluatorDependencies.h index 9048540a64480..d7731bd34f301 100644 --- a/include/swift/AST/EvaluatorDependencies.h +++ b/include/swift/AST/EvaluatorDependencies.h @@ -21,6 +21,7 @@ #include "swift/AST/AnyRequest.h" #include "swift/AST/AttrKind.h" #include "swift/AST/SourceFile.h" +#include "swift/Basic/NullablePtr.h" #include "llvm/ADT/PointerIntPair.h" namespace swift { @@ -32,48 +33,13 @@ namespace detail { template using void_t = void; } // namespace detail -/// The "scope" of a dependency edge tracked by the evaluator. -/// -/// Dependency scopes come in two flavors: cascading and private. A private -/// edge captures dependencies discovered in contexts that are not visible to -/// to other files. For example, a conformance to a private protocol, or the use -/// of any names inside of a function body. A cascading edge, by contrast, -/// captures dependencies discovered in the remaining visible contexts. These -/// are types with at least \c internal visibility, names defined or used -/// outside of function bodies with at least \c internal visibility, etc. A -/// dependency that has cascading scope is so-named because upon traversing the -/// edge, a reader such as the driver should continue transitively evaluating -/// further dependency edges. -/// -/// A cascading edge is always conservatively correct to produce, but it comes -/// at the cost of increased resources spent (and possibly even wasted!) during -/// incremental compilation. A private edge, by contrast, is more efficient for -/// incremental compilation but it is harder to safely use. -/// -/// To ensure that these edges are registered consistently with the correct -/// scopes, requests that act as the source of dependency edges are required -/// to specify a \c DependencyScope under which all evaluated sub-requests will -/// register their dependency edges. In this way, \c DependencyScope values -/// form a stack-like structure and are pushed and popped by the evaluator -/// during the course of request evaluation. -/// -/// When determining the kind of scope a request should use, always err on the -/// side of a cascading scope unless there is absolute proof any discovered -/// dependencies will be private. Inner requests may also defensively choose to -/// flip the dependency scope from private to cascading in the name of safety. -enum class DependencyScope : bool { - Private = false, - Cascading = true, -}; - -// A \c DependencySource is currently defined to be a parent source file and -// an associated dependency scope. +// A \c DependencySource is currently defined to be a parent source file. // // The \c SourceFile instance is an artifact of the current dependency system, // and should be scrapped if possible. It currently encodes the idea that // edges in the incremental dependency graph invalidate entire files instead // of individual contexts. -using DependencySource = llvm::PointerIntPair; +using DependencySource = swift::NullablePtr; struct DependencyRecorder; @@ -306,16 +272,6 @@ struct DependencyRecorder { ReferenceEnumerator f) const ; public: - /// Returns the scope of the current active scope. - /// - /// If there is no active scope, the result always cascades. - evaluator::DependencyScope getActiveSourceScope() const { - if (dependencySources.empty()) { - return evaluator::DependencyScope::Cascading; - } - return dependencySources.back().getInt(); - } - /// Returns the active dependency's source file, or \c nullptr if no /// dependency source is active. /// @@ -323,14 +279,14 @@ struct DependencyRecorder { /// dependency sink is seeking to filter out names based on the files they /// come from. Existing callers are being migrated to more reasonable ways /// of judging the relevancy of a dependency. - SourceFile *getActiveDependencySourceOrNull() const { + evaluator::DependencySource getActiveDependencySourceOrNull() const { if (dependencySources.empty()) return nullptr; switch (mode) { case Mode::LegacyCascadingDependencies: - return dependencySources.back().getPointer(); + return dependencySources.back(); case Mode::DirectDependencies: - return dependencySources.front().getPointer(); + return dependencySources.front(); } } @@ -350,7 +306,7 @@ struct DependencyRecorder { auto Source = Req.readDependencySource(coll); // If there is no source to introduce, bail. This can occur if // a request originates in the context of a module. - if (!Source.getPointer()) { + if (Source.isNull()) { return; } coll.dependencySources.emplace_back(Source); @@ -370,7 +326,7 @@ struct DependencyRecorder { bool isActiveSourceCascading() const { switch (mode) { case Mode::LegacyCascadingDependencies: - return getActiveSourceScope() == evaluator::DependencyScope::Cascading; + return false; case Mode::DirectDependencies: return false; } diff --git a/lib/AST/ASTScopeLookup.cpp b/lib/AST/ASTScopeLookup.cpp index fc08068c8cd69..332207be6814b 100644 --- a/lib/AST/ASTScopeLookup.cpp +++ b/lib/AST/ASTScopeLookup.cpp @@ -585,7 +585,7 @@ Optional PatternEntryInitializerScope::resolveIsCascadingUseForThisScope( // initializing stored property of a type auto *const patternDeclContext = decl->getDeclContext(); if (patternDeclContext->isTypeContext()) - return isCascadingUseAccordingTo(PBI->getParent()); + return false; // initializing global or local if (PBI) diff --git a/lib/AST/Evaluator.cpp b/lib/AST/Evaluator.cpp index 9977642e66cbb..12f2783d5cb1f 100644 --- a/lib/AST/Evaluator.cpp +++ b/lib/AST/Evaluator.cpp @@ -381,8 +381,7 @@ void Evaluator::dumpDependenciesGraphviz() const { void evaluator::DependencyRecorder::realize( const DependencyCollector::Reference &ref) { - auto *source = getActiveDependencySourceOrNull(); - assert(source && "cannot realize dependency without associated file!"); + auto *source = getActiveDependencySourceOrNull().get(); if (!source->isPrimary()) { return; } @@ -429,8 +428,8 @@ void evaluator::DependencyRecorder::record( const llvm::SetVector &stack, llvm::function_ref rec) { assert(!isRecording && "Probably not a good idea to allow nested recording"); - auto *source = getActiveDependencySourceOrNull(); - if (!source || !source->isPrimary()) { + auto source = getActiveDependencySourceOrNull(); + if (source.isNull() || !source.get()->isPrimary()) { return; } @@ -450,12 +449,12 @@ void evaluator::DependencyRecorder::replay( const swift::ActiveRequest &req) { assert(!isRecording && "Probably not a good idea to allow nested recording"); - auto *source = getActiveDependencySourceOrNull(); + auto source = getActiveDependencySourceOrNull(); if (mode == Mode::LegacyCascadingDependencies) { return; } - if (!source || !source->isPrimary()) { + if (source.isNull() || !source.get()->isPrimary()) { return; } diff --git a/lib/AST/NameLookupRequests.cpp b/lib/AST/NameLookupRequests.cpp index 8521ed8655891..428a5adac3181 100644 --- a/lib/AST/NameLookupRequests.cpp +++ b/lib/AST/NameLookupRequests.cpp @@ -96,11 +96,8 @@ evaluator::DependencySource InheritedProtocolsRequest::readDependencySource( // type conforms to Hashable which itself looks up Equatable during // qualified lookup. if (!PD->getParentSourceFile()) - return { nullptr, e.getActiveSourceScope() }; - return { - e.getActiveDependencySourceOrNull(), - DependencyScope::Private, - }; + return nullptr; + return e.getActiveDependencySourceOrNull(); } void InheritedProtocolsRequest::writeDependencySink( @@ -184,7 +181,7 @@ void ExtendedNominalRequest::writeDependencySink( auto *SF = std::get<0>(getStorage())->getParentSourceFile(); if (!SF) return; - if (SF != tracker.getRecorder().getActiveDependencySourceOrNull()) + if (SF != tracker.getRecorder().getActiveDependencySourceOrNull().getPtrOrNull()) return; tracker.addPotentialMember(value); } @@ -209,14 +206,7 @@ void GetDestructorRequest::cacheResult(DestructorDecl *value) const { evaluator::DependencySource GetDestructorRequest::readDependencySource( const evaluator::DependencyRecorder &eval) const { - // Looking up the deinitializer currently always occurs in a private - // scope because it is impossible to reference 'deinit' in user code, and a - // valid 'deinit' declaration cannot occur outside of the - // definition of a type. - return { - eval.getActiveDependencySourceOrNull(), - evaluator::DependencyScope::Private - }; + return eval.getActiveDependencySourceOrNull(); } //----------------------------------------------------------------------------// @@ -371,7 +361,7 @@ swift::extractNearestSourceLoc(const LookupConformanceDescriptor &desc) { evaluator::DependencySource ModuleQualifiedLookupRequest::readDependencySource( const evaluator::DependencyRecorder &eval) const { auto *DC = std::get<0>(getStorage()); - return { DC->getParentSourceFile(), evaluator::DependencyScope::Private }; + return DC->getParentSourceFile(); } void ModuleQualifiedLookupRequest::writeDependencySink( @@ -403,13 +393,13 @@ void LookupConformanceInModuleRequest::writeDependencySink( if (!Adoptee) return; - auto *source = reqTracker.getRecorder().getActiveDependencySourceOrNull(); - if (!source) + auto source = reqTracker.getRecorder().getActiveDependencySourceOrNull(); + if (source.isNull()) return; // Decline to record conformances defined outside of the active module. auto *conformance = lookupResult.getConcrete(); - if (source->getParentModule() != + if (source.get()->getParentModule() != conformance->getDeclContext()->getParentModule()) return; reqTracker.addPotentialMember(Adoptee); @@ -421,12 +411,7 @@ void LookupConformanceInModuleRequest::writeDependencySink( evaluator::DependencySource UnqualifiedLookupRequest::readDependencySource( const evaluator::DependencyRecorder &) const { - auto &desc = std::get<0>(getStorage()); - // FIXME(Evaluator Incremental Dependencies): This maintains compatibility - // with the existing scheme, but the existing scheme is totally ad-hoc. We - // should remove this flag and ensure that non-cascading qualified lookups - // occur in the right contexts instead. - return {desc.DC->getParentSourceFile(), evaluator::DependencyScope::Cascading}; + return std::get<0>(getStorage()).DC->getParentSourceFile(); } void UnqualifiedLookupRequest::writeDependencySink( @@ -441,11 +426,8 @@ void UnqualifiedLookupRequest::writeDependencySink( evaluator::DependencySource QualifiedLookupRequest::readDependencySource( const evaluator::DependencyRecorder &) const { - auto *dc = std::get<0>(getStorage()); - return { - dyn_cast(dc->getModuleScopeContext()), - evaluator::DependencyScope::Private - }; + auto *DC = std::get<0>(getStorage())->getModuleScopeContext(); + return dyn_cast(DC); } // Define request evaluation functions for each of the name lookup requests. diff --git a/lib/AST/TypeCheckRequests.cpp b/lib/AST/TypeCheckRequests.cpp index e80b4b8c9c470..a2f4efccb0d8c 100644 --- a/lib/AST/TypeCheckRequests.cpp +++ b/lib/AST/TypeCheckRequests.cpp @@ -159,11 +159,7 @@ void SuperclassTypeRequest::cacheResult(Type value) const { evaluator::DependencySource SuperclassTypeRequest::readDependencySource( const evaluator::DependencyRecorder &e) const { - const auto access = std::get<0>(getStorage())->getFormalAccess(); - return { - e.getActiveDependencySourceOrNull(), - evaluator::DependencyScope::Private, - }; + return e.getActiveDependencySourceOrNull(); } void SuperclassTypeRequest::writeDependencySink( @@ -1285,12 +1281,8 @@ void CheckRedeclarationRequest::cacheResult(evaluator::SideEffect) const { evaluator::DependencySource CheckRedeclarationRequest::readDependencySource( const evaluator::DependencyRecorder &eval) const { - auto *current = std::get<0>(getStorage()); - auto *currentDC = current->getDeclContext(); - return { - currentDC->getParentSourceFile(), - evaluator::DependencyScope::Private, - }; + auto *currentDC = std::get<0>(getStorage())->getDeclContext(); + return currentDC->getParentSourceFile(); } void CheckRedeclarationRequest::writeDependencySink( @@ -1320,16 +1312,7 @@ void CheckRedeclarationRequest::writeDependencySink( evaluator::DependencySource LookupAllConformancesInContextRequest::readDependencySource( const evaluator::DependencyRecorder &collector) const { - const auto *nominal = std::get<0>(getStorage()) - ->getAsGenericContext() - ->getSelfNominalTypeDecl(); - if (!nominal) { - return {collector.getActiveDependencySourceOrNull(), - evaluator::DependencyScope::Cascading}; - } - - return {collector.getActiveDependencySourceOrNull(), - evaluator::DependencyScope::Private}; + return collector.getActiveDependencySourceOrNull(); } void LookupAllConformancesInContextRequest::writeDependencySink( @@ -1369,7 +1352,7 @@ void ResolveTypeEraserTypeRequest::cacheResult(Type value) const { evaluator::DependencySource TypeCheckSourceFileRequest::readDependencySource( const evaluator::DependencyRecorder &e) const { - return {std::get<0>(getStorage()), evaluator::DependencyScope::Cascading}; + return std::get<0>(getStorage()); } Optional @@ -1429,12 +1412,7 @@ void TypeCheckFunctionBodyRequest::cacheResult(BraceStmt *body) const { evaluator::DependencySource TypeCheckFunctionBodyRequest::readDependencySource( const evaluator::DependencyRecorder &e) const { - // We're going under a function body scope, unconditionally flip the scope - // to private. - return { - std::get<0>(getStorage())->getParentSourceFile(), - evaluator::DependencyScope::Private - }; + return std::get<0>(getStorage())->getParentSourceFile(); } //----------------------------------------------------------------------------// diff --git a/lib/IRGen/IRGenRequests.cpp b/lib/IRGen/IRGenRequests.cpp index 81838dafcdae6..0998f56f915e5 100644 --- a/lib/IRGen/IRGenRequests.cpp +++ b/lib/IRGen/IRGenRequests.cpp @@ -102,11 +102,11 @@ evaluator::DependencySource IRGenRequest::readDependencySource( // We don't track dependencies in whole-module mode. if (auto *mod = desc.Ctx.dyn_cast()) { - return {nullptr, e.getActiveSourceScope()}; + return nullptr; } auto *primary = desc.Ctx.get(); - return {dyn_cast(primary), evaluator::DependencyScope::Cascading}; + return dyn_cast(primary); } // Define request evaluation functions for each of the IRGen requests. diff --git a/lib/Parse/ParseRequests.cpp b/lib/Parse/ParseRequests.cpp index 99a4b3a3c5d1f..b4dc597c10310 100644 --- a/lib/Parse/ParseRequests.cpp +++ b/lib/Parse/ParseRequests.cpp @@ -186,7 +186,7 @@ SourceFileParsingResult ParseSourceFileRequest::evaluate(Evaluator &evaluator, evaluator::DependencySource ParseSourceFileRequest::readDependencySource( const evaluator::DependencyRecorder &e) const { - return {std::get<0>(getStorage()), evaluator::DependencyScope::Cascading}; + return std::get<0>(getStorage()); } Optional @@ -229,7 +229,7 @@ void swift::simple_display(llvm::raw_ostream &out, evaluator::DependencySource CodeCompletionSecondPassRequest::readDependencySource( const evaluator::DependencyRecorder &e) const { - return {std::get<0>(getStorage()), e.getActiveSourceScope()}; + return std::get<0>(getStorage()); } // Define request evaluation functions for each of the type checker requests. diff --git a/lib/SILGen/SILGenRequests.cpp b/lib/SILGen/SILGenRequests.cpp index 6b2fc5f99fb10..61663e1ddb68b 100644 --- a/lib/SILGen/SILGenRequests.cpp +++ b/lib/SILGen/SILGenRequests.cpp @@ -52,12 +52,11 @@ evaluator::DependencySource ASTLoweringRequest::readDependencySource( // We don't track dependencies in whole-module mode. if (auto *mod = desc.context.dyn_cast()) { - return {nullptr, e.getActiveSourceScope()}; + return nullptr; } // If we have a single source file, it's the source of dependencies. - auto *unit = desc.context.get(); - return {dyn_cast(unit), evaluator::DependencyScope::Cascading}; + return dyn_cast(desc.context.get()); } ArrayRef ASTLoweringDescriptor::getFilesToEmit() const { From 9e7964f4a58d69e8db1d5bcec7aaac308fe377df Mon Sep 17 00:00:00 2001 From: Robert Widmann Date: Thu, 23 Jul 2020 18:53:02 -0700 Subject: [PATCH 14/31] Remove Reference::cascades --- include/swift/AST/EvaluatorDependencies.h | 41 ++++++------------- lib/AST/Evaluator.cpp | 22 ++++------ lib/AST/FrontendSourceFileDepGraphFactory.cpp | 2 +- lib/Frontend/DependencyVerifier.cpp | 2 +- 4 files changed, 22 insertions(+), 45 deletions(-) diff --git a/include/swift/AST/EvaluatorDependencies.h b/include/swift/AST/EvaluatorDependencies.h index d7731bd34f301..be38dbbc5aebe 100644 --- a/include/swift/AST/EvaluatorDependencies.h +++ b/include/swift/AST/EvaluatorDependencies.h @@ -67,41 +67,38 @@ struct DependencyCollector { NominalTypeDecl *subject; DeclBaseName name; - bool cascades; private: - Reference(Kind kind, NominalTypeDecl *subject, DeclBaseName name, - bool cascades) - : kind(kind), subject(subject), name(name), cascades(cascades) {} + Reference(Kind kind, NominalTypeDecl *subject, DeclBaseName name) + : kind(kind), subject(subject), name(name) {} public: static Reference empty() { return {Kind::Empty, llvm::DenseMapInfo::getEmptyKey(), - llvm::DenseMapInfo::getEmptyKey(), false}; + llvm::DenseMapInfo::getEmptyKey()}; } static Reference tombstone() { return {Kind::Tombstone, llvm::DenseMapInfo::getTombstoneKey(), - llvm::DenseMapInfo::getTombstoneKey(), false}; + llvm::DenseMapInfo::getTombstoneKey()}; } public: - static Reference usedMember(NominalTypeDecl *subject, DeclBaseName name, - bool cascades) { - return {Kind::UsedMember, subject, name, cascades}; + static Reference usedMember(NominalTypeDecl *subject, DeclBaseName name) { + return {Kind::UsedMember, subject, name}; } - static Reference potentialMember(NominalTypeDecl *subject, bool cascades) { - return {Kind::PotentialMember, subject, DeclBaseName(), cascades}; + static Reference potentialMember(NominalTypeDecl *subject) { + return {Kind::PotentialMember, subject, DeclBaseName()}; } - static Reference topLevel(DeclBaseName name, bool cascades) { - return {Kind::TopLevel, nullptr, name, cascades}; + static Reference topLevel(DeclBaseName name) { + return {Kind::TopLevel, nullptr, name}; } - static Reference dynamic(DeclBaseName name, bool cascades) { - return {Kind::Dynamic, nullptr, name, cascades}; + static Reference dynamic(DeclBaseName name) { + return {Kind::Dynamic, nullptr, name}; } public: @@ -318,20 +315,6 @@ struct DependencyRecorder { Coll.get()->dependencySources.pop_back(); } }; - -private: - /// Returns \c true if the scope of the current active source cascades. - /// - /// If there is no active scope, the result always cascades. - bool isActiveSourceCascading() const { - switch (mode) { - case Mode::LegacyCascadingDependencies: - return false; - case Mode::DirectDependencies: - return false; - } - llvm_unreachable("invalid mode"); - } }; } // end namespace evaluator diff --git a/lib/AST/Evaluator.cpp b/lib/AST/Evaluator.cpp index 12f2783d5cb1f..631342937dcb5 100644 --- a/lib/AST/Evaluator.cpp +++ b/lib/AST/Evaluator.cpp @@ -391,37 +391,31 @@ void evaluator::DependencyRecorder::realize( void evaluator::DependencyCollector::addUsedMember(NominalTypeDecl *subject, DeclBaseName name) { if (parent.mode == DependencyRecorder::Mode::DirectDependencies) { - scratch.insert( - Reference::usedMember(subject, name, parent.isActiveSourceCascading())); + scratch.insert(Reference::usedMember(subject, name)); } - return parent.realize( - Reference::usedMember(subject, name, parent.isActiveSourceCascading())); + return parent.realize(Reference::usedMember(subject, name)); } void evaluator::DependencyCollector::addPotentialMember( NominalTypeDecl *subject) { if (parent.mode == DependencyRecorder::Mode::DirectDependencies) { - scratch.insert( - Reference::potentialMember(subject, parent.isActiveSourceCascading())); + scratch.insert(Reference::potentialMember(subject)); } - return parent.realize( - Reference::potentialMember(subject, parent.isActiveSourceCascading())); + return parent.realize(Reference::potentialMember(subject)); } void evaluator::DependencyCollector::addTopLevelName(DeclBaseName name) { if (parent.mode == DependencyRecorder::Mode::DirectDependencies) { - scratch.insert(Reference::topLevel(name, parent.isActiveSourceCascading())); + scratch.insert(Reference::topLevel(name)); } - return parent.realize( - Reference::topLevel(name, parent.isActiveSourceCascading())); + return parent.realize(Reference::topLevel(name)); } void evaluator::DependencyCollector::addDynamicLookupName(DeclBaseName name) { if (parent.mode == DependencyRecorder::Mode::DirectDependencies) { - scratch.insert(Reference::dynamic(name, parent.isActiveSourceCascading())); + scratch.insert(Reference::dynamic(name)); } - return parent.realize( - Reference::dynamic(name, parent.isActiveSourceCascading())); + return parent.realize(Reference::dynamic(name)); } void evaluator::DependencyRecorder::record( diff --git a/lib/AST/FrontendSourceFileDepGraphFactory.cpp b/lib/AST/FrontendSourceFileDepGraphFactory.cpp index 3f690852197f5..993a750f2d341 100644 --- a/lib/AST/FrontendSourceFileDepGraphFactory.cpp +++ b/lib/AST/FrontendSourceFileDepGraphFactory.cpp @@ -580,7 +580,7 @@ class UsedDeclEnumerator { auto &Ctx = SF->getASTContext(); std::unordered_set holdersOfCascadingMembers; Ctx.evaluator.enumerateReferencesInFile(SF, [&](const auto &ref) { - const auto cascades = ref.cascades; + const auto cascades = false; std::string name = ref.name.userFacingName().str(); const auto *nominal = ref.subject; using Kind = evaluator::DependencyCollector::Reference::Kind; diff --git a/lib/Frontend/DependencyVerifier.cpp b/lib/Frontend/DependencyVerifier.cpp index 2e468f83de842..6142c3c1ec434 100644 --- a/lib/Frontend/DependencyVerifier.cpp +++ b/lib/Frontend/DependencyVerifier.cpp @@ -429,7 +429,7 @@ bool DependencyVerifier::constructObligations(const SourceFile *SF, auto &Ctx = SF->getASTContext(); Ctx.evaluator.enumerateReferencesInFile( SF, [&](const auto &reference) { - const auto isCascadingUse = reference.cascades; + const auto isCascadingUse = false; using NodeKind = evaluator::DependencyCollector::Reference::Kind; switch (reference.kind) { case NodeKind::Empty: From fe5dacb280198bae4425acb1e808adf21bdbd569 Mon Sep 17 00:00:00 2001 From: Robert Widmann Date: Thu, 23 Jul 2020 18:56:41 -0700 Subject: [PATCH 15/31] Remove unnecessary dependency sources --- include/swift/AST/NameLookupRequests.h | 28 ++++-------------- include/swift/AST/TypeCheckRequests.h | 10 ++----- lib/AST/NameLookupRequests.cpp | 40 +------------------------- lib/AST/TypeCheckRequests.cpp | 11 ------- 4 files changed, 8 insertions(+), 81 deletions(-) diff --git a/include/swift/AST/NameLookupRequests.h b/include/swift/AST/NameLookupRequests.h index b1433f82767dc..e02441cdac004 100644 --- a/include/swift/AST/NameLookupRequests.h +++ b/include/swift/AST/NameLookupRequests.h @@ -169,8 +169,7 @@ class SuperclassDeclRequest : class InheritedProtocolsRequest : public SimpleRequest< InheritedProtocolsRequest, ArrayRef(ProtocolDecl *), - RequestFlags::SeparatelyCached | RequestFlags::DependencySink | - RequestFlags::DependencySource> { + RequestFlags::SeparatelyCached | RequestFlags::DependencySink> { public: using SimpleRequest::SimpleRequest; @@ -189,8 +188,6 @@ class InheritedProtocolsRequest public: // Incremental dependencies - evaluator::DependencySource - readDependencySource(const evaluator::DependencyRecorder &e) const; void writeDependencySink(evaluator::DependencyCollector &tracker, ArrayRef result) const; }; @@ -310,8 +307,7 @@ class CustomAttrNominalRequest : /// Finds or synthesizes a destructor for the given class. class GetDestructorRequest : public SimpleRequest { + RequestFlags::SeparatelyCached> { public: using SimpleRequest::SimpleRequest; @@ -327,11 +323,6 @@ class GetDestructorRequest bool isCached() const { return true; } Optional getCachedResult() const; void cacheResult(DestructorDecl *value) const; - -public: - // Incremental dependencies. - evaluator::DependencySource - readDependencySource(const evaluator::DependencyRecorder &) const; }; class GenericParamListRequest : @@ -420,7 +411,7 @@ SourceLoc extractNearestSourceLoc(const UnqualifiedLookupDescriptor &desc); class UnqualifiedLookupRequest : public SimpleRequest { public: using SimpleRequest::SimpleRequest; @@ -434,8 +425,6 @@ class UnqualifiedLookupRequest public: // Incremental dependencies - evaluator::DependencySource - readDependencySource(const evaluator::DependencyRecorder &) const; void writeDependencySink(evaluator::DependencyCollector &tracker, LookupResult res) const; }; @@ -495,7 +484,7 @@ class ModuleQualifiedLookupRequest QualifiedLookupResult(const DeclContext *, ModuleDecl *, DeclNameRef, NLOptions), - RequestFlags::Uncached | RequestFlags::DependencySource | + RequestFlags::Uncached | RequestFlags::DependencySink> { public: using SimpleRequest::SimpleRequest; @@ -511,8 +500,6 @@ class ModuleQualifiedLookupRequest public: // Incremental dependencies - evaluator::DependencySource - readDependencySource(const evaluator::DependencyRecorder &) const; void writeDependencySink(evaluator::DependencyCollector &tracker, QualifiedLookupResult lookupResult) const; }; @@ -522,7 +509,7 @@ class QualifiedLookupRequest QualifiedLookupResult(const DeclContext *, SmallVector, DeclNameRef, NLOptions), - RequestFlags::Uncached | RequestFlags::DependencySource> { + RequestFlags::Uncached> { public: using SimpleRequest::SimpleRequest; @@ -535,11 +522,6 @@ class QualifiedLookupRequest SmallVector decls, DeclNameRef name, NLOptions opts) const; - -public: - // Incremental dependencies. - evaluator::DependencySource - readDependencySource(const evaluator::DependencyRecorder &) const; }; /// The input type for a direct lookup request. diff --git a/include/swift/AST/TypeCheckRequests.h b/include/swift/AST/TypeCheckRequests.h index 543f2d938be99..2eb62c854c85b 100644 --- a/include/swift/AST/TypeCheckRequests.h +++ b/include/swift/AST/TypeCheckRequests.h @@ -95,8 +95,7 @@ class InheritedTypeRequest class SuperclassTypeRequest : public SimpleRequest< SuperclassTypeRequest, Type(NominalTypeDecl *, TypeResolutionStage), - RequestFlags::SeparatelyCached | RequestFlags::DependencySink | - RequestFlags::DependencySource> { + RequestFlags::SeparatelyCached | RequestFlags::DependencySink> { public: using SimpleRequest::SimpleRequest; @@ -120,8 +119,6 @@ class SuperclassTypeRequest public: // Incremental dependencies - evaluator::DependencySource - readDependencySource(const evaluator::DependencyRecorder &e) const; void writeDependencySink(evaluator::DependencyCollector &tracker, Type t) const; }; @@ -2369,8 +2366,7 @@ class LookupAllConformancesInContextRequest ProtocolConformanceLookupResult( const IterableDeclContext *), RequestFlags::Cached | - RequestFlags::DependencySink | - RequestFlags::DependencySource> { + RequestFlags::DependencySink> { public: using SimpleRequest::SimpleRequest; @@ -2385,8 +2381,6 @@ class LookupAllConformancesInContextRequest bool isCached() const { return true; } // Incremental dependencies - evaluator::DependencySource - readDependencySource(const evaluator::DependencyRecorder &eval) const; void writeDependencySink(evaluator::DependencyCollector &tracker, ProtocolConformanceLookupResult r) const; }; diff --git a/lib/AST/NameLookupRequests.cpp b/lib/AST/NameLookupRequests.cpp index 428a5adac3181..7f370ad229fd1 100644 --- a/lib/AST/NameLookupRequests.cpp +++ b/lib/AST/NameLookupRequests.cpp @@ -88,18 +88,6 @@ void InheritedProtocolsRequest::cacheResult(ArrayRef PDs) const proto->setInheritedProtocolsValid(); } -evaluator::DependencySource InheritedProtocolsRequest::readDependencySource( - const evaluator::DependencyRecorder &e) const { - auto *PD = std::get<0>(getStorage()); - // Ignore context changes for protocols outside our module. This - // prevents transitive cascading edges when e.g. our private - // type conforms to Hashable which itself looks up Equatable during - // qualified lookup. - if (!PD->getParentSourceFile()) - return nullptr; - return e.getActiveDependencySourceOrNull(); -} - void InheritedProtocolsRequest::writeDependencySink( evaluator::DependencyCollector &tracker, ArrayRef PDs) const { @@ -204,11 +192,6 @@ void GetDestructorRequest::cacheResult(DestructorDecl *value) const { classDecl->addMember(value); } -evaluator::DependencySource GetDestructorRequest::readDependencySource( - const evaluator::DependencyRecorder &eval) const { - return eval.getActiveDependencySourceOrNull(); -} - //----------------------------------------------------------------------------// // GenericParamListRequest computation. //----------------------------------------------------------------------------// @@ -355,15 +338,9 @@ swift::extractNearestSourceLoc(const LookupConformanceDescriptor &desc) { } //----------------------------------------------------------------------------// -// LookupInModuleRequest computation. +// ModuleQualifiedLookupRequest computation. //----------------------------------------------------------------------------// -evaluator::DependencySource ModuleQualifiedLookupRequest::readDependencySource( - const evaluator::DependencyRecorder &eval) const { - auto *DC = std::get<0>(getStorage()); - return DC->getParentSourceFile(); -} - void ModuleQualifiedLookupRequest::writeDependencySink( evaluator::DependencyCollector &reqTracker, QualifiedLookupResult l) const { auto *DC = std::get<0>(getStorage()); @@ -409,27 +386,12 @@ void LookupConformanceInModuleRequest::writeDependencySink( // UnqualifiedLookupRequest computation. //----------------------------------------------------------------------------// -evaluator::DependencySource UnqualifiedLookupRequest::readDependencySource( - const evaluator::DependencyRecorder &) const { - return std::get<0>(getStorage()).DC->getParentSourceFile(); -} - void UnqualifiedLookupRequest::writeDependencySink( evaluator::DependencyCollector &track, LookupResult res) const { auto &desc = std::get<0>(getStorage()); track.addTopLevelName(desc.Name.getBaseName()); } -//----------------------------------------------------------------------------// -// QualifiedLookupRequest computation. -//----------------------------------------------------------------------------// - -evaluator::DependencySource QualifiedLookupRequest::readDependencySource( - const evaluator::DependencyRecorder &) const { - auto *DC = std::get<0>(getStorage())->getModuleScopeContext(); - return dyn_cast(DC); -} - // Define request evaluation functions for each of the name lookup requests. static AbstractRequestFunction *nameLookupRequestFunctions[] = { #define SWIFT_REQUEST(Zone, Name, Sig, Caching, LocOptions) \ diff --git a/lib/AST/TypeCheckRequests.cpp b/lib/AST/TypeCheckRequests.cpp index a2f4efccb0d8c..aa72fb50ecf87 100644 --- a/lib/AST/TypeCheckRequests.cpp +++ b/lib/AST/TypeCheckRequests.cpp @@ -157,11 +157,6 @@ void SuperclassTypeRequest::cacheResult(Type value) const { protocolDecl->LazySemanticInfo.SuperclassType.setPointerAndInt(value, true); } -evaluator::DependencySource SuperclassTypeRequest::readDependencySource( - const evaluator::DependencyRecorder &e) const { - return e.getActiveDependencySourceOrNull(); -} - void SuperclassTypeRequest::writeDependencySink( evaluator::DependencyCollector &tracker, Type value) const { if (!value) @@ -1309,12 +1304,6 @@ void CheckRedeclarationRequest::writeDependencySink( // LookupAllConformancesInContextRequest computation. //----------------------------------------------------------------------------// -evaluator::DependencySource -LookupAllConformancesInContextRequest::readDependencySource( - const evaluator::DependencyRecorder &collector) const { - return collector.getActiveDependencySourceOrNull(); -} - void LookupAllConformancesInContextRequest::writeDependencySink( evaluator::DependencyCollector &tracker, ProtocolConformanceLookupResult conformances) const { From d93c6d8b1255f5e7546fb1d0fce9dc2b76856345 Mon Sep 17 00:00:00 2001 From: Robert Widmann Date: Thu, 23 Jul 2020 19:52:21 -0700 Subject: [PATCH 16/31] Remove Cascading Computations from ASTScope --- include/swift/AST/ASTScope.h | 71 +++++++++++-------- include/swift/AST/NameLookup.h | 13 +--- lib/AST/ASTScope.cpp | 6 -- lib/AST/ASTScopeLookup.cpp | 91 +----------------------- lib/AST/NameLookup.cpp | 10 +-- lib/AST/UnqualifiedLookup.cpp | 125 ++++++++++++++++----------------- 6 files changed, 111 insertions(+), 205 deletions(-) diff --git a/include/swift/AST/ASTScope.h b/include/swift/AST/ASTScope.h index b03e202052e62..f6cc99a12c99e 100644 --- a/include/swift/AST/ASTScope.h +++ b/include/swift/AST/ASTScope.h @@ -417,10 +417,6 @@ class ASTScopeImpl { static llvm::SmallVector lookupLabeledStmts(SourceFile *sourceFile, SourceLoc loc); - static Optional - computeIsCascadingUse(ArrayRef history, - Optional initialIsCascadingUse); - static std::pair lookupFallthroughSourceAndDest(SourceFile *sourceFile, SourceLoc loc); @@ -448,7 +444,6 @@ class ASTScopeImpl { /// The main (recursive) lookup function: /// Tell DeclConsumer about all names found in this scope and if not done, /// recurse for enclosing scopes. Stop lookup if about to look in limit. - /// Return final value for isCascadingUse /// /// If the lookup depends on implicit self, selfDC is its context. /// (Names in extensions never depend on self.) @@ -508,9 +503,6 @@ class ASTScopeImpl { #pragma mark - - lookup- local bindings protected: - virtual Optional - resolveIsCascadingUseForThisScope(Optional) const; - // A local binding is a basically a local variable defined in that very scope // It is not an instance variable or inherited type. @@ -611,11 +603,11 @@ class Portion { virtual ASTScopeImpl *expandScope(GenericTypeOrExtensionScope *, ScopeCreator &) const = 0; + /// \Returns \c true if this lookup is done looking for results, else \c false. virtual SourceRange getChildlessSourceRangeOf(const GenericTypeOrExtensionScope *scope, bool omitAssertions) const = 0; - /// Returns isDone and isCascadingUse virtual bool lookupMembersOf(const GenericTypeOrExtensionScope *scope, ArrayRef, ASTScopeImpl::DeclConsumer consumer) const; @@ -780,10 +772,6 @@ class GenericTypeOrExtensionScope : public ASTScopeImpl { virtual bool doesDeclHaveABody() const; const char *portionName() const { return portion->portionName; } -protected: - Optional resolveIsCascadingUseForThisScope( - Optional isCascadingUse) const override; - public: // Only for DeclScope, not BodyScope // Returns the where clause scope, or the parent if none @@ -969,8 +957,7 @@ class GenericParamScope final : public ASTScopeImpl { protected: bool lookupLocalsOrMembers(ArrayRef, DeclConsumer) const override; - Optional - resolveIsCascadingUseForThisScope(Optional) const override; + bool doesContextMatchStartingContext(const DeclContext *) const override; }; /// Concrete class for a function/initializer/deinitializer @@ -1014,9 +1001,6 @@ class AbstractFunctionDeclScope final : public ASTScopeImpl { protected: NullablePtr genericParams() const override; - - Optional - resolveIsCascadingUseForThisScope(Optional) const override; }; /// The parameters for an abstract function (init/func/deinit)., subscript, and @@ -1087,8 +1071,6 @@ class AbstractFunctionBodyScope : public ASTScopeImpl { protected: bool lookupLocalsOrMembers(ArrayRef, DeclConsumer) const override; - Optional - resolveIsCascadingUseForThisScope(Optional) const override; public: NullablePtr insertionPointForDeferredExpansion() override; @@ -1123,10 +1105,6 @@ class DefaultArgumentInitializerScope final : public ASTScopeImpl { virtual NullablePtr getDeclContext() const override; virtual NullablePtr getDeclIfAny() const override { return decl; } Decl *getDecl() const { return decl; } - -protected: - Optional - resolveIsCascadingUseForThisScope(Optional) const override; }; /// Consider: @@ -1274,9 +1252,6 @@ class PatternEntryInitializerScope final : public AbstractPatternEntryScope { protected: bool lookupLocalsOrMembers(ArrayRef, DeclConsumer) const override; - - Optional - resolveIsCascadingUseForThisScope(Optional) const override; }; /// The scope introduced by a conditional clause in an if/guard/while @@ -1392,6 +1367,42 @@ class ClosureParametersScope final : public ASTScopeImpl { NullablePtr getExprIfAny() const override { return closureExpr; } Expr *getExpr() const { return closureExpr; } NullablePtr getReferrent() const override; +}; + +/// For a closure with named parameters, this scope does the local bindings. +/// Absent if no "in". +class ClosureParametersScope final : public AbstractClosureScope { +public: + ClosureParametersScope(ClosureExpr *closureExpr, + NullablePtr captureList) + : AbstractClosureScope(closureExpr, captureList) {} + virtual ~ClosureParametersScope() {} + + std::string getClassName() const override; + SourceRange + getSourceRangeOfThisASTNode(bool omitAssertions = false) const override; + + /// Since explicit captures of \c self by closures enable the use of implicit + /// \c self, we need to make sure that the appropriate \c self is used as the + /// base decl for these uses (otherwise, the capture would be marked as + /// unused. \c ClosureParametersScope::capturedSelfDC() checks if we have such + /// a capture of self. + NullablePtr capturedSelfDC() const override; + +protected: + ASTScopeImpl *expandSpecifically(ScopeCreator &) override; + bool lookupLocalsOrMembers(ArrayRef, + DeclConsumer) const override; +}; + +// The body encompasses the code in the closure; the part after the "in" if +// there is an "in" +class ClosureBodyScope final : public AbstractClosureScope { +public: + ClosureBodyScope(ClosureExpr *closureExpr, + NullablePtr captureList) + : AbstractClosureScope(closureExpr, captureList) {} + virtual ~ClosureBodyScope() {} protected: ASTScopeImpl *expandSpecifically(ScopeCreator &scopeCreator) override; @@ -1402,8 +1413,10 @@ class ClosureParametersScope final : public ASTScopeImpl { protected: bool lookupLocalsOrMembers(ArrayRef, DeclConsumer) const override; - Optional resolveIsCascadingUseForThisScope( - Optional isCascadingUse) const override; +public: + std::string getClassName() const override; + SourceRange + getSourceRangeOfThisASTNode(bool omitAssertions = false) const override; }; class TopLevelCodeScope final : public ASTScopeImpl { diff --git a/include/swift/AST/NameLookup.h b/include/swift/AST/NameLookup.h index 892bc18d0aee9..40ac14e9311cd 100644 --- a/include/swift/AST/NameLookup.h +++ b/include/swift/AST/NameLookup.h @@ -505,9 +505,6 @@ template void filterForDiscriminator(SmallVectorImpl &results, DebuggerClient *debugClient); -void recordLookupOfTopLevelName(DeclContext *topLevelContext, DeclName name, - bool isCascading); - } // end namespace namelookup /// Retrieve the set of nominal type declarations that are directly @@ -632,8 +629,7 @@ class AbstractASTScopeDeclConsumer { /// Eventually this functionality should move into ASTScopeLookup virtual bool lookInMembers(DeclContext *const scopeDC, - NominalTypeDecl *const nominal, - function_ref)> calculateIsCascadingUse) = 0; + NominalTypeDecl *const nominal) = 0; #ifndef NDEBUG virtual void startingNextLookupStep() = 0; @@ -655,8 +651,7 @@ class ASTScopeDeclGatherer : public AbstractASTScopeDeclConsumer { /// Eventually this functionality should move into ASTScopeLookup bool lookInMembers(DeclContext *const, - NominalTypeDecl *const, - function_ref)>) override { + NominalTypeDecl *const) override { return false; } @@ -691,10 +686,6 @@ class ASTScope { unqualifiedLookup(SourceFile *, DeclNameRef, SourceLoc, namelookup::AbstractASTScopeDeclConsumer &); - static Optional - computeIsCascadingUse(ArrayRef history, - Optional initialIsCascadingUse); - /// Entry point to record the visible statement labels from the given /// point. /// diff --git a/lib/AST/ASTScope.cpp b/lib/AST/ASTScope.cpp index e6f911f20ff07..1a46dc266f008 100644 --- a/lib/AST/ASTScope.cpp +++ b/lib/AST/ASTScope.cpp @@ -46,12 +46,6 @@ llvm::SmallVector ASTScope::unqualifiedLookup( return ASTScopeImpl::unqualifiedLookup(SF, name, loc, consumer); } -Optional ASTScope::computeIsCascadingUse( - ArrayRef history, - Optional initialIsCascadingUse) { - return ASTScopeImpl::computeIsCascadingUse(history, initialIsCascadingUse); -} - llvm::SmallVector ASTScope::lookupLabeledStmts( SourceFile *sourceFile, SourceLoc loc) { return ASTScopeImpl::lookupLabeledStmts(sourceFile, loc); diff --git a/lib/AST/ASTScopeLookup.cpp b/lib/AST/ASTScopeLookup.cpp index 332207be6814b..8199fd53a7a35 100644 --- a/lib/AST/ASTScopeLookup.cpp +++ b/lib/AST/ASTScopeLookup.cpp @@ -246,8 +246,6 @@ bool ASTScopeImpl::lookupLocalsOrMembers(ArrayRef, bool GenericTypeOrExtensionScope::lookupLocalsOrMembers( ArrayRef history, ASTScopeImpl::DeclConsumer consumer) const { - // isCascadingUseArg must have already been resolved, for a real lookup - // but may be \c None for dumping. return portion->lookupMembersOf(this, history, consumer); } @@ -264,12 +262,7 @@ bool GenericTypeOrExtensionWhereOrBodyPortion::lookupMembersOf( auto nt = scope->getCorrespondingNominalTypeDecl().getPtrOrNull(); if (!nt) return false; - return consumer.lookInMembers(scope->getDeclContext().get(), nt, - [&](Optional initialIsCascadingUse) { - return ASTScopeImpl::computeIsCascadingUse( - history, initialIsCascadingUse) - .getValueOr(true); - }); + return consumer.lookInMembers(scope->getDeclContext().get(), nt); } bool GenericTypeOrExtensionWherePortion::lookupMembersOf( @@ -455,17 +448,6 @@ bool ASTScopeImpl::lookupLocalBindingsInPattern(const Pattern *p, return isDone; } -#pragma mark compute isCascadingUse - -Optional ASTScopeImpl::computeIsCascadingUse( - ArrayRef history, - const Optional initialIsCascadingUse) { - Optional isCascadingUse = initialIsCascadingUse; - for (const auto *scope : history) - isCascadingUse = scope->resolveIsCascadingUseForThisScope(isCascadingUse); - return isCascadingUse; -} - #pragma mark getLookupLimit NullablePtr ASTScopeImpl::getLookupLimit() const { @@ -523,77 +505,6 @@ NullablePtr ASTScopeImpl::ancestorWithDeclSatisfying( return nullptr; } -#pragma mark ifUnknownIsCascadingUseAccordingTo - -static bool ifUnknownIsCascadingUseAccordingTo(Optional isCascadingUse, - const DeclContext *const dc) { - return isCascadingUse.getValueOr(false); -} - -#pragma mark resolveIsCascadingUseForThisScope - -Optional ASTScopeImpl::resolveIsCascadingUseForThisScope( - Optional isCascadingUse) const { - return isCascadingUse; -} - -Optional GenericParamScope::resolveIsCascadingUseForThisScope( - Optional isCascadingUse) const { - if (auto *dc = getDeclContext().getPtrOrNull()) - return ifUnknownIsCascadingUseAccordingTo(isCascadingUse, dc); - ASTScope_unreachable("generic what?"); -} - -Optional AbstractFunctionDeclScope::resolveIsCascadingUseForThisScope( - Optional isCascadingUse) const { - return false; -} - -Optional AbstractFunctionBodyScope::resolveIsCascadingUseForThisScope( - Optional isCascadingUse) const { - return false; -} - -Optional GenericTypeOrExtensionScope::resolveIsCascadingUseForThisScope( - Optional isCascadingUse) const { - // Could override for ExtensionScope and just return true - return ifUnknownIsCascadingUseAccordingTo(isCascadingUse, - getDeclContext().get()); -} - -Optional -DefaultArgumentInitializerScope::resolveIsCascadingUseForThisScope( - Optional) const { - return false; -} - -Optional ClosureParametersScope::resolveIsCascadingUseForThisScope( - Optional isCascadingUse) const { - return ifUnknownIsCascadingUseAccordingTo(isCascadingUse, closureExpr); -} - -Optional PatternEntryInitializerScope::resolveIsCascadingUseForThisScope( - Optional isCascadingUse) const { - auto *const initContext = getPatternEntry().getInitContext(); - auto *PBI = dyn_cast_or_null(initContext); - auto *isd = PBI ? PBI->getImplicitSelfDecl() : nullptr; - - // 'self' is available within the pattern initializer of a 'lazy' variable. - if (isd) - return ifUnknownIsCascadingUseAccordingTo(isCascadingUse, PBI); - - // initializing stored property of a type - auto *const patternDeclContext = decl->getDeclContext(); - if (patternDeclContext->isTypeContext()) - return false; - - // initializing global or local - if (PBI) - return ifUnknownIsCascadingUseAccordingTo(isCascadingUse, PBI); - - return isCascadingUse; -} - #pragma mark isLabeledStmtLookupTerminator implementations bool ASTScopeImpl::isLabeledStmtLookupTerminator() const { return true; diff --git a/lib/AST/NameLookup.cpp b/lib/AST/NameLookup.cpp index a7b4c6d922755..302aca3fb3a10 100644 --- a/lib/AST/NameLookup.cpp +++ b/lib/AST/NameLookup.cpp @@ -814,9 +814,8 @@ namespace { /// Retrieve the set of type declarations that are directly referenced from /// the given parsed type representation. static DirectlyReferencedTypeDecls -directReferencesForTypeRepr(Evaluator &evaluator, - ASTContext &ctx, TypeRepr *typeRepr, - DeclContext *dc); +directReferencesForTypeRepr(Evaluator &evaluator, ASTContext &ctx, + TypeRepr *typeRepr, DeclContext *dc); /// Retrieve the set of type declarations that are directly referenced from /// the given type. @@ -838,7 +837,8 @@ SelfBounds SelfBoundsFromWhereClauseRequest::evaluate( auto *protoDecl = dyn_cast_or_null(typeDecl); auto *extDecl = decl.dyn_cast(); - DeclContext *dc = protoDecl ? (DeclContext *)protoDecl : (DeclContext *)extDecl; + const DeclContext *dc = + protoDecl ? (const DeclContext *)protoDecl : (const DeclContext *)extDecl; // A protocol or extension 'where' clause can reference associated types of // the protocol itself, so we have to start unqualified lookup from 'dc'. @@ -2192,7 +2192,7 @@ DirectlyReferencedTypeDecls InheritedDeclsReferencedRequest::evaluate( dc = (DeclContext *)decl.get(); return directReferencesForTypeRepr(evaluator, dc->getASTContext(), typeRepr, - dc); + const_cast(dc)); } // Fall back to semantic types. diff --git a/lib/AST/UnqualifiedLookup.cpp b/lib/AST/UnqualifiedLookup.cpp index 659d98bb63406..b32cf8eaede13 100644 --- a/lib/AST/UnqualifiedLookup.cpp +++ b/lib/AST/UnqualifiedLookup.cpp @@ -56,34 +56,35 @@ namespace { UnqualifiedLookupFactory *const factory; /// Nontypes are formally members of the base type, i.e. the dynamic type /// of the activation record. - DeclContext *const dynamicContext; + const DeclContext *const dynamicContext; /// Types are formally members of the metatype, i.e. the static type of the /// activation record. - DeclContext *const staticContext; + const DeclContext *const staticContext; using SelfBounds = SmallVector; SelfBounds selfBounds; public: /// \p staticContext is also the context from which to derive the self types ResultFinderForTypeContext(UnqualifiedLookupFactory *factory, - DeclContext *dynamicContext, - DeclContext *staticContext); - + const DeclContext *dynamicContext, + const DeclContext *staticContext); + SWIFT_DEBUG_DUMP; private: - SelfBounds findSelfBounds(DeclContext *dc); - + SelfBounds findSelfBounds(const DeclContext *dc); + // Classify this declaration. // Types are formally members of the metatype. - DeclContext *whereValueIsMember(const ValueDecl *const member) const { + const DeclContext * + whereValueIsMember(const ValueDecl *const member) const { return isa(member) ? staticContext : dynamicContext; } - + public: /// Do the lookups and add matches to results. - void findResults(const DeclNameRef &Name, bool isCascadingUse, - NLOptions baseNLOptions, DeclContext *contextForLookup, + void findResults(const DeclNameRef &Name, NLOptions baseNLOptions, + const DeclContext *contextForLookup, SmallVectorImpl &results) const; }; @@ -159,7 +160,7 @@ namespace { void performUnqualifiedLookup(); private: - void lookUpTopLevelNamesInModuleScopeContext(DeclContext *); + void lookUpTopLevelNamesInModuleScopeContext(const DeclContext *); void lookInASTScopes(); @@ -175,34 +176,30 @@ namespace { #pragma mark context-based lookup declarations bool isOutsideBodyOfFunction(const AbstractFunctionDecl *const AFD) const; - + /// For diagnostic purposes, move aside the unavailables, and put /// them back as a last-ditch effort. /// Could be cleaner someday with a richer interface to UnqualifiedLookup. void setAsideUnavailableResults(size_t firstPossiblyUnavailableResult); - - void addImportedResults(DeclContext *const dc); - - void addNamesKnownToDebugClient(DeclContext *dc); - + + void addImportedResults(const DeclContext *const dc); + + void addNamesKnownToDebugClient(const DeclContext *dc); + void addUnavailableInnerResults(); - - void lookForAModuleWithTheGivenName(DeclContext *const dc); - + + void lookForAModuleWithTheGivenName(const DeclContext *dc); + #pragma mark common helper declarations static NLOptions computeBaseNLOptions(const UnqualifiedLookupOptions options, const bool isOriginallyTypeLookup); - Optional getInitialIsCascadingUse() const { - return Optional(false); - } - void findResultsAndSaveUnavailables( - DeclContext *lookupContextForThisContext, - ResultFinderForTypeContext &&resultFinderForTypeContext, - bool isCascadingUse, NLOptions baseNLOptions); - + const DeclContext *lookupContextForThisContext, + ResultFinderForTypeContext &&resultFinderForTypeContext, + NLOptions baseNLOptions); + public: SWIFT_DEBUG_DUMP; SWIFT_DEBUG_DUMPER(dumpResults()); @@ -246,9 +243,9 @@ class ASTScopeDeclConsumerForUnqualifiedLookup bool consume(ArrayRef values, DeclVisibilityKind vis, NullablePtr baseDC = nullptr) override; - /// returns true if finished and new value for isCascadingUse - bool lookInMembers(DeclContext *const scopeDC, NominalTypeDecl *const nominal, - function_ref)>) override; + /// returns true if finished + bool lookInMembers(DeclContext *const scopeDC, + NominalTypeDecl *const nominal) override; #ifndef NDEBUG void startingNextLookupStep() override { @@ -327,12 +324,14 @@ void UnqualifiedLookupFactory::performUnqualifiedLookup() { } void UnqualifiedLookupFactory::lookUpTopLevelNamesInModuleScopeContext( - DeclContext *DC) { + const DeclContext *DC) { // TODO: Does the debugger client care about compound names? if (Name.isSimpleName() && !Name.isSpecial() && DebugClient && - DebugClient->lookupOverrides(Name.getBaseName(), DC, Loc, - isOriginallyTypeLookup, Results)) + DebugClient->lookupOverrides(Name.getBaseName(), + const_cast(DC), Loc, + isOriginallyTypeLookup, Results)) { return; + } addImportedResults(DC); addNamesKnownToDebugClient(DC); @@ -357,8 +356,8 @@ bool UnqualifiedLookupFactory::isOutsideBodyOfFunction( } void UnqualifiedLookupFactory::ResultFinderForTypeContext::findResults( - const DeclNameRef &Name, bool isCascadingUse, NLOptions baseNLOptions, - DeclContext *contextForLookup, + const DeclNameRef &Name, NLOptions baseNLOptions, + const DeclContext *contextForLookup, SmallVectorImpl &results) const { // An optimization: if (selfBounds.empty()) @@ -367,7 +366,8 @@ void UnqualifiedLookupFactory::ResultFinderForTypeContext::findResults( SmallVector Lookup; contextForLookup->lookupQualified(selfBounds, Name, baseNLOptions, Lookup); for (auto Result : Lookup) { - results.push_back(LookupResultEntry(whereValueIsMember(Result), Result)); + results.emplace_back(const_cast(whereValueIsMember(Result)), + Result); #ifndef NDEBUG factory->addedResult(results.back()); #endif @@ -406,13 +406,13 @@ void UnqualifiedLookupFactory::setAsideUnavailableResults( filterForDiscriminator(Results, DebugClient); } -void UnqualifiedLookupFactory::addImportedResults(DeclContext *const dc) { +void UnqualifiedLookupFactory::addImportedResults(const DeclContext *const dc) { using namespace namelookup; SmallVector CurModuleResults; auto resolutionKind = isOriginallyTypeLookup ? ResolutionKind::TypesOnly : ResolutionKind::Overloadable; - lookupInModule(dc, Name.getFullName(), CurModuleResults, NLKind::UnqualifiedLookup, - resolutionKind, dc); + lookupInModule(dc, Name.getFullName(), CurModuleResults, + NLKind::UnqualifiedLookup, resolutionKind, dc); // Always perform name shadowing for type lookup. if (options.contains(Flags::TypeLookup)) { @@ -429,9 +429,11 @@ void UnqualifiedLookupFactory::addImportedResults(DeclContext *const dc) { filterForDiscriminator(Results, DebugClient); } -void UnqualifiedLookupFactory::addNamesKnownToDebugClient(DeclContext *dc) { +void UnqualifiedLookupFactory::addNamesKnownToDebugClient( + const DeclContext *dc) { if (Name.isSimpleName() && DebugClient) - DebugClient->lookupAdditions(Name.getBaseName(), dc, Loc, + DebugClient->lookupAdditions(Name.getBaseName(), + const_cast(dc), Loc, isOriginallyTypeLookup, Results); } @@ -440,7 +442,7 @@ void UnqualifiedLookupFactory::addUnavailableInnerResults() { } void UnqualifiedLookupFactory::lookForAModuleWithTheGivenName( - DeclContext *const dc) { + const DeclContext *const dc) { using namespace namelookup; if (!Name.isSimpleName() || Name.isSpecial()) return; @@ -470,18 +472,16 @@ void UnqualifiedLookupFactory::lookForAModuleWithTheGivenName( #pragma mark common helper definitions - void UnqualifiedLookupFactory::findResultsAndSaveUnavailables( - DeclContext *lookupContextForThisContext, - ResultFinderForTypeContext &&resultFinderForTypeContext, - bool isCascadingUse, NLOptions baseNLOptions) { + const DeclContext *lookupContextForThisContext, + ResultFinderForTypeContext &&resultFinderForTypeContext, + NLOptions baseNLOptions) { auto firstPossiblyUnavailableResult = Results.size(); - resultFinderForTypeContext.findResults(Name, isCascadingUse, baseNLOptions, + resultFinderForTypeContext.findResults(Name, baseNLOptions, lookupContextForThisContext, Results); setAsideUnavailableResults(firstPossiblyUnavailableResult); } - NLOptions UnqualifiedLookupFactory::computeBaseNLOptions( const UnqualifiedLookupOptions options, const bool isOriginallyTypeLookup) { @@ -495,8 +495,7 @@ NLOptions UnqualifiedLookupFactory::computeBaseNLOptions( return baseNLOptions; } -bool UnqualifiedLookupFactory::isFirstResultEnough() - const { +bool UnqualifiedLookupFactory::isFirstResultEnough() const { return !Results.empty() && !options.contains(Flags::IncludeOuterResults); } @@ -508,15 +507,14 @@ void UnqualifiedLookupFactory::recordCompletionOfAScope() { UnqualifiedLookupFactory::ResultFinderForTypeContext:: ResultFinderForTypeContext(UnqualifiedLookupFactory *factory, - DeclContext *dynamicContext, - DeclContext *staticContext) - : factory(factory), - dynamicContext(dynamicContext), staticContext(staticContext), - selfBounds(findSelfBounds(staticContext)) {} + const DeclContext *dynamicContext, + const DeclContext *staticContext) + : factory(factory), dynamicContext(dynamicContext), + staticContext(staticContext), selfBounds(findSelfBounds(staticContext)) {} UnqualifiedLookupFactory::ResultFinderForTypeContext::SelfBounds UnqualifiedLookupFactory::ResultFinderForTypeContext::findSelfBounds( - DeclContext *dc) { + const DeclContext *dc) { auto nominal = dc->getSelfNominalTypeDecl(); if (!nominal) return {}; @@ -638,8 +636,7 @@ bool ASTScopeDeclGatherer::consume(ArrayRef valuesArg, // TODO: in future, migrate this functionality into ASTScopes bool ASTScopeDeclConsumerForUnqualifiedLookup::lookInMembers( DeclContext *const scopeDC, - NominalTypeDecl *const nominal, - function_ref)> calculateIsCascadingUse) { + NominalTypeDecl *const nominal) { if (candidateSelfDC) { if (auto *afd = dyn_cast(candidateSelfDC)) { assert(!factory.isOutsideBodyOfFunction(afd) && "Should be inside"); @@ -654,10 +651,8 @@ bool ASTScopeDeclConsumerForUnqualifiedLookup::lookInMembers( // convert the unqualified reference into a self member access. auto resultFinder = UnqualifiedLookupFactory::ResultFinderForTypeContext( &factory, candidateSelfDC ? candidateSelfDC : scopeDC, scopeDC); - const bool isCascadingUse = - calculateIsCascadingUse(factory.getInitialIsCascadingUse()); factory.findResultsAndSaveUnavailables(scopeDC, std::move(resultFinder), - isCascadingUse, factory.baseNLOptions); + factory.baseNLOptions); factory.recordCompletionOfAScope(); // We're done looking inside a nominal type declaration. It is possible @@ -700,7 +695,9 @@ void UnqualifiedLookupFactory::ResultFinderForTypeContext::dump() const { void UnqualifiedLookupFactory::dump() const { print(llvm::errs()); } void UnqualifiedLookupFactory::dumpScopes() const { printScopes(llvm::errs()); } -void UnqualifiedLookupFactory::dumpResults() const { printResults(llvm::errs()); } +void UnqualifiedLookupFactory::dumpResults() const { + printResults(llvm::errs()); +} void UnqualifiedLookupFactory::printScopes(raw_ostream &out) const { out << "\n\nScopes:\n"; From 8c913e385e4c44e2f21407ea38d12f853060b428 Mon Sep 17 00:00:00 2001 From: Robert Widmann Date: Thu, 23 Jul 2020 19:54:24 -0700 Subject: [PATCH 17/31] Remove LegacyCascadingDependencies --- include/swift/AST/EvaluatorDependencies.h | 9 --------- include/swift/Basic/LangOptions.h | 4 ---- lib/AST/Evaluator.cpp | 17 +---------------- lib/Driver/ToolChains.cpp | 3 --- lib/Frontend/CompilerInvocation.cpp | 5 ----- unittests/AST/ArithmeticEvaluator.cpp | 2 -- 6 files changed, 1 insertion(+), 39 deletions(-) diff --git a/include/swift/AST/EvaluatorDependencies.h b/include/swift/AST/EvaluatorDependencies.h index be38dbbc5aebe..c7be12a9a48ce 100644 --- a/include/swift/AST/EvaluatorDependencies.h +++ b/include/swift/AST/EvaluatorDependencies.h @@ -186,13 +186,6 @@ struct DependencyRecorder { // scope. This has practical effect of charging all unqualified lookups to // the primary file being acted upon instead of to the destination file. DirectDependencies, - // Enables a legacy mode of dependency tracking that makes a distinction - // between private and cascading edges, and does not directly capture - // transitive dependencies. - // - // By default, the dependency collector moves to register dependencies in - // the referenced name trackers at the top of the active dependency stack. - LegacyCascadingDependencies, }; private: @@ -280,8 +273,6 @@ struct DependencyRecorder { if (dependencySources.empty()) return nullptr; switch (mode) { - case Mode::LegacyCascadingDependencies: - return dependencySources.back(); case Mode::DirectDependencies: return dependencySources.front(); } diff --git a/include/swift/Basic/LangOptions.h b/include/swift/Basic/LangOptions.h index 6810676539819..641582c12b27d 100644 --- a/include/swift/Basic/LangOptions.h +++ b/include/swift/Basic/LangOptions.h @@ -359,10 +359,6 @@ namespace swift { /// conformances. bool EnableExperimentalAdditiveArithmeticDerivedConformances = false; - /// Whether to enable a more aggressive mode of incremental dependency - /// gathering that never captures cascading edges. - bool DirectIntramoduleDependencies = true; - /// Enable verification when every SubstitutionMap is constructed. bool VerifyAllSubstitutionMaps = false; diff --git a/lib/AST/Evaluator.cpp b/lib/AST/Evaluator.cpp index 631342937dcb5..2589f41473c9d 100644 --- a/lib/AST/Evaluator.cpp +++ b/lib/AST/Evaluator.cpp @@ -62,21 +62,11 @@ void Evaluator::registerRequestFunctions( requestFunctionsByZone.push_back({zoneID, functions}); } -static evaluator::DependencyRecorder::Mode -computeDependencyModeFromFlags(const LangOptions &opts) { - using Mode = evaluator::DependencyRecorder::Mode; - if (opts.DirectIntramoduleDependencies) { - return Mode::DirectDependencies; - } - - return Mode::LegacyCascadingDependencies; -} - Evaluator::Evaluator(DiagnosticEngine &diags, const LangOptions &opts) : diags(diags), debugDumpCycles(opts.DebugDumpCycles), buildDependencyGraph(opts.BuildRequestDependencyGraph), - recorder{computeDependencyModeFromFlags(opts)} {} + recorder{evaluator::DependencyRecorder::Mode::DirectDependencies} {} void Evaluator::emitRequestEvaluatorGraphViz(llvm::StringRef graphVizPath) { std::error_code error; @@ -444,10 +434,6 @@ void evaluator::DependencyRecorder::replay( assert(!isRecording && "Probably not a good idea to allow nested recording"); auto source = getActiveDependencySourceOrNull(); - if (mode == Mode::LegacyCascadingDependencies) { - return; - } - if (source.isNull() || !source.get()->isPrimary()) { return; } @@ -496,7 +482,6 @@ void evaluator::DependencyRecorder::replay( void evaluator::DependencyRecorder::unionNearestCachedRequest( ArrayRef stack, const DependencyCollector::ReferenceSet &scratch) { - assert(mode != Mode::LegacyCascadingDependencies); auto nearest = std::find_if(stack.rbegin(), stack.rend(), [](const auto &req){ return req.isCached(); }); if (nearest == stack.rend()) { diff --git a/lib/Driver/ToolChains.cpp b/lib/Driver/ToolChains.cpp index 89f47d78186f4..7b738c0a74511 100644 --- a/lib/Driver/ToolChains.cpp +++ b/lib/Driver/ToolChains.cpp @@ -281,9 +281,6 @@ void ToolChain::addCommonFrontendArgs(const OutputInfo &OI, options::OPT_disable_fuzzy_forward_scan_trailing_closure_matching); inputArgs.AddLastArg(arguments, options::OPT_verify_incremental_dependencies); - inputArgs.AddLastArg(arguments, - options::OPT_enable_direct_intramodule_dependencies, - options::OPT_disable_direct_intramodule_dependencies); // Pass on any build config options inputArgs.AddAllArgs(arguments, options::OPT_D); diff --git a/lib/Frontend/CompilerInvocation.cpp b/lib/Frontend/CompilerInvocation.cpp index bc1f7ad209a05..10afda2d7a5ea 100644 --- a/lib/Frontend/CompilerInvocation.cpp +++ b/lib/Frontend/CompilerInvocation.cpp @@ -453,11 +453,6 @@ static bool ParseLangArgs(LangOptions &Opts, ArgList &Args, if (Args.hasArg(OPT_enable_experimental_additive_arithmetic_derivation)) Opts.EnableExperimentalAdditiveArithmeticDerivedConformances = true; - Opts.DirectIntramoduleDependencies = - Args.hasFlag(OPT_enable_direct_intramodule_dependencies, - OPT_disable_direct_intramodule_dependencies, - Opts.DirectIntramoduleDependencies); - Opts.EnableExperimentalForwardModeDifferentiation |= Args.hasArg(OPT_enable_experimental_forward_mode_differentiation); diff --git a/unittests/AST/ArithmeticEvaluator.cpp b/unittests/AST/ArithmeticEvaluator.cpp index 34a0f735cafdd..c0377970a9e38 100644 --- a/unittests/AST/ArithmeticEvaluator.cpp +++ b/unittests/AST/ArithmeticEvaluator.cpp @@ -222,7 +222,6 @@ TEST(ArithmeticEvaluator, Simple) { LangOptions opts; opts.DebugDumpCycles = false; opts.BuildRequestDependencyGraph = true; - opts.DirectIntramoduleDependencies = false; Evaluator evaluator(diags, opts); evaluator.registerRequestFunctions(Zone::ArithmeticEvaluator, arithmeticRequestFunctions); @@ -349,7 +348,6 @@ TEST(ArithmeticEvaluator, Cycle) { LangOptions opts; opts.DebugDumpCycles = false; opts.BuildRequestDependencyGraph = false; - opts.DirectIntramoduleDependencies = false; Evaluator evaluator(diags, opts); evaluator.registerRequestFunctions(Zone::ArithmeticEvaluator, arithmeticRequestFunctions); From daeb0818670c0f41cc7b216cd1167ad6ed747204 Mon Sep 17 00:00:00 2001 From: Robert Widmann Date: Thu, 23 Jul 2020 20:32:49 -0700 Subject: [PATCH 18/31] Remove appendHolderOfCascadingMembers --- lib/AST/FrontendSourceFileDepGraphFactory.cpp | 28 ++----------------- 1 file changed, 3 insertions(+), 25 deletions(-) diff --git a/lib/AST/FrontendSourceFileDepGraphFactory.cpp b/lib/AST/FrontendSourceFileDepGraphFactory.cpp index 993a750f2d341..e48780d1aa2fa 100644 --- a/lib/AST/FrontendSourceFileDepGraphFactory.cpp +++ b/lib/AST/FrontendSourceFileDepGraphFactory.cpp @@ -578,7 +578,6 @@ class UsedDeclEnumerator { public: void enumerateAllUses() { auto &Ctx = SF->getASTContext(); - std::unordered_set holdersOfCascadingMembers; Ctx.evaluator.enumerateReferencesInFile(SF, [&](const auto &ref) { const auto cascades = false; std::string name = ref.name.userFacingName().str(); @@ -596,22 +595,18 @@ class UsedDeclEnumerator { case Kind::PotentialMember: { std::string context = DependencyKey::computeContextForProvidedEntity< NodeKind::potentialMember>(nominal); - appendHolderOfCascadingMembers(holdersOfCascadingMembers, nominal, - cascades); return enumerateUse(context, "", cascades); } case Kind::UsedMember: { std::string context = DependencyKey::computeContextForProvidedEntity( nominal); - appendHolderOfCascadingMembers(holdersOfCascadingMembers, nominal, - cascades); return enumerateUse(context, name, cascades); } } }); enumerateExternalUses(); - enumerateNominalUses(std::move(holdersOfCascadingMembers)); + enumerateNominalUses(); } private: @@ -623,23 +618,7 @@ class UsedDeclEnumerator { isCascadingUse ? sourceFileInterface : sourceFileImplementation); } - void appendHolderOfCascadingMembers(std::unordered_set &holders, - const NominalTypeDecl *subject, - bool isCascading) { - bool isPrivate = subject->isPrivateToEnclosingFile(); - if (isPrivate && !includeIntrafileDeps) - return; - - std::string context = - DependencyKey::computeContextForProvidedEntity( - subject); - if (isCascading) { - holders.insert(context); - } - } - - void enumerateNominalUses( - const std::unordered_set &&holdersOfCascadingMembers) { + void enumerateNominalUses() { auto &Ctx = SF->getASTContext(); Ctx.evaluator.enumerateReferencesInFile(SF, [&](const auto &ref) { const NominalTypeDecl *subject = ref.subject; @@ -655,8 +634,7 @@ class UsedDeclEnumerator { std::string context = DependencyKey::computeContextForProvidedEntity( subject); - const bool isCascadingUse = holdersOfCascadingMembers.count(context) != 0; - enumerateUse(context, "", isCascadingUse); + enumerateUse(context, "", /*isCascadingUse*/ false); }); } From e37b378d4d387bac78d960ea5c197a08dd0c1950 Mon Sep 17 00:00:00 2001 From: Robert Widmann Date: Fri, 24 Jul 2020 09:28:34 -0700 Subject: [PATCH 19/31] Remove DependencyRecorder::Mode --- include/swift/AST/EvaluatorDependencies.h | 17 ++--------------- lib/AST/Evaluator.cpp | 18 +++++------------- 2 files changed, 7 insertions(+), 28 deletions(-) diff --git a/include/swift/AST/EvaluatorDependencies.h b/include/swift/AST/EvaluatorDependencies.h index c7be12a9a48ce..85d131987c92a 100644 --- a/include/swift/AST/EvaluatorDependencies.h +++ b/include/swift/AST/EvaluatorDependencies.h @@ -179,15 +179,6 @@ struct DependencyCollector { struct DependencyRecorder { friend DependencyCollector; - enum class Mode { - // Enables the status quo of recording direct dependencies. - // - // This mode restricts the dependency collector to ignore changes of - // scope. This has practical effect of charging all unqualified lookups to - // the primary file being acted upon instead of to the destination file. - DirectDependencies, - }; - private: /// A stack of dependency sources in the order they were evaluated. llvm::SmallVector dependencySources; @@ -195,11 +186,10 @@ struct DependencyRecorder { fileReferences; llvm::DenseMap requestReferences; - Mode mode; bool isRecording; public: - explicit DependencyRecorder(Mode mode) : mode{mode}, isRecording{false} {}; + explicit DependencyRecorder() : isRecording{false} {}; private: /// Records the given \c Reference as a dependency of the current dependency @@ -272,10 +262,7 @@ struct DependencyRecorder { evaluator::DependencySource getActiveDependencySourceOrNull() const { if (dependencySources.empty()) return nullptr; - switch (mode) { - case Mode::DirectDependencies: - return dependencySources.front(); - } + return dependencySources.front(); } public: diff --git a/lib/AST/Evaluator.cpp b/lib/AST/Evaluator.cpp index 2589f41473c9d..639d8b19e74be 100644 --- a/lib/AST/Evaluator.cpp +++ b/lib/AST/Evaluator.cpp @@ -66,7 +66,7 @@ Evaluator::Evaluator(DiagnosticEngine &diags, const LangOptions &opts) : diags(diags), debugDumpCycles(opts.DebugDumpCycles), buildDependencyGraph(opts.BuildRequestDependencyGraph), - recorder{evaluator::DependencyRecorder::Mode::DirectDependencies} {} + recorder{} {} void Evaluator::emitRequestEvaluatorGraphViz(llvm::StringRef graphVizPath) { std::error_code error; @@ -380,31 +380,23 @@ void evaluator::DependencyRecorder::realize( void evaluator::DependencyCollector::addUsedMember(NominalTypeDecl *subject, DeclBaseName name) { - if (parent.mode == DependencyRecorder::Mode::DirectDependencies) { - scratch.insert(Reference::usedMember(subject, name)); - } + scratch.insert(Reference::usedMember(subject, name)); return parent.realize(Reference::usedMember(subject, name)); } void evaluator::DependencyCollector::addPotentialMember( NominalTypeDecl *subject) { - if (parent.mode == DependencyRecorder::Mode::DirectDependencies) { - scratch.insert(Reference::potentialMember(subject)); - } + scratch.insert(Reference::potentialMember(subject)); return parent.realize(Reference::potentialMember(subject)); } void evaluator::DependencyCollector::addTopLevelName(DeclBaseName name) { - if (parent.mode == DependencyRecorder::Mode::DirectDependencies) { - scratch.insert(Reference::topLevel(name)); - } + scratch.insert(Reference::topLevel(name)); return parent.realize(Reference::topLevel(name)); } void evaluator::DependencyCollector::addDynamicLookupName(DeclBaseName name) { - if (parent.mode == DependencyRecorder::Mode::DirectDependencies) { - scratch.insert(Reference::dynamic(name)); - } + scratch.insert(Reference::dynamic(name)); return parent.realize(Reference::dynamic(name)); } From 78e78a23c46e12670127cccfb00a2e712af04560 Mon Sep 17 00:00:00 2001 From: Robert Widmann Date: Thu, 23 Jul 2020 19:59:29 -0700 Subject: [PATCH 20/31] Drop Legacy Tests --- include/swift/Option/Options.td | 10 - .../Inputs/bindings-build-record/added.swift | 2 - .../Inputs/bindings-build-record/main.o | 0 .../Inputs/bindings-build-record/main.swift | 3 - .../Inputs/bindings-build-record/other.o | 0 .../Inputs/bindings-build-record/other.swift | 2 - .../Inputs/bindings-build-record/output.json | 21 - .../bindings-build-record/yet-another.o | 0 .../bindings-build-record/yet-another.swift | 2 - .../chained-additional-kinds-fine/main.swift | 46 -- .../chained-additional-kinds-fine/other.swift | 38 -- .../chained-additional-kinds-fine/output.json | 17 - .../yet-another.swift | 30 - .../Inputs/chained-after-fine/main.swift | 46 -- .../Inputs/chained-after-fine/main.swiftdeps | Bin 408 -> 0 bytes .../Inputs/chained-after-fine/other.swift | 38 -- .../Inputs/chained-after-fine/other.swiftdeps | Bin 416 -> 0 bytes .../Inputs/chained-after-fine/output.json | 17 - .../chained-after-fine/yet-another.swift | 30 - .../chained-after-fine/yet-another.swiftdeps | Bin 420 -> 0 bytes .../Inputs/chained-fine/main.swift | 46 -- .../Inputs/chained-fine/other.swift | 38 -- .../Inputs/chained-fine/output.json | 17 - .../Inputs/chained-fine/yet-another.swift | 30 - .../chained-private-after-fine/main.swift | 46 -- .../chained-private-after-fine/main.swiftdeps | Bin 388 -> 0 bytes .../chained-private-after-fine/other.swift | 38 -- .../other.swiftdeps | Bin 416 -> 0 bytes .../chained-private-after-fine/output.json | 17 - .../yet-another.swift | 30 - .../yet-another.swiftdeps | Bin 420 -> 0 bytes .../main.swift | 62 -- .../main.swiftdeps | Bin 456 -> 0 bytes .../other.swift | 38 -- .../other.swiftdeps | Bin 416 -> 0 bytes .../output.json | 17 - .../yet-another.swift | 30 - .../yet-another.swiftdeps | Bin 420 -> 0 bytes .../main.swift | 86 --- .../main.swiftdeps | Bin 492 -> 0 bytes .../other.swift | 38 -- .../other.swiftdeps | Bin 428 -> 0 bytes .../output.json | 17 - .../yet-another.swift | 30 - .../yet-another.swiftdeps | Bin 420 -> 0 bytes .../Inputs/chained-private-fine/main.swift | 47 -- .../Inputs/chained-private-fine/other.swift | 38 -- .../Inputs/chained-private-fine/output.json | 17 - .../chained-private-fine/yet-another.swift | 30 - .../Dependencies/Inputs/chained/main.swift | 3 - .../Dependencies/Inputs/chained/other.swift | 2 - .../Dependencies/Inputs/chained/output.json | 17 - .../Inputs/chained/yet-another.swift | 2 - .../a.swift | 38 -- .../bad.swift | 46 -- .../c.swift | 46 -- .../output.json | 33 -- .../Inputs/crash-simple-fine/crash.swift | 54 -- .../Inputs/crash-simple-fine/main.swift | 46 -- .../Inputs/crash-simple-fine/other.swift | 54 -- .../Inputs/crash-simple-fine/output.json | 17 - .../crash.swift | 38 -- .../crash.swiftdeps | Bin 392 -> 0 bytes .../main.swift | 30 - .../main.swiftdeps | Bin 392 -> 0 bytes .../other.swift | 30 - .../other.swiftdeps | Bin 392 -> 0 bytes .../output.json | 17 - .../crash-simple-with-swiftdeps/crash.swift | 2 - .../crash.swiftdeps | 0 .../crash-simple-with-swiftdeps/main.swift | 2 - .../main.swiftdeps | 0 .../crash-simple-with-swiftdeps/other.swift | 2 - .../other.swiftdeps | 0 .../crash-simple-with-swiftdeps/output.json | 17 - .../Inputs/fail-chained-fine/a.swift | 38 -- .../Inputs/fail-chained-fine/b.swift | 38 -- .../Inputs/fail-chained-fine/bad.swift | 54 -- .../Inputs/fail-chained-fine/c.swift | 46 -- .../Inputs/fail-chained-fine/d.swift | 46 -- .../Inputs/fail-chained-fine/e.swift | 46 -- .../Inputs/fail-chained-fine/f.swift | 46 -- .../Inputs/fail-chained-fine/output.json | 33 -- .../Inputs/fail-interface-hash-fine/bad.swift | 39 -- .../fail-interface-hash-fine/bad.swiftdeps | Bin 368 -> 0 bytes .../depends-on-bad.swift | 31 - .../depends-on-bad.swiftdeps | Bin 368 -> 0 bytes .../depends-on-main.swift | 30 - .../depends-on-main.swiftdeps | Bin 368 -> 0 bytes .../fail-interface-hash-fine/main.swift | 39 -- .../fail-interface-hash-fine/main.swiftdeps | Bin 368 -> 0 bytes .../fail-interface-hash-fine/output.json | 21 - .../Inputs/fail-simple-fine/bad.swift | 38 -- .../Inputs/fail-simple-fine/main.swift | 30 - .../Inputs/fail-simple-fine/other.swift | 30 - .../Inputs/fail-simple-fine/output.json | 17 - .../Inputs/fail-with-bad-deps-fine/bad.swift | 55 -- .../fail-with-bad-deps-fine/bad.swiftdeps | Bin 424 -> 0 bytes .../depends-on-bad.swift | 46 -- .../depends-on-bad.swiftdeps | Bin 396 -> 0 bytes .../depends-on-main.swift | 46 -- .../depends-on-main.swiftdeps | Bin 396 -> 0 bytes .../Inputs/fail-with-bad-deps-fine/main.swift | 46 -- .../fail-with-bad-deps-fine/main.swiftdeps | Bin 424 -> 0 bytes .../fail-with-bad-deps-fine/output.json | 21 - .../Inputs/fake-build-for-bitcode.py | 39 -- .../Inputs/fake-build-whole-module.py | 33 -- .../Inputs/independent-fine/main.swift | 22 - .../Inputs/independent-fine/other.swift | 22 - .../Inputs/independent-fine/output.json | 13 - .../Inputs/malformed-after-fine/main.swift | 30 - .../malformed-after-fine/main.swiftdeps | Bin 408 -> 0 bytes .../Inputs/malformed-after-fine/other.swift | 2 - .../malformed-after-fine/other.swiftdeps | Bin 392 -> 0 bytes .../Inputs/malformed-after-fine/output.json | 13 - .../malformed-but-valid-yaml-fine/main.swift | 30 - .../main.swiftdeps | Bin 408 -> 0 bytes .../malformed-but-valid-yaml-fine/other.swift | 24 - .../other.swiftdeps | Bin 392 -> 0 bytes .../malformed-but-valid-yaml-fine/output.json | 13 - .../Inputs/modify-non-primary-files.py | 51 -- .../Dependencies/Inputs/moduleonly/bar.swift | 28 - .../Dependencies/Inputs/moduleonly/baz.swift | 20 - .../Dependencies/Inputs/moduleonly/foo.swift | 28 - .../Inputs/moduleonly/output.json | 21 - .../Inputs/mutual-fine/main.swift | 78 --- .../Inputs/mutual-fine/other.swift | 78 --- .../Inputs/mutual-fine/output.json | 13 - .../does-change.swift | 78 --- .../does-change.swiftdeps | Bin 476 -> 0 bytes .../does-not-change.swift | 78 --- .../does-not-change.swiftdeps | Bin 472 -> 0 bytes .../mutual-interface-hash-fine/output.json | 13 - .../mutual-with-swiftdeps-fine/main.swift | 46 -- .../mutual-with-swiftdeps-fine/main.swiftdeps | Bin 392 -> 0 bytes .../mutual-with-swiftdeps-fine/other.swift | 46 -- .../other.swiftdeps | Bin 392 -> 0 bytes .../mutual-with-swiftdeps-fine/output.json | 13 - .../Inputs/nominal-members-fine/a-ext.swift | 102 ---- .../Inputs/nominal-members-fine/a.swift | 78 --- .../depends-on-a-ext.swift | 70 --- .../depends-on-a-foo.swift | 70 --- .../Inputs/nominal-members-fine/output.json | 21 - .../one-way-depends-after-fine/main.swift | 30 - .../one-way-depends-after-fine/main.swiftdeps | Bin 392 -> 0 bytes .../one-way-depends-after-fine/other.swift | 38 -- .../other.swiftdeps | Bin 420 -> 0 bytes .../one-way-depends-after-fine/output.json | 13 - .../one-way-depends-before-fine/main.swift | 22 - .../main.swiftdeps | Bin 408 -> 0 bytes .../one-way-depends-before-fine/other.swift | 38 -- .../other.swiftdeps | Bin 420 -> 0 bytes .../one-way-depends-before-fine/output.json | 13 - .../Inputs/one-way-external-fine/main.swift | 62 -- .../one-way-external-fine/main1-external | 0 .../one-way-external-fine/main2-external | 0 .../Inputs/one-way-external-fine/other.swift | 70 --- .../one-way-external-fine/other1-external | 0 .../one-way-external-fine/other2-external | 0 .../Inputs/one-way-external-fine/output.json | 13 - .../Inputs/one-way-fine/main.swift | 30 - .../Inputs/one-way-fine/other.swift | 38 -- .../Inputs/one-way-fine/output.json | 17 - .../one-way-provides-after-fine/main.swift | 30 - .../main.swiftdeps | Bin 408 -> 0 bytes .../one-way-provides-after-fine/other.swift | 54 -- .../other.swiftdeps | Bin 392 -> 0 bytes .../one-way-provides-after-fine/output.json | 13 - .../one-way-provides-before-fine/main.swift | 30 - .../main.swiftdeps | Bin 408 -> 0 bytes .../one-way-provides-before-fine/other.swift | 22 - .../other.swiftdeps | Bin 472 -> 0 bytes .../one-way-provides-before-fine/output.json | 13 - .../one-way-with-swiftdeps-fine/main.swift | 30 - .../main.swiftdeps | Bin 392 -> 0 bytes .../one-way-with-swiftdeps-fine/other.swift | 38 -- .../other.swiftdeps | Bin 392 -> 0 bytes .../one-way-with-swiftdeps-fine/output.json | 17 - .../Dependencies/Inputs/one-way/main.swift | 2 - .../Dependencies/Inputs/one-way/other.swift | 2 - .../Dependencies/Inputs/one-way/output.json | 17 - .../Inputs/only-skip-once/file1.swift | 3 - .../Inputs/only-skip-once/file2.swift | 3 - .../Inputs/only-skip-once/main.swift | 2 - .../only-skip-once/output-file-map.json | 23 - .../Inputs/private-after-fine/a.swift | 38 -- .../Inputs/private-after-fine/a.swiftdeps | Bin 416 -> 0 bytes .../Inputs/private-after-fine/b.swift | 54 -- .../Inputs/private-after-fine/b.swiftdeps | Bin 456 -> 0 bytes .../Inputs/private-after-fine/c.swift | 46 -- .../Inputs/private-after-fine/c.swiftdeps | Bin 436 -> 0 bytes .../Inputs/private-after-fine/d.swift | 46 -- .../Inputs/private-after-fine/d.swiftdeps | Bin 408 -> 0 bytes .../Inputs/private-after-fine/e.swift | 46 -- .../Inputs/private-after-fine/e.swiftdeps | Bin 408 -> 0 bytes .../Inputs/private-after-fine/f.swift | 46 -- .../Inputs/private-after-fine/f.swiftdeps | Bin 436 -> 0 bytes .../Inputs/private-after-fine/g.swift | 46 -- .../Inputs/private-after-fine/g.swiftdeps | Bin 436 -> 0 bytes .../Inputs/private-after-fine/output.json | 33 -- .../Dependencies/Inputs/private-fine/a.swift | 38 -- .../Dependencies/Inputs/private-fine/b.swift | 46 -- .../Dependencies/Inputs/private-fine/c.swift | 54 -- .../Dependencies/Inputs/private-fine/d.swift | 46 -- .../Dependencies/Inputs/private-fine/e.swift | 38 -- .../Inputs/private-fine/output.json | 25 - .../Dependencies/Inputs/private/a.swift | 2 - .../Dependencies/Inputs/private/b.swift | 3 - .../Dependencies/Inputs/private/c.swift | 3 - .../Dependencies/Inputs/private/d.swift | 3 - .../Dependencies/Inputs/private/e.swift | 2 - .../Dependencies/Inputs/private/output.json | 25 - test/Driver/Dependencies/Inputs/touch.py | 28 - .../Inputs/update-dependencies-bad.py | 58 -- .../Inputs/update-dependencies.py | 67 --- test/Driver/Dependencies/README.txt | 28 - .../Dependencies/bindings-build-record.swift | 54 -- .../chained-additional-kinds-fine.swift | 26 - .../Dependencies/chained-after-fine.swift | 23 - test/Driver/Dependencies/chained-fine.swift | 32 - .../chained-private-after-fine.swift | 23 - .../chained-private-after-multiple-fine.swift | 27 - ...-after-multiple-nominal-members-fine.swift | 23 - .../Dependencies/chained-private-fine.swift | 30 - .../check-interface-implementation-fine.swift | 40 -- .../Dependencies/crash-added-fine.swift | 39 -- test/Driver/Dependencies/crash-new-fine.swift | 76 --- .../Dependencies/crash-simple-fine.swift | 31 - .../dependencies-preservation-fine.swift | 20 - ...iver-show-incremental-arguments-fine.swift | 25 - ...cremental-conflicting-arguments-fine.swift | 32 - .../driver-show-incremental-inputs-fine.swift | 24 - ...iver-show-incremental-malformed-fine.swift | 36 -- .../driver-show-incremental-mutual-fine.swift | 19 - ...-show-incremental-swift-version-fine.swift | 26 - .../embed-bitcode-parallel-fine.swift | 91 --- .../Driver/Dependencies/fail-added-fine.swift | 32 - .../Dependencies/fail-chained-fine.swift | 129 ----- .../fail-interface-hash-fine.swift | 38 -- test/Driver/Dependencies/fail-new-fine.swift | 45 -- .../Dependencies/fail-simple-fine.swift | 30 - .../fail-with-bad-deps-fine.swift | 50 -- .../Driver/Dependencies/file-added-fine.swift | 20 - .../Dependencies/independent-fine.swift | 46 -- .../independent-half-dirty-fine.swift | 23 - .../independent-parseable-fine.swift | 78 --- .../malformed-but-valid-yaml-fine.swift | 48 -- test/Driver/Dependencies/malformed-fine.swift | 48 -- test/Driver/Dependencies/moduleonly.swift | 85 --- test/Driver/Dependencies/mutual-fine.swift | 24 - .../mutual-interface-hash-fine.swift | 50 -- .../Dependencies/nominal-members-fine.swift | 39 -- .../one-way-depends-after-fine.swift | 56 -- .../one-way-depends-before-fine.swift | 56 -- .../one-way-external-delete-fine.swift | 41 -- .../Dependencies/one-way-external-fine.swift | 52 -- test/Driver/Dependencies/one-way-fine.swift | 75 --- .../one-way-merge-module-fine.swift | 18 - .../Dependencies/one-way-parallel-fine.swift | 61 -- .../Dependencies/one-way-parseable-fine.swift | 92 --- .../one-way-provides-after-fine.swift | 48 -- .../one-way-provides-before-fine.swift | 52 -- .../one-way-while-editing-fine.swift | 34 -- test/Driver/Dependencies/only-skip-once.swift | 22 - .../Dependencies/private-after-fine.swift | 54 -- test/Driver/Dependencies/private-fine.swift | 87 --- .../whole-module-build-record.swift | 20 - .../bindings-build-record.swift | 14 +- .../chained-additional-kinds-fine.swift | 8 +- .../chained-after-fine.swift | 6 +- .../PrivateDependencies/chained-fine.swift | 12 +- .../chained-private-after-fine.swift | 6 +- .../chained-private-after-multiple-fine.swift | 6 +- ...-after-multiple-nominal-members-fine.swift | 6 +- .../chained-private-fine.swift | 6 +- .../check-interface-implementation-fine.swift | 6 +- .../crash-added-fine.swift | 10 +- .../PrivateDependencies/crash-new-fine.swift | 16 +- .../crash-simple-fine.swift | 6 +- .../dependencies-preservation-fine.swift | 2 +- ...cremental-conflicting-arguments-fine.swift | 8 +- .../driver-show-incremental-inputs-fine.swift | 4 +- ...iver-show-incremental-malformed-fine.swift | 10 +- .../driver-show-incremental-mutual-fine.swift | 6 +- ...-show-incremental-swift-version-fine.swift | 4 +- .../embed-bitcode-parallel-fine.swift | 4 +- .../PrivateDependencies/fail-added-fine.swift | 8 +- .../fail-chained-fine.swift | 18 +- .../fail-interface-hash-fine.swift | 6 +- .../PrivateDependencies/fail-new-fine.swift | 16 +- .../fail-simple-fine.swift | 6 +- .../fail-with-bad-deps-fine.swift | 10 +- .../PrivateDependencies/file-added-fine.swift | 6 +- .../independent-fine.swift | 16 +- .../independent-half-dirty-fine.swift | 6 +- .../independent-parseable-fine.swift | 12 +- .../malformed-but-valid-yaml-fine.swift | 16 +- .../PrivateDependencies/malformed-fine.swift | 16 +- .../PrivateDependencies/moduleonly.swift | 20 +- .../PrivateDependencies/mutual-fine.swift | 8 +- .../mutual-interface-hash-fine.swift | 12 +- .../nominal-members-fine.swift | 10 +- .../one-way-depends-before-fine.swift | 18 +- .../one-way-external-delete-fine.swift | 10 +- .../one-way-external-fine.swift | 12 +- .../PrivateDependencies/one-way-fine.swift | 26 +- .../one-way-merge-module-fine.swift | 4 +- .../one-way-parallel-fine.swift | 4 +- .../one-way-parseable-fine.swift | 8 +- .../one-way-provides-after-fine.swift | 16 +- .../one-way-provides-before-fine.swift | 16 +- .../one-way-while-editing-fine.swift | 8 +- .../PrivateDependencies/only-skip-once.swift | 4 +- .../private-after-fine.swift | 10 +- .../PrivateDependencies/private-fine.swift | 14 +- .../whole-module-build-record.swift | 4 +- .../class-fingerprint/definesAB-after.swift | 5 - .../class-fingerprint/definesAB-before.swift | 4 - .../Inputs/class-fingerprint/main.swift | 1 - .../Inputs/class-fingerprint/ofm.json | 22 - .../Inputs/class-fingerprint/usesA.swift | 1 - .../Inputs/class-fingerprint/usesB.swift | 1 - .../enum-fingerprint/definesAB-after.swift | 7 - .../enum-fingerprint/definesAB-before.swift | 6 - .../Inputs/enum-fingerprint/main.swift | 1 - .../Inputs/enum-fingerprint/ofm.json | 22 - .../Inputs/enum-fingerprint/usesA.swift | 1 - .../Inputs/enum-fingerprint/usesB.swift | 1 - .../definesAB-after.swift | 9 - .../definesAB-before.swift | 8 - .../Inputs/extension-adds-member/main.swift | 1 - .../Inputs/extension-adds-member/ofm.json | 22 - .../Inputs/extension-adds-member/usesA.swift | 1 - .../Inputs/extension-adds-member/usesB.swift | 1 - .../definesAB-after.swift | 5 - .../definesAB-before.swift | 4 - .../Inputs/protocol-fingerprint/main.swift | 1 - .../Inputs/protocol-fingerprint/ofm.json | 22 - .../Inputs/protocol-fingerprint/usesA.swift | 3 - .../Inputs/protocol-fingerprint/usesB.swift | 2 - .../struct-fingerprint/definesAB-after.swift | 5 - .../struct-fingerprint/definesAB-before.swift | 4 - .../Inputs/struct-fingerprint/main.swift | 1 - .../Inputs/struct-fingerprint/ofm.json | 22 - .../Inputs/struct-fingerprint/usesA.swift | 1 - .../Inputs/struct-fingerprint/usesB.swift | 1 - .../Fingerprints/class-fingerprint.swift | 74 --- .../Fingerprints/enum-fingerprint.swift | 74 --- .../Fingerprints/extension-adds-member.swift | 83 --- .../Fingerprints/protocol-fingerprint.swift | 74 --- .../Fingerprints/struct-fingerprint.swift | 74 --- .../Dependencies/Inputs/InterestingType.swift | 23 - .../Dependencies/private-function-fine.swift | 19 - .../private-function-return-type-fine.swift | 19 - .../private-protocol-conformer-ext-fine.swift | 24 - .../private-protocol-conformer-fine.swift | 23 - .../private-struct-member-fine.swift | 21 - .../Dependencies/private-subscript-fine.swift | 21 - .../Dependencies/private-typealias-fine.swift | 21 - .../Dependencies/private-var-fine.swift | 20 - ...erence-dependencies-consistency-fine.swift | 19 - ...nce-dependencies-dynamic-lookup-fine.swift | 73 --- .../reference-dependencies-errors.swift | 9 - .../reference-dependencies-fine.swift | 547 ------------------ .../reference-dependencies-members-fine.swift | 67 --- .../private-function-fine.swift | 4 +- .../private-function-return-type-fine.swift | 4 +- .../private-protocol-conformer-ext-fine.swift | 4 +- .../private-protocol-conformer-fine.swift | 4 +- .../private-struct-member-fine.swift | 4 +- .../private-subscript-fine.swift | 4 +- .../private-typealias-fine.swift | 4 +- .../private-var-fine.swift | 4 +- ...erence-dependencies-consistency-fine.swift | 2 +- ...nce-dependencies-dynamic-lookup-fine.swift | 4 +- .../reference-dependencies-errors.swift | 2 +- .../reference-dependencies-fine.swift | 4 +- .../reference-dependencies-members-fine.swift | 4 +- .../Verifier/multi-file-private/main.swift | 4 +- .../Verifier/multi-file/Inputs/Base.swift | 39 -- .../Verifier/multi-file/Inputs/Derived.swift | 30 - .../Verifier/multi-file/Inputs/Inner.swift | 14 - .../multi-file/Inputs/UsesInner.swift | 14 - .../Verifier/multi-file/main.swift | 8 - .../single-file-private/AnyObject.swift | 2 +- .../single-file-private/Conformances.swift | 2 +- .../Verifier/single-file/Conformances.swift | 28 - test/Incremental/superfluous-cascade.swift | 32 +- 388 files changed, 270 insertions(+), 9174 deletions(-) delete mode 100644 test/Driver/Dependencies/Inputs/bindings-build-record/added.swift delete mode 100644 test/Driver/Dependencies/Inputs/bindings-build-record/main.o delete mode 100644 test/Driver/Dependencies/Inputs/bindings-build-record/main.swift delete mode 100644 test/Driver/Dependencies/Inputs/bindings-build-record/other.o delete mode 100644 test/Driver/Dependencies/Inputs/bindings-build-record/other.swift delete mode 100644 test/Driver/Dependencies/Inputs/bindings-build-record/output.json delete mode 100644 test/Driver/Dependencies/Inputs/bindings-build-record/yet-another.o delete mode 100644 test/Driver/Dependencies/Inputs/bindings-build-record/yet-another.swift delete mode 100644 test/Driver/Dependencies/Inputs/chained-additional-kinds-fine/main.swift delete mode 100644 test/Driver/Dependencies/Inputs/chained-additional-kinds-fine/other.swift delete mode 100644 test/Driver/Dependencies/Inputs/chained-additional-kinds-fine/output.json delete mode 100644 test/Driver/Dependencies/Inputs/chained-additional-kinds-fine/yet-another.swift delete mode 100644 test/Driver/Dependencies/Inputs/chained-after-fine/main.swift delete mode 100644 test/Driver/Dependencies/Inputs/chained-after-fine/main.swiftdeps delete mode 100644 test/Driver/Dependencies/Inputs/chained-after-fine/other.swift delete mode 100644 test/Driver/Dependencies/Inputs/chained-after-fine/other.swiftdeps delete mode 100644 test/Driver/Dependencies/Inputs/chained-after-fine/output.json delete mode 100644 test/Driver/Dependencies/Inputs/chained-after-fine/yet-another.swift delete mode 100644 test/Driver/Dependencies/Inputs/chained-after-fine/yet-another.swiftdeps delete mode 100644 test/Driver/Dependencies/Inputs/chained-fine/main.swift delete mode 100644 test/Driver/Dependencies/Inputs/chained-fine/other.swift delete mode 100644 test/Driver/Dependencies/Inputs/chained-fine/output.json delete mode 100644 test/Driver/Dependencies/Inputs/chained-fine/yet-another.swift delete mode 100644 test/Driver/Dependencies/Inputs/chained-private-after-fine/main.swift delete mode 100644 test/Driver/Dependencies/Inputs/chained-private-after-fine/main.swiftdeps delete mode 100644 test/Driver/Dependencies/Inputs/chained-private-after-fine/other.swift delete mode 100644 test/Driver/Dependencies/Inputs/chained-private-after-fine/other.swiftdeps delete mode 100644 test/Driver/Dependencies/Inputs/chained-private-after-fine/output.json delete mode 100644 test/Driver/Dependencies/Inputs/chained-private-after-fine/yet-another.swift delete mode 100644 test/Driver/Dependencies/Inputs/chained-private-after-fine/yet-another.swiftdeps delete mode 100644 test/Driver/Dependencies/Inputs/chained-private-after-multiple-fine/main.swift delete mode 100644 test/Driver/Dependencies/Inputs/chained-private-after-multiple-fine/main.swiftdeps delete mode 100644 test/Driver/Dependencies/Inputs/chained-private-after-multiple-fine/other.swift delete mode 100644 test/Driver/Dependencies/Inputs/chained-private-after-multiple-fine/other.swiftdeps delete mode 100644 test/Driver/Dependencies/Inputs/chained-private-after-multiple-fine/output.json delete mode 100644 test/Driver/Dependencies/Inputs/chained-private-after-multiple-fine/yet-another.swift delete mode 100644 test/Driver/Dependencies/Inputs/chained-private-after-multiple-fine/yet-another.swiftdeps delete mode 100644 test/Driver/Dependencies/Inputs/chained-private-after-multiple-nominal-members-fine/main.swift delete mode 100644 test/Driver/Dependencies/Inputs/chained-private-after-multiple-nominal-members-fine/main.swiftdeps delete mode 100644 test/Driver/Dependencies/Inputs/chained-private-after-multiple-nominal-members-fine/other.swift delete mode 100644 test/Driver/Dependencies/Inputs/chained-private-after-multiple-nominal-members-fine/other.swiftdeps delete mode 100644 test/Driver/Dependencies/Inputs/chained-private-after-multiple-nominal-members-fine/output.json delete mode 100644 test/Driver/Dependencies/Inputs/chained-private-after-multiple-nominal-members-fine/yet-another.swift delete mode 100644 test/Driver/Dependencies/Inputs/chained-private-after-multiple-nominal-members-fine/yet-another.swiftdeps delete mode 100644 test/Driver/Dependencies/Inputs/chained-private-fine/main.swift delete mode 100644 test/Driver/Dependencies/Inputs/chained-private-fine/other.swift delete mode 100644 test/Driver/Dependencies/Inputs/chained-private-fine/output.json delete mode 100644 test/Driver/Dependencies/Inputs/chained-private-fine/yet-another.swift delete mode 100644 test/Driver/Dependencies/Inputs/chained/main.swift delete mode 100644 test/Driver/Dependencies/Inputs/chained/other.swift delete mode 100644 test/Driver/Dependencies/Inputs/chained/output.json delete mode 100644 test/Driver/Dependencies/Inputs/chained/yet-another.swift delete mode 100644 test/Driver/Dependencies/Inputs/check-interface-implementation-fine/a.swift delete mode 100644 test/Driver/Dependencies/Inputs/check-interface-implementation-fine/bad.swift delete mode 100644 test/Driver/Dependencies/Inputs/check-interface-implementation-fine/c.swift delete mode 100644 test/Driver/Dependencies/Inputs/check-interface-implementation-fine/output.json delete mode 100644 test/Driver/Dependencies/Inputs/crash-simple-fine/crash.swift delete mode 100644 test/Driver/Dependencies/Inputs/crash-simple-fine/main.swift delete mode 100644 test/Driver/Dependencies/Inputs/crash-simple-fine/other.swift delete mode 100644 test/Driver/Dependencies/Inputs/crash-simple-fine/output.json delete mode 100644 test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps-fine/crash.swift delete mode 100644 test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps-fine/crash.swiftdeps delete mode 100644 test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps-fine/main.swift delete mode 100644 test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps-fine/main.swiftdeps delete mode 100644 test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps-fine/other.swift delete mode 100644 test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps-fine/other.swiftdeps delete mode 100644 test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps-fine/output.json delete mode 100644 test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps/crash.swift delete mode 100644 test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps/crash.swiftdeps delete mode 100644 test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps/main.swift delete mode 100644 test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps/main.swiftdeps delete mode 100644 test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps/other.swift delete mode 100644 test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps/other.swiftdeps delete mode 100644 test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps/output.json delete mode 100644 test/Driver/Dependencies/Inputs/fail-chained-fine/a.swift delete mode 100644 test/Driver/Dependencies/Inputs/fail-chained-fine/b.swift delete mode 100644 test/Driver/Dependencies/Inputs/fail-chained-fine/bad.swift delete mode 100644 test/Driver/Dependencies/Inputs/fail-chained-fine/c.swift delete mode 100644 test/Driver/Dependencies/Inputs/fail-chained-fine/d.swift delete mode 100644 test/Driver/Dependencies/Inputs/fail-chained-fine/e.swift delete mode 100644 test/Driver/Dependencies/Inputs/fail-chained-fine/f.swift delete mode 100644 test/Driver/Dependencies/Inputs/fail-chained-fine/output.json delete mode 100644 test/Driver/Dependencies/Inputs/fail-interface-hash-fine/bad.swift delete mode 100644 test/Driver/Dependencies/Inputs/fail-interface-hash-fine/bad.swiftdeps delete mode 100644 test/Driver/Dependencies/Inputs/fail-interface-hash-fine/depends-on-bad.swift delete mode 100644 test/Driver/Dependencies/Inputs/fail-interface-hash-fine/depends-on-bad.swiftdeps delete mode 100644 test/Driver/Dependencies/Inputs/fail-interface-hash-fine/depends-on-main.swift delete mode 100644 test/Driver/Dependencies/Inputs/fail-interface-hash-fine/depends-on-main.swiftdeps delete mode 100644 test/Driver/Dependencies/Inputs/fail-interface-hash-fine/main.swift delete mode 100644 test/Driver/Dependencies/Inputs/fail-interface-hash-fine/main.swiftdeps delete mode 100644 test/Driver/Dependencies/Inputs/fail-interface-hash-fine/output.json delete mode 100644 test/Driver/Dependencies/Inputs/fail-simple-fine/bad.swift delete mode 100644 test/Driver/Dependencies/Inputs/fail-simple-fine/main.swift delete mode 100644 test/Driver/Dependencies/Inputs/fail-simple-fine/other.swift delete mode 100644 test/Driver/Dependencies/Inputs/fail-simple-fine/output.json delete mode 100644 test/Driver/Dependencies/Inputs/fail-with-bad-deps-fine/bad.swift delete mode 100644 test/Driver/Dependencies/Inputs/fail-with-bad-deps-fine/bad.swiftdeps delete mode 100644 test/Driver/Dependencies/Inputs/fail-with-bad-deps-fine/depends-on-bad.swift delete mode 100644 test/Driver/Dependencies/Inputs/fail-with-bad-deps-fine/depends-on-bad.swiftdeps delete mode 100644 test/Driver/Dependencies/Inputs/fail-with-bad-deps-fine/depends-on-main.swift delete mode 100644 test/Driver/Dependencies/Inputs/fail-with-bad-deps-fine/depends-on-main.swiftdeps delete mode 100644 test/Driver/Dependencies/Inputs/fail-with-bad-deps-fine/main.swift delete mode 100644 test/Driver/Dependencies/Inputs/fail-with-bad-deps-fine/main.swiftdeps delete mode 100644 test/Driver/Dependencies/Inputs/fail-with-bad-deps-fine/output.json delete mode 100755 test/Driver/Dependencies/Inputs/fake-build-for-bitcode.py delete mode 100755 test/Driver/Dependencies/Inputs/fake-build-whole-module.py delete mode 100644 test/Driver/Dependencies/Inputs/independent-fine/main.swift delete mode 100644 test/Driver/Dependencies/Inputs/independent-fine/other.swift delete mode 100644 test/Driver/Dependencies/Inputs/independent-fine/output.json delete mode 100644 test/Driver/Dependencies/Inputs/malformed-after-fine/main.swift delete mode 100644 test/Driver/Dependencies/Inputs/malformed-after-fine/main.swiftdeps delete mode 100644 test/Driver/Dependencies/Inputs/malformed-after-fine/other.swift delete mode 100644 test/Driver/Dependencies/Inputs/malformed-after-fine/other.swiftdeps delete mode 100644 test/Driver/Dependencies/Inputs/malformed-after-fine/output.json delete mode 100644 test/Driver/Dependencies/Inputs/malformed-but-valid-yaml-fine/main.swift delete mode 100644 test/Driver/Dependencies/Inputs/malformed-but-valid-yaml-fine/main.swiftdeps delete mode 100644 test/Driver/Dependencies/Inputs/malformed-but-valid-yaml-fine/other.swift delete mode 100644 test/Driver/Dependencies/Inputs/malformed-but-valid-yaml-fine/other.swiftdeps delete mode 100644 test/Driver/Dependencies/Inputs/malformed-but-valid-yaml-fine/output.json delete mode 100755 test/Driver/Dependencies/Inputs/modify-non-primary-files.py delete mode 100644 test/Driver/Dependencies/Inputs/moduleonly/bar.swift delete mode 100644 test/Driver/Dependencies/Inputs/moduleonly/baz.swift delete mode 100644 test/Driver/Dependencies/Inputs/moduleonly/foo.swift delete mode 100644 test/Driver/Dependencies/Inputs/moduleonly/output.json delete mode 100644 test/Driver/Dependencies/Inputs/mutual-fine/main.swift delete mode 100644 test/Driver/Dependencies/Inputs/mutual-fine/other.swift delete mode 100644 test/Driver/Dependencies/Inputs/mutual-fine/output.json delete mode 100644 test/Driver/Dependencies/Inputs/mutual-interface-hash-fine/does-change.swift delete mode 100644 test/Driver/Dependencies/Inputs/mutual-interface-hash-fine/does-change.swiftdeps delete mode 100644 test/Driver/Dependencies/Inputs/mutual-interface-hash-fine/does-not-change.swift delete mode 100644 test/Driver/Dependencies/Inputs/mutual-interface-hash-fine/does-not-change.swiftdeps delete mode 100644 test/Driver/Dependencies/Inputs/mutual-interface-hash-fine/output.json delete mode 100644 test/Driver/Dependencies/Inputs/mutual-with-swiftdeps-fine/main.swift delete mode 100644 test/Driver/Dependencies/Inputs/mutual-with-swiftdeps-fine/main.swiftdeps delete mode 100644 test/Driver/Dependencies/Inputs/mutual-with-swiftdeps-fine/other.swift delete mode 100644 test/Driver/Dependencies/Inputs/mutual-with-swiftdeps-fine/other.swiftdeps delete mode 100644 test/Driver/Dependencies/Inputs/mutual-with-swiftdeps-fine/output.json delete mode 100644 test/Driver/Dependencies/Inputs/nominal-members-fine/a-ext.swift delete mode 100644 test/Driver/Dependencies/Inputs/nominal-members-fine/a.swift delete mode 100644 test/Driver/Dependencies/Inputs/nominal-members-fine/depends-on-a-ext.swift delete mode 100644 test/Driver/Dependencies/Inputs/nominal-members-fine/depends-on-a-foo.swift delete mode 100644 test/Driver/Dependencies/Inputs/nominal-members-fine/output.json delete mode 100644 test/Driver/Dependencies/Inputs/one-way-depends-after-fine/main.swift delete mode 100644 test/Driver/Dependencies/Inputs/one-way-depends-after-fine/main.swiftdeps delete mode 100644 test/Driver/Dependencies/Inputs/one-way-depends-after-fine/other.swift delete mode 100644 test/Driver/Dependencies/Inputs/one-way-depends-after-fine/other.swiftdeps delete mode 100644 test/Driver/Dependencies/Inputs/one-way-depends-after-fine/output.json delete mode 100644 test/Driver/Dependencies/Inputs/one-way-depends-before-fine/main.swift delete mode 100644 test/Driver/Dependencies/Inputs/one-way-depends-before-fine/main.swiftdeps delete mode 100644 test/Driver/Dependencies/Inputs/one-way-depends-before-fine/other.swift delete mode 100644 test/Driver/Dependencies/Inputs/one-way-depends-before-fine/other.swiftdeps delete mode 100644 test/Driver/Dependencies/Inputs/one-way-depends-before-fine/output.json delete mode 100644 test/Driver/Dependencies/Inputs/one-way-external-fine/main.swift delete mode 100644 test/Driver/Dependencies/Inputs/one-way-external-fine/main1-external delete mode 100644 test/Driver/Dependencies/Inputs/one-way-external-fine/main2-external delete mode 100644 test/Driver/Dependencies/Inputs/one-way-external-fine/other.swift delete mode 100644 test/Driver/Dependencies/Inputs/one-way-external-fine/other1-external delete mode 100644 test/Driver/Dependencies/Inputs/one-way-external-fine/other2-external delete mode 100644 test/Driver/Dependencies/Inputs/one-way-external-fine/output.json delete mode 100644 test/Driver/Dependencies/Inputs/one-way-fine/main.swift delete mode 100644 test/Driver/Dependencies/Inputs/one-way-fine/other.swift delete mode 100644 test/Driver/Dependencies/Inputs/one-way-fine/output.json delete mode 100644 test/Driver/Dependencies/Inputs/one-way-provides-after-fine/main.swift delete mode 100644 test/Driver/Dependencies/Inputs/one-way-provides-after-fine/main.swiftdeps delete mode 100644 test/Driver/Dependencies/Inputs/one-way-provides-after-fine/other.swift delete mode 100644 test/Driver/Dependencies/Inputs/one-way-provides-after-fine/other.swiftdeps delete mode 100644 test/Driver/Dependencies/Inputs/one-way-provides-after-fine/output.json delete mode 100644 test/Driver/Dependencies/Inputs/one-way-provides-before-fine/main.swift delete mode 100644 test/Driver/Dependencies/Inputs/one-way-provides-before-fine/main.swiftdeps delete mode 100644 test/Driver/Dependencies/Inputs/one-way-provides-before-fine/other.swift delete mode 100644 test/Driver/Dependencies/Inputs/one-way-provides-before-fine/other.swiftdeps delete mode 100644 test/Driver/Dependencies/Inputs/one-way-provides-before-fine/output.json delete mode 100644 test/Driver/Dependencies/Inputs/one-way-with-swiftdeps-fine/main.swift delete mode 100644 test/Driver/Dependencies/Inputs/one-way-with-swiftdeps-fine/main.swiftdeps delete mode 100644 test/Driver/Dependencies/Inputs/one-way-with-swiftdeps-fine/other.swift delete mode 100644 test/Driver/Dependencies/Inputs/one-way-with-swiftdeps-fine/other.swiftdeps delete mode 100644 test/Driver/Dependencies/Inputs/one-way-with-swiftdeps-fine/output.json delete mode 100644 test/Driver/Dependencies/Inputs/one-way/main.swift delete mode 100644 test/Driver/Dependencies/Inputs/one-way/other.swift delete mode 100644 test/Driver/Dependencies/Inputs/one-way/output.json delete mode 100644 test/Driver/Dependencies/Inputs/only-skip-once/file1.swift delete mode 100644 test/Driver/Dependencies/Inputs/only-skip-once/file2.swift delete mode 100644 test/Driver/Dependencies/Inputs/only-skip-once/main.swift delete mode 100644 test/Driver/Dependencies/Inputs/only-skip-once/output-file-map.json delete mode 100644 test/Driver/Dependencies/Inputs/private-after-fine/a.swift delete mode 100644 test/Driver/Dependencies/Inputs/private-after-fine/a.swiftdeps delete mode 100644 test/Driver/Dependencies/Inputs/private-after-fine/b.swift delete mode 100644 test/Driver/Dependencies/Inputs/private-after-fine/b.swiftdeps delete mode 100644 test/Driver/Dependencies/Inputs/private-after-fine/c.swift delete mode 100644 test/Driver/Dependencies/Inputs/private-after-fine/c.swiftdeps delete mode 100644 test/Driver/Dependencies/Inputs/private-after-fine/d.swift delete mode 100644 test/Driver/Dependencies/Inputs/private-after-fine/d.swiftdeps delete mode 100644 test/Driver/Dependencies/Inputs/private-after-fine/e.swift delete mode 100644 test/Driver/Dependencies/Inputs/private-after-fine/e.swiftdeps delete mode 100644 test/Driver/Dependencies/Inputs/private-after-fine/f.swift delete mode 100644 test/Driver/Dependencies/Inputs/private-after-fine/f.swiftdeps delete mode 100644 test/Driver/Dependencies/Inputs/private-after-fine/g.swift delete mode 100644 test/Driver/Dependencies/Inputs/private-after-fine/g.swiftdeps delete mode 100644 test/Driver/Dependencies/Inputs/private-after-fine/output.json delete mode 100644 test/Driver/Dependencies/Inputs/private-fine/a.swift delete mode 100644 test/Driver/Dependencies/Inputs/private-fine/b.swift delete mode 100644 test/Driver/Dependencies/Inputs/private-fine/c.swift delete mode 100644 test/Driver/Dependencies/Inputs/private-fine/d.swift delete mode 100644 test/Driver/Dependencies/Inputs/private-fine/e.swift delete mode 100644 test/Driver/Dependencies/Inputs/private-fine/output.json delete mode 100644 test/Driver/Dependencies/Inputs/private/a.swift delete mode 100644 test/Driver/Dependencies/Inputs/private/b.swift delete mode 100644 test/Driver/Dependencies/Inputs/private/c.swift delete mode 100644 test/Driver/Dependencies/Inputs/private/d.swift delete mode 100644 test/Driver/Dependencies/Inputs/private/e.swift delete mode 100644 test/Driver/Dependencies/Inputs/private/output.json delete mode 100755 test/Driver/Dependencies/Inputs/touch.py delete mode 100755 test/Driver/Dependencies/Inputs/update-dependencies-bad.py delete mode 100755 test/Driver/Dependencies/Inputs/update-dependencies.py delete mode 100644 test/Driver/Dependencies/README.txt delete mode 100644 test/Driver/Dependencies/bindings-build-record.swift delete mode 100644 test/Driver/Dependencies/chained-additional-kinds-fine.swift delete mode 100644 test/Driver/Dependencies/chained-after-fine.swift delete mode 100644 test/Driver/Dependencies/chained-fine.swift delete mode 100644 test/Driver/Dependencies/chained-private-after-fine.swift delete mode 100644 test/Driver/Dependencies/chained-private-after-multiple-fine.swift delete mode 100644 test/Driver/Dependencies/chained-private-after-multiple-nominal-members-fine.swift delete mode 100644 test/Driver/Dependencies/chained-private-fine.swift delete mode 100644 test/Driver/Dependencies/check-interface-implementation-fine.swift delete mode 100644 test/Driver/Dependencies/crash-added-fine.swift delete mode 100644 test/Driver/Dependencies/crash-new-fine.swift delete mode 100644 test/Driver/Dependencies/crash-simple-fine.swift delete mode 100644 test/Driver/Dependencies/dependencies-preservation-fine.swift delete mode 100644 test/Driver/Dependencies/driver-show-incremental-arguments-fine.swift delete mode 100644 test/Driver/Dependencies/driver-show-incremental-conflicting-arguments-fine.swift delete mode 100644 test/Driver/Dependencies/driver-show-incremental-inputs-fine.swift delete mode 100644 test/Driver/Dependencies/driver-show-incremental-malformed-fine.swift delete mode 100644 test/Driver/Dependencies/driver-show-incremental-mutual-fine.swift delete mode 100644 test/Driver/Dependencies/driver-show-incremental-swift-version-fine.swift delete mode 100644 test/Driver/Dependencies/embed-bitcode-parallel-fine.swift delete mode 100644 test/Driver/Dependencies/fail-added-fine.swift delete mode 100644 test/Driver/Dependencies/fail-chained-fine.swift delete mode 100644 test/Driver/Dependencies/fail-interface-hash-fine.swift delete mode 100644 test/Driver/Dependencies/fail-new-fine.swift delete mode 100644 test/Driver/Dependencies/fail-simple-fine.swift delete mode 100644 test/Driver/Dependencies/fail-with-bad-deps-fine.swift delete mode 100644 test/Driver/Dependencies/file-added-fine.swift delete mode 100644 test/Driver/Dependencies/independent-fine.swift delete mode 100644 test/Driver/Dependencies/independent-half-dirty-fine.swift delete mode 100644 test/Driver/Dependencies/independent-parseable-fine.swift delete mode 100644 test/Driver/Dependencies/malformed-but-valid-yaml-fine.swift delete mode 100644 test/Driver/Dependencies/malformed-fine.swift delete mode 100644 test/Driver/Dependencies/moduleonly.swift delete mode 100644 test/Driver/Dependencies/mutual-fine.swift delete mode 100644 test/Driver/Dependencies/mutual-interface-hash-fine.swift delete mode 100644 test/Driver/Dependencies/nominal-members-fine.swift delete mode 100644 test/Driver/Dependencies/one-way-depends-after-fine.swift delete mode 100644 test/Driver/Dependencies/one-way-depends-before-fine.swift delete mode 100644 test/Driver/Dependencies/one-way-external-delete-fine.swift delete mode 100644 test/Driver/Dependencies/one-way-external-fine.swift delete mode 100644 test/Driver/Dependencies/one-way-fine.swift delete mode 100644 test/Driver/Dependencies/one-way-merge-module-fine.swift delete mode 100644 test/Driver/Dependencies/one-way-parallel-fine.swift delete mode 100644 test/Driver/Dependencies/one-way-parseable-fine.swift delete mode 100644 test/Driver/Dependencies/one-way-provides-after-fine.swift delete mode 100644 test/Driver/Dependencies/one-way-provides-before-fine.swift delete mode 100644 test/Driver/Dependencies/one-way-while-editing-fine.swift delete mode 100644 test/Driver/Dependencies/only-skip-once.swift delete mode 100644 test/Driver/Dependencies/private-after-fine.swift delete mode 100644 test/Driver/Dependencies/private-fine.swift delete mode 100644 test/Driver/Dependencies/whole-module-build-record.swift delete mode 100644 test/Frontend/Fingerprints/Inputs/class-fingerprint/definesAB-after.swift delete mode 100644 test/Frontend/Fingerprints/Inputs/class-fingerprint/definesAB-before.swift delete mode 100644 test/Frontend/Fingerprints/Inputs/class-fingerprint/main.swift delete mode 100644 test/Frontend/Fingerprints/Inputs/class-fingerprint/ofm.json delete mode 100644 test/Frontend/Fingerprints/Inputs/class-fingerprint/usesA.swift delete mode 100644 test/Frontend/Fingerprints/Inputs/class-fingerprint/usesB.swift delete mode 100644 test/Frontend/Fingerprints/Inputs/enum-fingerprint/definesAB-after.swift delete mode 100644 test/Frontend/Fingerprints/Inputs/enum-fingerprint/definesAB-before.swift delete mode 100644 test/Frontend/Fingerprints/Inputs/enum-fingerprint/main.swift delete mode 100644 test/Frontend/Fingerprints/Inputs/enum-fingerprint/ofm.json delete mode 100644 test/Frontend/Fingerprints/Inputs/enum-fingerprint/usesA.swift delete mode 100644 test/Frontend/Fingerprints/Inputs/enum-fingerprint/usesB.swift delete mode 100644 test/Frontend/Fingerprints/Inputs/extension-adds-member/definesAB-after.swift delete mode 100644 test/Frontend/Fingerprints/Inputs/extension-adds-member/definesAB-before.swift delete mode 100644 test/Frontend/Fingerprints/Inputs/extension-adds-member/main.swift delete mode 100644 test/Frontend/Fingerprints/Inputs/extension-adds-member/ofm.json delete mode 100644 test/Frontend/Fingerprints/Inputs/extension-adds-member/usesA.swift delete mode 100644 test/Frontend/Fingerprints/Inputs/extension-adds-member/usesB.swift delete mode 100644 test/Frontend/Fingerprints/Inputs/protocol-fingerprint/definesAB-after.swift delete mode 100644 test/Frontend/Fingerprints/Inputs/protocol-fingerprint/definesAB-before.swift delete mode 100644 test/Frontend/Fingerprints/Inputs/protocol-fingerprint/main.swift delete mode 100644 test/Frontend/Fingerprints/Inputs/protocol-fingerprint/ofm.json delete mode 100644 test/Frontend/Fingerprints/Inputs/protocol-fingerprint/usesA.swift delete mode 100644 test/Frontend/Fingerprints/Inputs/protocol-fingerprint/usesB.swift delete mode 100644 test/Frontend/Fingerprints/Inputs/struct-fingerprint/definesAB-after.swift delete mode 100644 test/Frontend/Fingerprints/Inputs/struct-fingerprint/definesAB-before.swift delete mode 100644 test/Frontend/Fingerprints/Inputs/struct-fingerprint/main.swift delete mode 100644 test/Frontend/Fingerprints/Inputs/struct-fingerprint/ofm.json delete mode 100644 test/Frontend/Fingerprints/Inputs/struct-fingerprint/usesA.swift delete mode 100644 test/Frontend/Fingerprints/Inputs/struct-fingerprint/usesB.swift delete mode 100644 test/Frontend/Fingerprints/class-fingerprint.swift delete mode 100644 test/Frontend/Fingerprints/enum-fingerprint.swift delete mode 100644 test/Frontend/Fingerprints/extension-adds-member.swift delete mode 100644 test/Frontend/Fingerprints/protocol-fingerprint.swift delete mode 100644 test/Frontend/Fingerprints/struct-fingerprint.swift delete mode 100644 test/Incremental/Dependencies/Inputs/InterestingType.swift delete mode 100644 test/Incremental/Dependencies/private-function-fine.swift delete mode 100644 test/Incremental/Dependencies/private-function-return-type-fine.swift delete mode 100644 test/Incremental/Dependencies/private-protocol-conformer-ext-fine.swift delete mode 100644 test/Incremental/Dependencies/private-protocol-conformer-fine.swift delete mode 100644 test/Incremental/Dependencies/private-struct-member-fine.swift delete mode 100644 test/Incremental/Dependencies/private-subscript-fine.swift delete mode 100644 test/Incremental/Dependencies/private-typealias-fine.swift delete mode 100644 test/Incremental/Dependencies/private-var-fine.swift delete mode 100644 test/Incremental/Dependencies/reference-dependencies-consistency-fine.swift delete mode 100644 test/Incremental/Dependencies/reference-dependencies-dynamic-lookup-fine.swift delete mode 100644 test/Incremental/Dependencies/reference-dependencies-errors.swift delete mode 100644 test/Incremental/Dependencies/reference-dependencies-fine.swift delete mode 100644 test/Incremental/Dependencies/reference-dependencies-members-fine.swift delete mode 100644 test/Incremental/Verifier/multi-file/Inputs/Base.swift delete mode 100644 test/Incremental/Verifier/multi-file/Inputs/Derived.swift delete mode 100644 test/Incremental/Verifier/multi-file/Inputs/Inner.swift delete mode 100644 test/Incremental/Verifier/multi-file/Inputs/UsesInner.swift delete mode 100644 test/Incremental/Verifier/multi-file/main.swift delete mode 100644 test/Incremental/Verifier/single-file/Conformances.swift diff --git a/include/swift/Option/Options.td b/include/swift/Option/Options.td index e75d2f835ced9..aab9f604e7caf 100644 --- a/include/swift/Option/Options.td +++ b/include/swift/Option/Options.td @@ -576,16 +576,6 @@ def enable_fuzzy_forward_scan_trailing_closure_matching : Flag<["-"], Flags<[FrontendOption]>, HelpText<"Enable fuzzy forward-scan trailing closure matching">; -def enable_direct_intramodule_dependencies : Flag<["-"], - "enable-direct-intramodule-dependencies">, - Flags<[FrontendOption, HelpHidden]>, - HelpText<"Enable experimental dependency tracking that never cascades">; - -def disable_direct_intramodule_dependencies : Flag<["-"], - "disable-direct-intramodule-dependencies">, - Flags<[FrontendOption, HelpHidden]>, - HelpText<"Disable experimental dependency tracking that never cascades">; - def enable_experimental_cxx_interop : Flag<["-"], "enable-experimental-cxx-interop">, HelpText<"Allow importing C++ modules into Swift (experimental feature)">; diff --git a/test/Driver/Dependencies/Inputs/bindings-build-record/added.swift b/test/Driver/Dependencies/Inputs/bindings-build-record/added.swift deleted file mode 100644 index 16c64afc2b66a..0000000000000 --- a/test/Driver/Dependencies/Inputs/bindings-build-record/added.swift +++ /dev/null @@ -1,2 +0,0 @@ -# Dependencies after compilation: -depends-nominal: [z] diff --git a/test/Driver/Dependencies/Inputs/bindings-build-record/main.o b/test/Driver/Dependencies/Inputs/bindings-build-record/main.o deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/test/Driver/Dependencies/Inputs/bindings-build-record/main.swift b/test/Driver/Dependencies/Inputs/bindings-build-record/main.swift deleted file mode 100644 index e0e8f251340b0..0000000000000 --- a/test/Driver/Dependencies/Inputs/bindings-build-record/main.swift +++ /dev/null @@ -1,3 +0,0 @@ -# Dependencies after compilation: -depends-top-level: [a] -provides-nominal: [z] diff --git a/test/Driver/Dependencies/Inputs/bindings-build-record/other.o b/test/Driver/Dependencies/Inputs/bindings-build-record/other.o deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/test/Driver/Dependencies/Inputs/bindings-build-record/other.swift b/test/Driver/Dependencies/Inputs/bindings-build-record/other.swift deleted file mode 100644 index 7e7daa298c540..0000000000000 --- a/test/Driver/Dependencies/Inputs/bindings-build-record/other.swift +++ /dev/null @@ -1,2 +0,0 @@ -# Dependencies after compilation: -provides-top-level: [a] diff --git a/test/Driver/Dependencies/Inputs/bindings-build-record/output.json b/test/Driver/Dependencies/Inputs/bindings-build-record/output.json deleted file mode 100644 index 58c50b2f269fb..0000000000000 --- a/test/Driver/Dependencies/Inputs/bindings-build-record/output.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "./main.swift": { - "object": "./main.o", - "swift-dependencies": "./main.swiftdeps" - }, - "./other.swift": { - "object": "./other.o", - "swift-dependencies": "./other.swiftdeps" - }, - "./yet-another.swift": { - "object": "./yet-another.o", - "swift-dependencies": "./yet-another.swiftdeps" - }, - "./added.swift": { - "object": "./added.o", - "swift-dependencies": "./added.swiftdeps" - }, - "": { - "swift-dependencies": "./main~buildrecord.swiftdeps" - } -} diff --git a/test/Driver/Dependencies/Inputs/bindings-build-record/yet-another.o b/test/Driver/Dependencies/Inputs/bindings-build-record/yet-another.o deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/test/Driver/Dependencies/Inputs/bindings-build-record/yet-another.swift b/test/Driver/Dependencies/Inputs/bindings-build-record/yet-another.swift deleted file mode 100644 index 16c64afc2b66a..0000000000000 --- a/test/Driver/Dependencies/Inputs/bindings-build-record/yet-another.swift +++ /dev/null @@ -1,2 +0,0 @@ -# Dependencies after compilation: -depends-nominal: [z] diff --git a/test/Driver/Dependencies/Inputs/chained-additional-kinds-fine/main.swift b/test/Driver/Dependencies/Inputs/chained-additional-kinds-fine/main.swift deleted file mode 100644 index 39cf040875f08..0000000000000 --- a/test/Driver/Dependencies/Inputs/chained-additional-kinds-fine/main.swift +++ /dev/null @@ -1,46 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: main.swiftdeps - fingerprint: 8276a546203ebde599da50b466729230 - sequenceNumber: 0 - defsIDependUpon: [ 4, 2 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: main.swiftdeps - fingerprint: 8276a546203ebde599da50b466729230 - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: dynamicLookup - aspect: interface - context: '' - name: z - sequenceNumber: 2 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: dynamicLookup - aspect: implementation - context: '' - name: z - sequenceNumber: 3 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: a - sequenceNumber: 4 - defsIDependUpon: [ ] - isProvides: false -... diff --git a/test/Driver/Dependencies/Inputs/chained-additional-kinds-fine/other.swift b/test/Driver/Dependencies/Inputs/chained-additional-kinds-fine/other.swift deleted file mode 100644 index fdebaf57ebfb4..0000000000000 --- a/test/Driver/Dependencies/Inputs/chained-additional-kinds-fine/other.swift +++ /dev/null @@ -1,38 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: other.swiftdeps - fingerprint: 72e95f4a11b98227c1f6ad6ea7f6cdba - sequenceNumber: 0 - defsIDependUpon: [ 2 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: other.swiftdeps - fingerprint: 72e95f4a11b98227c1f6ad6ea7f6cdba - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: a - sequenceNumber: 2 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: topLevel - aspect: implementation - context: '' - name: a - sequenceNumber: 3 - defsIDependUpon: [ ] - isProvides: true -... diff --git a/test/Driver/Dependencies/Inputs/chained-additional-kinds-fine/output.json b/test/Driver/Dependencies/Inputs/chained-additional-kinds-fine/output.json deleted file mode 100644 index 78134f1ab01d1..0000000000000 --- a/test/Driver/Dependencies/Inputs/chained-additional-kinds-fine/output.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "./main.swift": { - "object": "./main.o", - "swift-dependencies": "./main.swiftdeps" - }, - "./other.swift": { - "object": "./other.o", - "swift-dependencies": "./other.swiftdeps" - }, - "./yet-another.swift": { - "object": "./yet-another.o", - "swift-dependencies": "./yet-another.swiftdeps" - }, - "": { - "swift-dependencies": "./main~buildrecord.swiftdeps" - } -} diff --git a/test/Driver/Dependencies/Inputs/chained-additional-kinds-fine/yet-another.swift b/test/Driver/Dependencies/Inputs/chained-additional-kinds-fine/yet-another.swift deleted file mode 100644 index b12cbada09730..0000000000000 --- a/test/Driver/Dependencies/Inputs/chained-additional-kinds-fine/yet-another.swift +++ /dev/null @@ -1,30 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: yet-another.swiftdeps - fingerprint: f0a22821b1bfd1d40363b3f89c7a7693 - sequenceNumber: 0 - defsIDependUpon: [ 2 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: yet-another.swiftdeps - fingerprint: f0a22821b1bfd1d40363b3f89c7a7693 - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: dynamicLookup - aspect: interface - context: '' - name: z - sequenceNumber: 2 - defsIDependUpon: [ ] - isProvides: false -... diff --git a/test/Driver/Dependencies/Inputs/chained-after-fine/main.swift b/test/Driver/Dependencies/Inputs/chained-after-fine/main.swift deleted file mode 100644 index 2e54000a1b441..0000000000000 --- a/test/Driver/Dependencies/Inputs/chained-after-fine/main.swift +++ /dev/null @@ -1,46 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: main.swiftdeps - fingerprint: 42e5bb8d6f23bfc1b055b85bd466a86c - sequenceNumber: 0 - defsIDependUpon: [ 2, 4 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: main.swiftdeps - fingerprint: 42e5bb8d6f23bfc1b055b85bd466a86c - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: nominal - aspect: interface - context: 4main1zV - name: '' - sequenceNumber: 2 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: nominal - aspect: implementation - context: 4main1zV - name: '' - sequenceNumber: 3 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: a - sequenceNumber: 4 - defsIDependUpon: [ ] - isProvides: false -... diff --git a/test/Driver/Dependencies/Inputs/chained-after-fine/main.swiftdeps b/test/Driver/Dependencies/Inputs/chained-after-fine/main.swiftdeps deleted file mode 100644 index c00e208418ef20355cadfc0bc66faf469376d166..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 408 zcmaiuy-&hG7{=e8d@jV8xSxqJ9M{r9X@dy^R&c_^gv8l?CYXpu46dXyGB_|YICOAS zrw$C{aOlA3U*gQ*ONg!xcf<4io?qTp`=Tr505||-rH@5ov5DXbVe7E?Cip~@8iyx* zN|Z5SWBkSPXeIbpC{HXzSVZ_#sLvK#2z3_9VxV#bUx%LY;?vjVa1P9uXxHJpOYu+a*MC8exs5-vSP<08G4@c%uc?UPp|c z661O=^(pP|=5rb8y_qLif8&GhV=s81L;rrzyX{k>tSg>Bq{U9>@|*@n#k5^htGY7X za;|-7|x#?gVbd(G0_> Y8;(~qO}lQoSpw<87X6n^1Ef$5KiOq^3jhEB diff --git a/test/Driver/Dependencies/Inputs/chained-after-fine/other.swift b/test/Driver/Dependencies/Inputs/chained-after-fine/other.swift deleted file mode 100644 index fdebaf57ebfb4..0000000000000 --- a/test/Driver/Dependencies/Inputs/chained-after-fine/other.swift +++ /dev/null @@ -1,38 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: other.swiftdeps - fingerprint: 72e95f4a11b98227c1f6ad6ea7f6cdba - sequenceNumber: 0 - defsIDependUpon: [ 2 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: other.swiftdeps - fingerprint: 72e95f4a11b98227c1f6ad6ea7f6cdba - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: a - sequenceNumber: 2 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: topLevel - aspect: implementation - context: '' - name: a - sequenceNumber: 3 - defsIDependUpon: [ ] - isProvides: true -... diff --git a/test/Driver/Dependencies/Inputs/chained-after-fine/other.swiftdeps b/test/Driver/Dependencies/Inputs/chained-after-fine/other.swiftdeps deleted file mode 100644 index 536f71123e364ba2a263dc74c7f297350aab94c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 416 zcmaiuy-&hW6vb~ZAZ1Zw;$9PDc)XTUumutZtl)%+35m0%9}x#JKyW3Mk->qH!J&hr zI(1-Z9u6HC{Y#t~e1z!gaPM%=@0@!Z&8xN`0#E=*3m;Kzk}0DxlC__GV|2=Lwc|57 zLuG0m?$FPmH%A&L-6aUaXrB2z|VOg2IOjnOG9 zRE|&S42u&?Ch)V>$(qrxK$u#9kPy=ulb$WIWYRnkCRli3Qp6~9DzzsP26S$b7z?pg zh_JW`=mL`&Tb*wm7Kt!fGiedf4Rj$apdl7RMx(!sYP|p`SVNE@=~qCxD}+qg8N1^p zFTaine}?tjqy0}VdzeWlx%X-YgZvGJnxnQq;D=tX-|lvJy{L+=H{|n;M(cw2b){@O zWx3=C{El-}(^nPWyLJh9(^-Tbyn$$Ux`P|9SL|=IT<^ZW)!=U0o!#yzkF7)!;p(1@ oY}-?{lBwyArW>v-8@6d0rfb6t#gNTX3Zulq4*i!+aLSDxWB$y)L+q0KC`FrV);0udIM2oCkK=h5^ zOTy-Ib+t`cEFf$xjiullq*x}nPjp}M;IE@v&!H8gKFZkiD?p|VVB*ch_Ci{C^%%V* zrQ3t}r*gEPQj^MiHAPVV#)0Nz-+iDHXEg2)2egzg>b5hX*+!#vP2G}N?)1uq)1F3m zzFzU%Et;;=wHapBG{9Y_Kgf@_CAM=vMuz`7+d{M3QWby>`VvVX)mRL=jyoJV_)7wb X^bY;AI3zLvVGKNR2+&r*!!*DT23T?j diff --git a/test/Driver/Dependencies/Inputs/chained-private-after-fine/other.swift b/test/Driver/Dependencies/Inputs/chained-private-after-fine/other.swift deleted file mode 100644 index fdebaf57ebfb4..0000000000000 --- a/test/Driver/Dependencies/Inputs/chained-private-after-fine/other.swift +++ /dev/null @@ -1,38 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: other.swiftdeps - fingerprint: 72e95f4a11b98227c1f6ad6ea7f6cdba - sequenceNumber: 0 - defsIDependUpon: [ 2 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: other.swiftdeps - fingerprint: 72e95f4a11b98227c1f6ad6ea7f6cdba - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: a - sequenceNumber: 2 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: topLevel - aspect: implementation - context: '' - name: a - sequenceNumber: 3 - defsIDependUpon: [ ] - isProvides: true -... diff --git a/test/Driver/Dependencies/Inputs/chained-private-after-fine/other.swiftdeps b/test/Driver/Dependencies/Inputs/chained-private-after-fine/other.swiftdeps deleted file mode 100644 index 536f71123e364ba2a263dc74c7f297350aab94c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 416 zcmaiuy-&hW6vb~ZAZ1Zw;$9PDc)XTUumutZtl)%+35m0%9}x#JKyW3Mk->qH!J&hr zI(1-Z9u6HC{Y#t~e1z!gaPM%=@0@!Z&8xN`0#E=*3m;Kzk}0DxlC__GV|2=Lwc|57 zLuG0m?9M{s8QfdLqu>d!P5d-(0nJ)ew>hQG`%J_*h0ZnQ$6mvI(+poKASI ze0)ZySRP|ChL^8S)|`F?(!>UYgqTjb@@$hOS7w1U#?lK{=A433u0D}4pfj69Sc>f2 z9Lt-4E-;z$)x|bplQ|}9t}Ft&0Ts#u8e%!*bpF>-spSBLXb3hm{Te89jgSR9V{fz+ z)z=Xb&#`fPwEroj4^zpw@Low_u)pD=#zWg5h(p%vx4RwD$m_DlhGMo}Z(fSNp_QCg zNiDP_amTfE%hxrZxgLRRGL6t98^}(lJGf!Je1F^JvHSkkgMTaDIqi<-He+#wD|;$Z oi@M=6-}Fq)R1LGpJjb;PrlFn|EZxh($ diff --git a/test/Driver/Dependencies/Inputs/chained-private-after-multiple-fine/main.swift b/test/Driver/Dependencies/Inputs/chained-private-after-multiple-fine/main.swift deleted file mode 100644 index 154ad90f112e5..0000000000000 --- a/test/Driver/Dependencies/Inputs/chained-private-after-multiple-fine/main.swift +++ /dev/null @@ -1,62 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: main.swiftdeps - fingerprint: a4e513b4b5693bf6f50d6c0d531b542b - sequenceNumber: 0 - defsIDependUpon: [ 2, 4, 5, 6 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: main.swiftdeps - fingerprint: a4e513b4b5693bf6f50d6c0d531b542b - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: nominal - aspect: interface - context: 4main1bV - name: '' - sequenceNumber: 2 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: nominal - aspect: implementation - context: 4main1bV - name: '' - sequenceNumber: 3 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: z - sequenceNumber: 4 - defsIDependUpon: [ ] - isProvides: false - - key: - kind: topLevel - aspect: interface - context: '' - name: a - sequenceNumber: 5 - defsIDependUpon: [ ] - isProvides: false - - key: - kind: topLevel - aspect: interface - context: '' - name: x - sequenceNumber: 6 - defsIDependUpon: [ ] - isProvides: false -... diff --git a/test/Driver/Dependencies/Inputs/chained-private-after-multiple-fine/main.swiftdeps b/test/Driver/Dependencies/Inputs/chained-private-after-multiple-fine/main.swiftdeps deleted file mode 100644 index 5ceab5eb5fda59542d4ff4c2348047b92701f403..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 456 zcmaiwzfZzI6vtnWUu7Z2=w1?IIIciTX%i9#tl)%+2?;Zlwh1Pp5rd9RWn^$*WMJsv zs7?$F&Eden=wIT@;A@Dk4tFp4e!rjZyIiAr)fPkm1^_AHBixvD%Grj{ou7N-Y|8Vs zlQT9Wg$bb(y!rZc%h{JNPfd)_fUp@ay_huQrMWLph`ivXC1x+mm>5|YbFRgsGLlw(>7LY=~+48TW-ppeZ(Ex31`ZXZi1u*f=#P&i- zdG)AtPW0=;_@{7ukQS4|dp%9i{>B6C$ASAGjh*|^;C3kKMXg{vV=32abuJ}WSB+lZ zP|AH-+UNRO)zwtjv22R0m;t!y4Ti;0RAM`KBh>J}Dv_vK9Z>-2MLC>LI1@=A^_T*^ zileKVRk3uVs#&h#>WXdj6qH!J&hr zI(1-Z9u6HC{Y#t~e1z!gaPM%=@0@!Z&8xN`0#E=*3m;Kzk}0DxlC__GV|2=Lwc|57 zLuG0m?DJ*NBN=fMDE6Wn^$*WN_%< zs7@Ui$l=g|(Z9r*!IuzSz2t6qp5ODlZ?0OqYDjT}C_*SEeJn$pOa%=w*?8$UL8l^9 zK0c!}tWGeQz$;cKYeBy}WoiRLd`xFTd$!3^Xmd}QVC6+)#)1TW+aMmWlu+z oVKQ#Ciw1XdC6;rFrd}vnF0(9F)GeLIFp3=P(0|!T3WmV>0iH#EcK`qY diff --git a/test/Driver/Dependencies/Inputs/chained-private-after-multiple-nominal-members-fine/main.swift b/test/Driver/Dependencies/Inputs/chained-private-after-multiple-nominal-members-fine/main.swift deleted file mode 100644 index b4ed07232136b..0000000000000 --- a/test/Driver/Dependencies/Inputs/chained-private-after-multiple-nominal-members-fine/main.swift +++ /dev/null @@ -1,86 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: main.swiftdeps - fingerprint: d281713b8f6ef5935679e8b3cbe6d5ce - sequenceNumber: 0 - defsIDependUpon: [ 2, 4, 5, 6, 7, 8, 9 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: main.swiftdeps - fingerprint: d281713b8f6ef5935679e8b3cbe6d5ce - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: nominal - aspect: interface - context: 4main1bV - name: '' - sequenceNumber: 2 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: nominal - aspect: implementation - context: 4main1bV - name: '' - sequenceNumber: 3 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: nominal - aspect: interface - context: 4main1aV - name: '' - sequenceNumber: 4 - defsIDependUpon: [ ] - isProvides: false - - key: - kind: nominal - aspect: interface - context: 4main1zV - name: '' - sequenceNumber: 5 - defsIDependUpon: [ ] - isProvides: false - - key: - kind: member - aspect: interface - context: 4main1zV - name: z - sequenceNumber: 6 - defsIDependUpon: [ ] - isProvides: false - - key: - kind: nominal - aspect: interface - context: 4main1xV - name: '' - sequenceNumber: 7 - defsIDependUpon: [ ] - isProvides: false - - key: - kind: member - aspect: interface - context: 4main1aV - name: a - sequenceNumber: 8 - defsIDependUpon: [ ] - isProvides: false - - key: - kind: member - aspect: interface - context: 4main1xV - name: x - sequenceNumber: 9 - defsIDependUpon: [ ] - isProvides: false -... diff --git a/test/Driver/Dependencies/Inputs/chained-private-after-multiple-nominal-members-fine/main.swiftdeps b/test/Driver/Dependencies/Inputs/chained-private-after-multiple-nominal-members-fine/main.swiftdeps deleted file mode 100644 index b43c0bf3f82f1edfac625119f095bf94c8d89b46..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 492 zcmah_J4?e*6h66qq=JZuf@1`c-rmGCjfpKd)M#C-P$+b6o>0LmR;pu(9XmL5bm)-5 zQJpe4l&eFBj{Xwo4xS=DHivu9;d}9M4lA{~kO5!-APUdpiA4vTO$eQZ*+Jh!*G z&xS643D{@?9AjtV^~O^E zp+}_yVw|od--Na0g-lv_DlZVEKkz~Qx)oeWUH`JvI&VwHwyt=7SISnajT0#_G}Cs? ze8H8aFP*EG0$mGy$D`=YECHO^t@d_j9^&~I9mMcnJ9AKT8o#^!XTND=1OR*P$9aP@ zl?GBy1J~4vqI%#49fKNvwh++T$ diff --git a/test/Driver/Dependencies/Inputs/chained-private-after-multiple-nominal-members-fine/other.swift b/test/Driver/Dependencies/Inputs/chained-private-after-multiple-nominal-members-fine/other.swift deleted file mode 100644 index ee50c4b42ca6f..0000000000000 --- a/test/Driver/Dependencies/Inputs/chained-private-after-multiple-nominal-members-fine/other.swift +++ /dev/null @@ -1,38 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: other.swiftdeps - fingerprint: 2221cd1a52ad1f50cba3610cd9d80d45 - sequenceNumber: 0 - defsIDependUpon: [ 2 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: other.swiftdeps - fingerprint: 2221cd1a52ad1f50cba3610cd9d80d45 - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: member - aspect: interface - context: 4main1aV - name: a - sequenceNumber: 2 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: member - aspect: implementation - context: 4main1aV - name: a - sequenceNumber: 3 - defsIDependUpon: [ ] - isProvides: true -... diff --git a/test/Driver/Dependencies/Inputs/chained-private-after-multiple-nominal-members-fine/other.swiftdeps b/test/Driver/Dependencies/Inputs/chained-private-after-multiple-nominal-members-fine/other.swiftdeps deleted file mode 100644 index 89cfe736b46e37529cf08160fadd6f1e4b5d4c4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 428 zcmaiwy-&hW6vb~J0%cKS!d{~>JYGvbphO}AR&c_^goN4B*G5bP0|Zy{WMpt)WN_%< zs7?$FnK&y0u|9v*rMszfWsSrGjTJbgSle7 z4zO~8?7M@VPbs;dkYmz&DS?FjEe2|j&7i0B{Z6;pZYg#qt5LtNq^i~Wl@i!y-u3c^ z<*CY+^Rk5?YX*LUVv&{i0NTALqu>^ZcIYeRK83RZB=BL=i#>;bR$@WXfrT$;QvVaXRI> z>hT$!VR?ed1YW*6S#$d3OH&gN5@0&x%Ckw9T$%gQ1WPYm2{{F&T7M#ePv<6yuoRiO z5X&2%E-;z#)x|bpk`R+MR~A0qfC^s|db8Orm?SBgC!&EXZyw_3~>~FZJ_0aK#;>hg}I=!xFY>|WkD>z|dLgH*`dl3gU)Zj|ajtmZr3=SO} z)u{smIUG7L`jh) z{KI*b8mkyA==wxvb6Wsj-wm%y;i|^#SUG==+=%*v+5blc6~c= QtIYQNuAABXA1BYiH}PkBVgLXD diff --git a/test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps-fine/main.swift b/test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps-fine/main.swift deleted file mode 100644 index 75f41afc9a28c..0000000000000 --- a/test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps-fine/main.swift +++ /dev/null @@ -1,30 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: main.swiftdeps - fingerprint: 72e95f4a11b98227c1f6ad6ea7f6cdba - sequenceNumber: 0 - defsIDependUpon: [ 2 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: main.swiftdeps - fingerprint: 72e95f4a11b98227c1f6ad6ea7f6cdba - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: a - sequenceNumber: 2 - defsIDependUpon: [ 0 ] - isProvides: false -... diff --git a/test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps-fine/main.swiftdeps b/test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps-fine/main.swiftdeps deleted file mode 100644 index 90c08952efcd808f61a5907c938fc769594617d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 392 zcma)$F;Bu!6oqe}g0K){;{HsG;qh8Zi!G8cU%+XqOcfz&rjP%(q5B@SJ~=v0qPv*H=Tc6~c= QE5i2tj+@H;kHa(Y4a|pm^#A|> diff --git a/test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps-fine/other.swift b/test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps-fine/other.swift deleted file mode 100644 index 70e509c947cbd..0000000000000 --- a/test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps-fine/other.swift +++ /dev/null @@ -1,30 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: other.swiftdeps - fingerprint: 72e95f4a11b98227c1f6ad6ea7f6cdba - sequenceNumber: 0 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: other.swiftdeps - fingerprint: 72e95f4a11b98227c1f6ad6ea7f6cdba - sequenceNumber: 1 - defsIDependUpon: [ 2 ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: a - sequenceNumber: 2 - defsIDependUpon: [ 0 ] - isProvides: false -... diff --git a/test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps-fine/other.swiftdeps b/test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps-fine/other.swiftdeps deleted file mode 100644 index 9f9f8bff887d6da1f70862f2c4888dea839418b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 392 zcma)$u}{K46vkgqL0Ht7xSxqJ9M@7>Y>|WkD>z|dLgH*`dl3gQl;BEEMg|8)28Rxg z>ePXO91a~A{Y#t~JYsZqcyIW=-}k*&Z(O#N3;+dyE#-ZlIAknng2;;JUIiVCeD&~@ zPLMW2WF)s(94!U?r<+bD>YUIzsBR&|^WRQmsFdh|{S<5~LM&9Y}O+x6|h QEi>Em+iq(6f1Er6-}n7`a{vGU diff --git a/test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps-fine/output.json b/test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps-fine/output.json deleted file mode 100644 index 55ef51f19bb04..0000000000000 --- a/test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps-fine/output.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "./main.swift": { - "object": "./main.o", - "swift-dependencies": "./main.swiftdeps" - }, - "./crash.swift": { - "object": "./crash.o", - "swift-dependencies": "./crash.swiftdeps" - }, - "./other.swift": { - "object": "./other.o", - "swift-dependencies": "./other.swiftdeps" - }, - "": { - "swift-dependencies": "./main~buildrecord.swiftdeps" - } -} diff --git a/test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps/crash.swift b/test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps/crash.swift deleted file mode 100644 index 7e7daa298c540..0000000000000 --- a/test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps/crash.swift +++ /dev/null @@ -1,2 +0,0 @@ -# Dependencies after compilation: -provides-top-level: [a] diff --git a/test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps/crash.swiftdeps b/test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps/crash.swiftdeps deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps/main.swift b/test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps/main.swift deleted file mode 100644 index c6dd8d475b207..0000000000000 --- a/test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps/main.swift +++ /dev/null @@ -1,2 +0,0 @@ -# Dependencies after compilation: -depends-top-level: [a] diff --git a/test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps/main.swiftdeps b/test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps/main.swiftdeps deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps/other.swift b/test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps/other.swift deleted file mode 100644 index 33392ce138612..0000000000000 --- a/test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps/other.swift +++ /dev/null @@ -1,2 +0,0 @@ -# Dependencies after compilation: -depends-top-level: [!private a] diff --git a/test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps/other.swiftdeps b/test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps/other.swiftdeps deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps/output.json b/test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps/output.json deleted file mode 100644 index 55ef51f19bb04..0000000000000 --- a/test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps/output.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "./main.swift": { - "object": "./main.o", - "swift-dependencies": "./main.swiftdeps" - }, - "./crash.swift": { - "object": "./crash.o", - "swift-dependencies": "./crash.swiftdeps" - }, - "./other.swift": { - "object": "./other.o", - "swift-dependencies": "./other.swiftdeps" - }, - "": { - "swift-dependencies": "./main~buildrecord.swiftdeps" - } -} diff --git a/test/Driver/Dependencies/Inputs/fail-chained-fine/a.swift b/test/Driver/Dependencies/Inputs/fail-chained-fine/a.swift deleted file mode 100644 index 1b37c49d62fb4..0000000000000 --- a/test/Driver/Dependencies/Inputs/fail-chained-fine/a.swift +++ /dev/null @@ -1,38 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: a.swiftdeps - fingerprint: 72e95f4a11b98227c1f6ad6ea7f6cdba - sequenceNumber: 0 - defsIDependUpon: [ 2 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: a.swiftdeps - fingerprint: 72e95f4a11b98227c1f6ad6ea7f6cdba - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: a - sequenceNumber: 2 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: topLevel - aspect: implementation - context: '' - name: a - sequenceNumber: 3 - defsIDependUpon: [ ] - isProvides: true -... diff --git a/test/Driver/Dependencies/Inputs/fail-chained-fine/b.swift b/test/Driver/Dependencies/Inputs/fail-chained-fine/b.swift deleted file mode 100644 index 94b97c820e1c0..0000000000000 --- a/test/Driver/Dependencies/Inputs/fail-chained-fine/b.swift +++ /dev/null @@ -1,38 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: b.swiftdeps - fingerprint: 72e95f4a11b98227c1f6ad6ea7f6cdba - sequenceNumber: 0 - defsIDependUpon: [ 2 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: b.swiftdeps - fingerprint: 72e95f4a11b98227c1f6ad6ea7f6cdba - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: b - sequenceNumber: 2 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: topLevel - aspect: implementation - context: '' - name: b - sequenceNumber: 3 - defsIDependUpon: [ ] - isProvides: true -... diff --git a/test/Driver/Dependencies/Inputs/fail-chained-fine/bad.swift b/test/Driver/Dependencies/Inputs/fail-chained-fine/bad.swift deleted file mode 100644 index fb8ba5df522e9..0000000000000 --- a/test/Driver/Dependencies/Inputs/fail-chained-fine/bad.swift +++ /dev/null @@ -1,54 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: bad.swiftdeps - fingerprint: 72e95f4a11b98227c1f6ad6ea7f6cdba - sequenceNumber: 0 - defsIDependUpon: [ 2, 4 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: bad.swiftdeps - fingerprint: 72e95f4a11b98227c1f6ad6ea7f6cdba - sequenceNumber: 1 - defsIDependUpon: [ 5 ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: bad - sequenceNumber: 2 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: topLevel - aspect: implementation - context: '' - name: bad - sequenceNumber: 3 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: a - sequenceNumber: 4 - defsIDependUpon: [ ] - isProvides: false - - key: - kind: topLevel - aspect: interface - context: '' - name: b - sequenceNumber: 5 - defsIDependUpon: [ ] - isProvides: false -... diff --git a/test/Driver/Dependencies/Inputs/fail-chained-fine/c.swift b/test/Driver/Dependencies/Inputs/fail-chained-fine/c.swift deleted file mode 100644 index 191523e36ae3f..0000000000000 --- a/test/Driver/Dependencies/Inputs/fail-chained-fine/c.swift +++ /dev/null @@ -1,46 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: c.swiftdeps - fingerprint: 72e95f4a11b98227c1f6ad6ea7f6cdba - sequenceNumber: 0 - defsIDependUpon: [ 2, 4 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: c.swiftdeps - fingerprint: 72e95f4a11b98227c1f6ad6ea7f6cdba - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: c - sequenceNumber: 2 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: topLevel - aspect: implementation - context: '' - name: c - sequenceNumber: 3 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: implementation - context: '' - name: bad - sequenceNumber: 4 - defsIDependUpon: [ ] - isProvides: false -... diff --git a/test/Driver/Dependencies/Inputs/fail-chained-fine/d.swift b/test/Driver/Dependencies/Inputs/fail-chained-fine/d.swift deleted file mode 100644 index 5e83dd44702fc..0000000000000 --- a/test/Driver/Dependencies/Inputs/fail-chained-fine/d.swift +++ /dev/null @@ -1,46 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: d.swiftdeps - fingerprint: 72e95f4a11b98227c1f6ad6ea7f6cdba - sequenceNumber: 0 - defsIDependUpon: [ 2, 4 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: d.swiftdeps - fingerprint: 72e95f4a11b98227c1f6ad6ea7f6cdba - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: d - sequenceNumber: 2 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: topLevel - aspect: implementation - context: '' - name: d - sequenceNumber: 3 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: implementation - context: '' - name: c - sequenceNumber: 4 - defsIDependUpon: [ ] - isProvides: false -... diff --git a/test/Driver/Dependencies/Inputs/fail-chained-fine/e.swift b/test/Driver/Dependencies/Inputs/fail-chained-fine/e.swift deleted file mode 100644 index d869269a08cc9..0000000000000 --- a/test/Driver/Dependencies/Inputs/fail-chained-fine/e.swift +++ /dev/null @@ -1,46 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: e.swiftdeps - fingerprint: 72e95f4a11b98227c1f6ad6ea7f6cdba - sequenceNumber: 0 - defsIDependUpon: [ 2 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: e.swiftdeps - fingerprint: 72e95f4a11b98227c1f6ad6ea7f6cdba - sequenceNumber: 1 - defsIDependUpon: [ 4 ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: e - sequenceNumber: 2 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: topLevel - aspect: implementation - context: '' - name: e - sequenceNumber: 3 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: implementation - context: '' - name: bad - sequenceNumber: 4 - defsIDependUpon: [ ] - isProvides: false -... diff --git a/test/Driver/Dependencies/Inputs/fail-chained-fine/f.swift b/test/Driver/Dependencies/Inputs/fail-chained-fine/f.swift deleted file mode 100644 index 9aef8fa8d69bb..0000000000000 --- a/test/Driver/Dependencies/Inputs/fail-chained-fine/f.swift +++ /dev/null @@ -1,46 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: f.swiftdeps - fingerprint: 72e95f4a11b98227c1f6ad6ea7f6cdba - sequenceNumber: 0 - defsIDependUpon: [ 2, 4 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: f.swiftdeps - fingerprint: 72e95f4a11b98227c1f6ad6ea7f6cdba - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: f - sequenceNumber: 2 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: topLevel - aspect: implementation - context: '' - name: f - sequenceNumber: 3 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: implementation - context: '' - name: e - sequenceNumber: 4 - defsIDependUpon: [ ] - isProvides: false -... diff --git a/test/Driver/Dependencies/Inputs/fail-chained-fine/output.json b/test/Driver/Dependencies/Inputs/fail-chained-fine/output.json deleted file mode 100644 index 438752aa2616a..0000000000000 --- a/test/Driver/Dependencies/Inputs/fail-chained-fine/output.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "./a.swift": { - "object": "./a.o", - "swift-dependencies": "./a.swiftdeps" - }, - "./b.swift": { - "object": "./b.o", - "swift-dependencies": "./b.swiftdeps" - }, - "./c.swift": { - "object": "./c.o", - "swift-dependencies": "./c.swiftdeps" - }, - "./d.swift": { - "object": "./d.o", - "swift-dependencies": "./d.swiftdeps" - }, - "./e.swift": { - "object": "./e.o", - "swift-dependencies": "./e.swiftdeps" - }, - "./f.swift": { - "object": "./f.o", - "swift-dependencies": "./f.swiftdeps" - }, - "./bad.swift": { - "object": "./bad.o", - "swift-dependencies": "./bad.swiftdeps" - }, - "": { - "swift-dependencies": "./main~buildrecord.swiftdeps" - } -} diff --git a/test/Driver/Dependencies/Inputs/fail-interface-hash-fine/bad.swift b/test/Driver/Dependencies/Inputs/fail-interface-hash-fine/bad.swift deleted file mode 100644 index 69b4df42447fe..0000000000000 --- a/test/Driver/Dependencies/Inputs/fail-interface-hash-fine/bad.swift +++ /dev/null @@ -1,39 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: bad.swiftdeps - fingerprint: after - sequenceNumber: 0 - defsIDependUpon: [ 2 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: bad.swiftdeps - fingerprint: after - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: bad - sequenceNumber: 2 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: topLevel - aspect: implementation - context: '' - name: bad - sequenceNumber: 3 - defsIDependUpon: [ ] - isProvides: true -... - diff --git a/test/Driver/Dependencies/Inputs/fail-interface-hash-fine/bad.swiftdeps b/test/Driver/Dependencies/Inputs/fail-interface-hash-fine/bad.swiftdeps deleted file mode 100644 index 36923733d1d0f303fa6512e9086ef7c7309191ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmX|-zfZzY5XY}qKo~T}#Qm8V!{fCSB#@XeU&X-Kb9kFb)d2_|Qa z(wSE(dTz(zluhpfblOgSxbAS=hvAy(e+-f-z?!Z@$MyOHm;Q&4+}ofnO9CV!9ehjx HGRpn}`#)|0 diff --git a/test/Driver/Dependencies/Inputs/fail-interface-hash-fine/depends-on-bad.swift b/test/Driver/Dependencies/Inputs/fail-interface-hash-fine/depends-on-bad.swift deleted file mode 100644 index dcabfbb17b9c0..0000000000000 --- a/test/Driver/Dependencies/Inputs/fail-interface-hash-fine/depends-on-bad.swift +++ /dev/null @@ -1,31 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: dependsonbad.swiftdeps - fingerprint: after - sequenceNumber: 0 - defsIDependUpon: [ 2 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: dependsonbad.swiftdeps - fingerprint: after - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: bad - sequenceNumber: 2 - defsIDependUpon: [ ] - isProvides: false -... - diff --git a/test/Driver/Dependencies/Inputs/fail-interface-hash-fine/depends-on-bad.swiftdeps b/test/Driver/Dependencies/Inputs/fail-interface-hash-fine/depends-on-bad.swiftdeps deleted file mode 100644 index e44dcd06e5153d06e9b4950503a6de1927613f23..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmX|-zfZzI7>2)o{16snOmsdIV>qs*Ac4e$0V_CRVnX69&})JN7;11OCnJLcBZET+ zM|JAJKn{lvjQ%Cg41R>ja5p^f`#!l`t$y1yQUC$~_KdGZZ5UsTm zbL3OKyxuGv9wJ|9d#=QqD9Mxv&bfEd%^`6*J4*YJv$4a@P<;o$;G#Ym|%qtbjtxh?A-Z9y> z*C}3j#eyf>E~jnk7{HZ}vgi8!Uc2Sy{Edu=Pgx9r5G0a-)mRML((4Z-{UbtRe~Wf3 J0T3r0`~jF1a9;ob diff --git a/test/Driver/Dependencies/Inputs/fail-interface-hash-fine/depends-on-main.swift b/test/Driver/Dependencies/Inputs/fail-interface-hash-fine/depends-on-main.swift deleted file mode 100644 index db1727b5dea2f..0000000000000 --- a/test/Driver/Dependencies/Inputs/fail-interface-hash-fine/depends-on-main.swift +++ /dev/null @@ -1,30 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: dependsonmain.swiftdeps - fingerprint: after - sequenceNumber: 0 - defsIDependUpon: [ 2 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: dependsonmain.swiftdeps - fingerprint: after - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: main - sequenceNumber: 2 - defsIDependUpon: [ ] - isProvides: false -... diff --git a/test/Driver/Dependencies/Inputs/fail-interface-hash-fine/depends-on-main.swiftdeps b/test/Driver/Dependencies/Inputs/fail-interface-hash-fine/depends-on-main.swiftdeps deleted file mode 100644 index 8a8b4845d6453a4e5e46221f42cd3b78c40beba2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmX|-ze@sP7{{M`)H;`lAX?ub!q@lC(?lU~uuGc^0--te?!cfkys%Z?932`Q9U5+E ztfm_rNibI2M_?Tt9{L5n~#-G@9-^2i>(%CSWlg0qLgP(YkrG5IwHF>rF|~P&Mr>yzG*?p0 zkWbX&YMroognX&2nG`FcR3=4;W~fB8?WoqXWTj|GGBy1RaC`?~(9P%!=Pds|?`WUZG?M&F1I_2I_rwNnKj`*+R>~Dk#~rXtqj7u9yi%du>Xh?m9fNIr zo#MGyEO>6);gr>n037$x^_`&SKeW1jE?Bn_3P4W+tWjzQu$o9f+x2>Vm;Q*5+S{Nl JO97A@;19}zaa{la diff --git a/test/Driver/Dependencies/Inputs/fail-interface-hash-fine/main.swift b/test/Driver/Dependencies/Inputs/fail-interface-hash-fine/main.swift deleted file mode 100644 index 7bcdbac8e03e5..0000000000000 --- a/test/Driver/Dependencies/Inputs/fail-interface-hash-fine/main.swift +++ /dev/null @@ -1,39 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: main.swiftdeps - fingerprint: after - sequenceNumber: 0 - defsIDependUpon: [ 2 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: main.swiftdeps - fingerprint: after - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: main - sequenceNumber: 2 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: topLevel - aspect: implementation - context: '' - name: main - sequenceNumber: 3 - defsIDependUpon: [ ] - isProvides: true -... - diff --git a/test/Driver/Dependencies/Inputs/fail-interface-hash-fine/main.swiftdeps b/test/Driver/Dependencies/Inputs/fail-interface-hash-fine/main.swiftdeps deleted file mode 100644 index dad602b6f208f13817c9a1b9968359373b658a2b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmX|-F;Buk7>2)o6oiEs6ZbPQhT~ca5=cxKu!0jNCM3=RZ4*oc0|r)dGBP+YGB|W_ zRHqIM&Ee32(O=@s;75oIcf<3(?~}{b>bFfT2_OLAK>G?Ko6nSpkZ)w>Ly4KnR!%R) z9L*{6Dcx#ywpQXt8Z(YB$L8N(^n$cJF4|8RcY!|Os4+;PVNB=dNVqckmcVeoLyn* z;Yk11jt^7Gg!WlYA;rIRpgHb(&urulhTVRTm2ySXaYroEXx!Z}uT&_vI_3O%$6&i& zr+DEN3!d9{IBk<@fX7z1mm6*+j{7turterh0a%U2pzV77flL2~5Kr&Wp2Y$5Fa{IU I0U7!J05&0R{{R30 diff --git a/test/Driver/Dependencies/Inputs/fail-interface-hash-fine/output.json b/test/Driver/Dependencies/Inputs/fail-interface-hash-fine/output.json deleted file mode 100644 index 981629c77c49e..0000000000000 --- a/test/Driver/Dependencies/Inputs/fail-interface-hash-fine/output.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "./main.swift": { - "object": "./main.o", - "swift-dependencies": "./main.swiftdeps" - }, - "./bad.swift": { - "object": "./bad.o", - "swift-dependencies": "./bad.swiftdeps" - }, - "./depends-on-main.swift": { - "object": "./depends-on-main.o", - "swift-dependencies": "./depends-on-main.swiftdeps" - }, - "./depends-on-bad.swift": { - "object": "./depends-on-bad.o", - "swift-dependencies": "./depends-on-bad.swiftdeps" - }, - "": { - "swift-dependencies": "./main~buildrecord.swiftdeps" - } -} diff --git a/test/Driver/Dependencies/Inputs/fail-simple-fine/bad.swift b/test/Driver/Dependencies/Inputs/fail-simple-fine/bad.swift deleted file mode 100644 index f3494a74be563..0000000000000 --- a/test/Driver/Dependencies/Inputs/fail-simple-fine/bad.swift +++ /dev/null @@ -1,38 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: bad.swiftdeps - fingerprint: 72e95f4a11b98227c1f6ad6ea7f6cdba - sequenceNumber: 0 - defsIDependUpon: [ 2 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: bad.swiftdeps - fingerprint: 72e95f4a11b98227c1f6ad6ea7f6cdba - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: a - sequenceNumber: 2 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: topLevel - aspect: implementation - context: '' - name: a - sequenceNumber: 3 - defsIDependUpon: [ ] - isProvides: true -... diff --git a/test/Driver/Dependencies/Inputs/fail-simple-fine/main.swift b/test/Driver/Dependencies/Inputs/fail-simple-fine/main.swift deleted file mode 100644 index 75f41afc9a28c..0000000000000 --- a/test/Driver/Dependencies/Inputs/fail-simple-fine/main.swift +++ /dev/null @@ -1,30 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: main.swiftdeps - fingerprint: 72e95f4a11b98227c1f6ad6ea7f6cdba - sequenceNumber: 0 - defsIDependUpon: [ 2 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: main.swiftdeps - fingerprint: 72e95f4a11b98227c1f6ad6ea7f6cdba - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: a - sequenceNumber: 2 - defsIDependUpon: [ 0 ] - isProvides: false -... diff --git a/test/Driver/Dependencies/Inputs/fail-simple-fine/other.swift b/test/Driver/Dependencies/Inputs/fail-simple-fine/other.swift deleted file mode 100644 index ddc5106f05d1c..0000000000000 --- a/test/Driver/Dependencies/Inputs/fail-simple-fine/other.swift +++ /dev/null @@ -1,30 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: other.swiftdeps - fingerprint: 72e95f4a11b98227c1f6ad6ea7f6cdba - sequenceNumber: 0 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: other.swiftdeps - fingerprint: 72e95f4a11b98227c1f6ad6ea7f6cdba - sequenceNumber: 1 - defsIDependUpon: [ 2 ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: a - sequenceNumber: 2 - defsIDependUpon: [ 0 ] - isProvides: false -... diff --git a/test/Driver/Dependencies/Inputs/fail-simple-fine/output.json b/test/Driver/Dependencies/Inputs/fail-simple-fine/output.json deleted file mode 100644 index 32ad1dd72d6f7..0000000000000 --- a/test/Driver/Dependencies/Inputs/fail-simple-fine/output.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "./main.swift": { - "object": "./main.o", - "swift-dependencies": "./main.swiftdeps" - }, - "./bad.swift": { - "object": "./bad.o", - "swift-dependencies": "./bad.swiftdeps" - }, - "./other.swift": { - "object": "./other.o", - "swift-dependencies": "./other.swiftdeps" - }, - "": { - "swift-dependencies": "./main~buildrecord.swiftdeps" - } -} diff --git a/test/Driver/Dependencies/Inputs/fail-with-bad-deps-fine/bad.swift b/test/Driver/Dependencies/Inputs/fail-with-bad-deps-fine/bad.swift deleted file mode 100644 index b262c5c8ce0ac..0000000000000 --- a/test/Driver/Dependencies/Inputs/fail-with-bad-deps-fine/bad.swift +++ /dev/null @@ -1,55 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: './bad.swiftdeps' - fingerprint: after - sequenceNumber: 0 - defsIDependUpon: [ 2, 5, 4 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: './bad.swiftdeps' - fingerprint: after - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: bad - sequenceNumber: 2 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: topLevel - aspect: implementation - context: '' - name: bad - sequenceNumber: 3 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: FloatLiteralType - sequenceNumber: 4 - defsIDependUpon: [ ] - isProvides: false - - key: - kind: topLevel - aspect: interface - context: '' - name: IntegerLiteralType - sequenceNumber: 5 - defsIDependUpon: [ ] - isProvides: false -garbage: "" -... diff --git a/test/Driver/Dependencies/Inputs/fail-with-bad-deps-fine/bad.swiftdeps b/test/Driver/Dependencies/Inputs/fail-with-bad-deps-fine/bad.swiftdeps deleted file mode 100644 index e0e7e8c8d00024ec21d6ca40ce6928d7b427981c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 424 zcmYk2ze_?<6vw~ssQFw~{lVcBiYKR<4sZZr?Pa#G*+B9Iv85M#l6)ZJxvc{} zq(q-sUu`+xev|y&GY7V^FrWBPS`RjxNo(YpeKN<=nntwZ5C$ zshh@+ub$a+Gig`U9Hz4R8j!SVRVUf`YH>uX13dsJ0zC?puA0?uxzQEv>ebm@OX%ys z(REi`i1t4UgjPWLKmax2Hrqn|I*4!xVM1v2TlnQ6AUF%4M?p|ULr)v4BQ)R>q#%8~ diff --git a/test/Driver/Dependencies/Inputs/fail-with-bad-deps-fine/depends-on-bad.swift b/test/Driver/Dependencies/Inputs/fail-with-bad-deps-fine/depends-on-bad.swift deleted file mode 100644 index 3e02521f45483..0000000000000 --- a/test/Driver/Dependencies/Inputs/fail-with-bad-deps-fine/depends-on-bad.swift +++ /dev/null @@ -1,46 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: './depends-on-bad.swiftdeps' - fingerprint: after - sequenceNumber: 0 - defsIDependUpon: [ 2, 4 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: './depends-on-bad.swiftdeps' - fingerprint: after - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: DB - sequenceNumber: 2 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: topLevel - aspect: implementation - context: '' - name: DB - sequenceNumber: 3 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: bad - sequenceNumber: 4 - defsIDependUpon: [ ] - isProvides: false -... diff --git a/test/Driver/Dependencies/Inputs/fail-with-bad-deps-fine/depends-on-bad.swiftdeps b/test/Driver/Dependencies/Inputs/fail-with-bad-deps-fine/depends-on-bad.swiftdeps deleted file mode 100644 index 277862cfd4eeb55420c1993481fd3859b22aff4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 396 zcmX|-y-&hW6vc0E%hzIziHlQBjN$QG3O10KFkl5IOiW0e`DmNq0EQY|o65-Gz{udx z!BL$$FfC-Ji8E9GjpUoD;W zHFf9fo9C`scAcKhD4RV3C>pkN?+k5E9}V?h*DiY7Lef0qG^JtDD+3UMR2r}@%g}S& f(b%CsRUm_q+S{q*`PEYZN-Tqq3SdV9U!qw*`GRxl diff --git a/test/Driver/Dependencies/Inputs/fail-with-bad-deps-fine/depends-on-main.swift b/test/Driver/Dependencies/Inputs/fail-with-bad-deps-fine/depends-on-main.swift deleted file mode 100644 index 59102cef0a1af..0000000000000 --- a/test/Driver/Dependencies/Inputs/fail-with-bad-deps-fine/depends-on-main.swift +++ /dev/null @@ -1,46 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: './depends-on-main.swiftdeps' - fingerprint: after - sequenceNumber: 0 - defsIDependUpon: [ 2, 4 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: './depends-on-main.swiftdeps' - fingerprint: after - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: M - sequenceNumber: 2 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: topLevel - aspect: implementation - context: '' - name: M - sequenceNumber: 3 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: main - sequenceNumber: 4 - defsIDependUpon: [ ] - isProvides: false -... diff --git a/test/Driver/Dependencies/Inputs/fail-with-bad-deps-fine/depends-on-main.swiftdeps b/test/Driver/Dependencies/Inputs/fail-with-bad-deps-fine/depends-on-main.swiftdeps deleted file mode 100644 index 78cf6d458111446f89aa30a684e0fc6b248fa239..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 396 zcmX|-zfZzI7>2)o6ex=^CQdFjF^1z>3KB?67_fp9Bqk)z{AinCA{c6LZ7L&!10#b& z2S;^cU}z494vhXK&J2DHk>PH5-uHcSxq9QaEhzvT0MgP|7@2G)c!X^0XFmj=iCp#U ziqBD>BAe1J*5@0+e|&9bQiTP`=fZe3StyK!uT4>V6UI_-BGvi}3w*vXS%g|-=9Z{$ zeZE3A7wemNVX`H%jWAX|-x4L6&jZv0!IyhSt&yWDO#_O_^dG=!2cSf6M#~G;!n?=R zYb@U%$=}lPVMa+wpS289{7VPg&jaU4o!Db{FdC}md`Y+LiJEOT?^>!;E>^nzO5vif zsk>gkbm^3ej@`2uZIu&%ykXgo_RwsiWD2mBNI=ha eMq``)RE9J{@?b|{&yxUhm;euDz>WkSY2Xhp$#ks% diff --git a/test/Driver/Dependencies/Inputs/fail-with-bad-deps-fine/main.swift b/test/Driver/Dependencies/Inputs/fail-with-bad-deps-fine/main.swift deleted file mode 100644 index 59102cef0a1af..0000000000000 --- a/test/Driver/Dependencies/Inputs/fail-with-bad-deps-fine/main.swift +++ /dev/null @@ -1,46 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: './depends-on-main.swiftdeps' - fingerprint: after - sequenceNumber: 0 - defsIDependUpon: [ 2, 4 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: './depends-on-main.swiftdeps' - fingerprint: after - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: M - sequenceNumber: 2 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: topLevel - aspect: implementation - context: '' - name: M - sequenceNumber: 3 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: main - sequenceNumber: 4 - defsIDependUpon: [ ] - isProvides: false -... diff --git a/test/Driver/Dependencies/Inputs/fail-with-bad-deps-fine/main.swiftdeps b/test/Driver/Dependencies/Inputs/fail-with-bad-deps-fine/main.swiftdeps deleted file mode 100644 index 898b323f45903e3bd5c10f993e41d7bfa89fbd48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 424 zcmYk0ze@sP7{{M`Jo8*ag!T&}e0@((6NSRTE)@cUz-aczy%&b5oMN=e<>=7h=-_Ze zV>R92Ag>J$j{POg4!tHu!}AQE?+?ED!gX0v04M+iq>uU1AR|tfNY+l|jnfg2W{=M4 z7-K^uL-G0Ic*W_Lqm2w5D&?U>obS01r=oubus30>iu=(3Q=JdQCG;KX(zy81>j6}~Gl`SB zrfz-p)Txz9TC8RgkySzfas8p%XvMpm8k2RpiVUzJN*Lg>)nj+eE;V}0t~PI;I&7OM xHrv(SKkDBD%=vs!V^-T1o&Z8XhJYXZ`@h1D`vK&+4+ba$RwNimQ!zpU_yG)?e!2hv diff --git a/test/Driver/Dependencies/Inputs/fail-with-bad-deps-fine/output.json b/test/Driver/Dependencies/Inputs/fail-with-bad-deps-fine/output.json deleted file mode 100644 index 981629c77c49e..0000000000000 --- a/test/Driver/Dependencies/Inputs/fail-with-bad-deps-fine/output.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "./main.swift": { - "object": "./main.o", - "swift-dependencies": "./main.swiftdeps" - }, - "./bad.swift": { - "object": "./bad.o", - "swift-dependencies": "./bad.swiftdeps" - }, - "./depends-on-main.swift": { - "object": "./depends-on-main.o", - "swift-dependencies": "./depends-on-main.swiftdeps" - }, - "./depends-on-bad.swift": { - "object": "./depends-on-bad.o", - "swift-dependencies": "./depends-on-bad.swiftdeps" - }, - "": { - "swift-dependencies": "./main~buildrecord.swiftdeps" - } -} diff --git a/test/Driver/Dependencies/Inputs/fake-build-for-bitcode.py b/test/Driver/Dependencies/Inputs/fake-build-for-bitcode.py deleted file mode 100755 index 327f09e649dab..0000000000000 --- a/test/Driver/Dependencies/Inputs/fake-build-for-bitcode.py +++ /dev/null @@ -1,39 +0,0 @@ -#!/usr/bin/env python -# fake-build-for-bitcode.py - Fake build with -embed-bitcode -*- python -*- -# -# This source file is part of the Swift.org open source project -# -# Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors -# Licensed under Apache License v2.0 with Runtime Library Exception -# -# See https://swift.org/LICENSE.txt for license information -# See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -# -# ---------------------------------------------------------------------------- -# -# Emulates the frontend of an -embed-bitcode job. That means we have to handle -# -emit-bc and -c actions. -# -# ---------------------------------------------------------------------------- - -from __future__ import print_function - -import os -import sys - -assert sys.argv[1] == '-frontend' - -primaryFile = sys.argv[sys.argv.index('-primary-file') + 1] -outputFile = sys.argv[sys.argv.index('-o') + 1] - -# Update the output file mtime, or create it if necessary. -# From http://stackoverflow.com/a/1160227. -with open(outputFile, 'a'): - os.utime(outputFile, None) - -if '-emit-bc' in sys.argv: - print("Handled", os.path.basename(primaryFile)) -elif '-c' in sys.argv: - print("Produced", os.path.basename(outputFile)) -else: - assert False, "unknown action" diff --git a/test/Driver/Dependencies/Inputs/fake-build-whole-module.py b/test/Driver/Dependencies/Inputs/fake-build-whole-module.py deleted file mode 100755 index 4df1fbcec498f..0000000000000 --- a/test/Driver/Dependencies/Inputs/fake-build-whole-module.py +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/env python -# fake-build-for-whole-module.py - Optimized fake build -*- python -*- -# -# This source file is part of the Swift.org open source project -# -# Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors -# Licensed under Apache License v2.0 with Runtime Library Exception -# -# See https://swift.org/LICENSE.txt for license information -# See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -# -# ---------------------------------------------------------------------------- -# -# Emulates the frontend of a -whole-module-optimization compilation. -# -# ---------------------------------------------------------------------------- - -from __future__ import print_function - -import os -import sys - -assert sys.argv[1] == '-frontend' -assert '-primary-file' not in sys.argv - -outputFile = sys.argv[sys.argv.index('-o') + 1] - -# Update the output file mtime, or create it if necessary. -# From http://stackoverflow.com/a/1160227. -with open(outputFile, 'a'): - os.utime(outputFile, None) - -print("Produced", os.path.basename(outputFile)) diff --git a/test/Driver/Dependencies/Inputs/independent-fine/main.swift b/test/Driver/Dependencies/Inputs/independent-fine/main.swift deleted file mode 100644 index 9143f163412ce..0000000000000 --- a/test/Driver/Dependencies/Inputs/independent-fine/main.swift +++ /dev/null @@ -1,22 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: main.swiftdeps - fingerprint: d41d8cd98f00b204e9800998ecf8427e - sequenceNumber: 0 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: main.swiftdeps - fingerprint: d41d8cd98f00b204e9800998ecf8427e - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true -... diff --git a/test/Driver/Dependencies/Inputs/independent-fine/other.swift b/test/Driver/Dependencies/Inputs/independent-fine/other.swift deleted file mode 100644 index 3d9348aa25859..0000000000000 --- a/test/Driver/Dependencies/Inputs/independent-fine/other.swift +++ /dev/null @@ -1,22 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: other.swiftdeps - fingerprint: d41d8cd98f00b204e9800998ecf8427e - sequenceNumber: 0 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: other.swiftdeps - fingerprint: d41d8cd98f00b204e9800998ecf8427e - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true -... diff --git a/test/Driver/Dependencies/Inputs/independent-fine/output.json b/test/Driver/Dependencies/Inputs/independent-fine/output.json deleted file mode 100644 index f847af2da52ff..0000000000000 --- a/test/Driver/Dependencies/Inputs/independent-fine/output.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "./main.swift": { - "object": "./main.o", - "swift-dependencies": "./main.swiftdeps" - }, - "./other.swift": { - "object": "./other.o", - "swift-dependencies": "./other.swiftdeps" - }, - "": { - "swift-dependencies": "./main~buildrecord.swiftdeps" - } -} diff --git a/test/Driver/Dependencies/Inputs/malformed-after-fine/main.swift b/test/Driver/Dependencies/Inputs/malformed-after-fine/main.swift deleted file mode 100644 index a9561fcf725d2..0000000000000 --- a/test/Driver/Dependencies/Inputs/malformed-after-fine/main.swift +++ /dev/null @@ -1,30 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: main.swiftdeps - fingerprint: ec443bb982c3a06a433bdd47b85eeba2 - sequenceNumber: 0 - defsIDependUpon: [ 2 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: main.swiftdeps - fingerprint: ec443bb982c3a06a433bdd47b85eeba2 - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: a - sequenceNumber: 2 - defsIDependUpon: [ ] - isProvides: false -... diff --git a/test/Driver/Dependencies/Inputs/malformed-after-fine/main.swiftdeps b/test/Driver/Dependencies/Inputs/malformed-after-fine/main.swiftdeps deleted file mode 100644 index db076f86e69f651c79d76b99391c6b075cd8bd03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 408 zcmaiuJ5Rz;7>2(dxh}+*xYxuO4yUDsUW9}JD>z|dLgH+%2_~WugDa_w3=WJ84jmlT zsRIK!ICNn2mpC){5u&TZIm7!t?~||9zUT@$00sbA;bW0lbi!Fe=sGOEaW>(l#^DK@ z5_wGM7=OMzT5Ni8;fh(R!j$$YvHzh?H2Rn8@pp z%?X|I<=JLo(U{N`SLPvGV~VnnMMRD`i~k(Wb_r3OMp&ciw}68y026N}-e@7JuOlj+ z661O=^(pM{=5rb0y_qLif8&GhV=s6RhyMMbciR_@vL<`}P%L&jm*-+&R7~47)v7Cr zTh7($fmR88$D_E-6##DRUcWrpNId^;fSCYbW0%eVY3``tySlD9PQ6xjHCr`pUDF)T Z(~q5+;rotV%@Rl#w&=fX8X$#g_yOL*dQ|`b diff --git a/test/Driver/Dependencies/Inputs/malformed-after-fine/other.swift b/test/Driver/Dependencies/Inputs/malformed-after-fine/other.swift deleted file mode 100644 index d8b260499b5cf..0000000000000 --- a/test/Driver/Dependencies/Inputs/malformed-after-fine/other.swift +++ /dev/null @@ -1,2 +0,0 @@ -# Dependencies after compilation: -*** This is not a valid YAML file *** diff --git a/test/Driver/Dependencies/Inputs/malformed-after-fine/other.swiftdeps b/test/Driver/Dependencies/Inputs/malformed-after-fine/other.swiftdeps deleted file mode 100644 index b8f5d8f2999a3c9fbb367b4ce781d6686dcf088e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 392 zcma)$zfZzI6vtmrL0Ht7xYxuOj%(>re%K}qSiuPs6B1{oca1oR0fH+z85tZH85}w| zs#6CBayWEg^e=H{@QBgb;l1Je{d~Xg)#?{bEd@XTU`up diff --git a/test/Driver/Dependencies/Inputs/malformed-after-fine/output.json b/test/Driver/Dependencies/Inputs/malformed-after-fine/output.json deleted file mode 100644 index f847af2da52ff..0000000000000 --- a/test/Driver/Dependencies/Inputs/malformed-after-fine/output.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "./main.swift": { - "object": "./main.o", - "swift-dependencies": "./main.swiftdeps" - }, - "./other.swift": { - "object": "./other.o", - "swift-dependencies": "./other.swiftdeps" - }, - "": { - "swift-dependencies": "./main~buildrecord.swiftdeps" - } -} diff --git a/test/Driver/Dependencies/Inputs/malformed-but-valid-yaml-fine/main.swift b/test/Driver/Dependencies/Inputs/malformed-but-valid-yaml-fine/main.swift deleted file mode 100644 index a9561fcf725d2..0000000000000 --- a/test/Driver/Dependencies/Inputs/malformed-but-valid-yaml-fine/main.swift +++ /dev/null @@ -1,30 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: main.swiftdeps - fingerprint: ec443bb982c3a06a433bdd47b85eeba2 - sequenceNumber: 0 - defsIDependUpon: [ 2 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: main.swiftdeps - fingerprint: ec443bb982c3a06a433bdd47b85eeba2 - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: a - sequenceNumber: 2 - defsIDependUpon: [ ] - isProvides: false -... diff --git a/test/Driver/Dependencies/Inputs/malformed-but-valid-yaml-fine/main.swiftdeps b/test/Driver/Dependencies/Inputs/malformed-but-valid-yaml-fine/main.swiftdeps deleted file mode 100644 index db076f86e69f651c79d76b99391c6b075cd8bd03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 408 zcmaiuJ5Rz;7>2(dxh}+*xYxuO4yUDsUW9}JD>z|dLgH+%2_~WugDa_w3=WJ84jmlT zsRIK!ICNn2mpC){5u&TZIm7!t?~||9zUT@$00sbA;bW0lbi!Fe=sGOEaW>(l#^DK@ z5_wGM7=OMzT5Ni8;fh(R!j$$YvHzh?H2Rn8@pp z%?X|I<=JLo(U{N`SLPvGV~VnnMMRD`i~k(Wb_r3OMp&ciw}68y026N}-e@7JuOlj+ z661O=^(pM{=5rb0y_qLif8&GhV=s6RhyMMbciR_@vL<`}P%L&jm*-+&R7~47)v7Cr zTh7($fmR88$D_E-6##DRUcWrpNId^;fSCYbW0%eVY3``tySlD9PQ6xjHCr`pUDF)T Z(~q5+;rotV%@Rl#w&=fX8X$#g_yOL*dQ|`b diff --git a/test/Driver/Dependencies/Inputs/malformed-but-valid-yaml-fine/other.swift b/test/Driver/Dependencies/Inputs/malformed-but-valid-yaml-fine/other.swift deleted file mode 100644 index ccd7aeff500d0..0000000000000 --- a/test/Driver/Dependencies/Inputs/malformed-but-valid-yaml-fine/other.swift +++ /dev/null @@ -1,24 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: other.swiftdeps - fingerprint: d41d8cd98f00b204e9800998ecf8427e - sequenceNumber: 0 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: other.swiftdeps - fingerprint: d41d8cd98f00b204e9800998ecf8427e - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true -bogusEntry: snort -... - diff --git a/test/Driver/Dependencies/Inputs/malformed-but-valid-yaml-fine/other.swiftdeps b/test/Driver/Dependencies/Inputs/malformed-but-valid-yaml-fine/other.swiftdeps deleted file mode 100644 index b8f5d8f2999a3c9fbb367b4ce781d6686dcf088e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 392 zcma)$zfZzI6vtmrL0Ht7xYxuOj%(>re%K}qSiuPs6B1{oca1oR0fH+z85tZH85}w| zs#6CBayWEg^e=H{@QBgb;l1Je{d~Xg)#?{bEd@XTU`up diff --git a/test/Driver/Dependencies/Inputs/malformed-but-valid-yaml-fine/output.json b/test/Driver/Dependencies/Inputs/malformed-but-valid-yaml-fine/output.json deleted file mode 100644 index f847af2da52ff..0000000000000 --- a/test/Driver/Dependencies/Inputs/malformed-but-valid-yaml-fine/output.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "./main.swift": { - "object": "./main.o", - "swift-dependencies": "./main.swiftdeps" - }, - "./other.swift": { - "object": "./other.o", - "swift-dependencies": "./other.swiftdeps" - }, - "": { - "swift-dependencies": "./main~buildrecord.swiftdeps" - } -} diff --git a/test/Driver/Dependencies/Inputs/modify-non-primary-files.py b/test/Driver/Dependencies/Inputs/modify-non-primary-files.py deleted file mode 100755 index 721b1ad48d097..0000000000000 --- a/test/Driver/Dependencies/Inputs/modify-non-primary-files.py +++ /dev/null @@ -1,51 +0,0 @@ -#!/usr/bin/env python -# modify-non-primary-files.py - Fake build while modifying files -*- python -*- -# -# This source file is part of the Swift.org open source project -# -# Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors -# Licensed under Apache License v2.0 with Runtime Library Exception -# -# See https://swift.org/LICENSE.txt for license information -# See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -# -# ---------------------------------------------------------------------------- -# -# modify-non-primary-files.py simulates a build where the user is modifying the -# source files during compilation. -# -# ---------------------------------------------------------------------------- - -from __future__ import print_function - -import os -import sys - -assert sys.argv[1] == '-frontend' - -if '-primary-file' in sys.argv: - primaryFileIndex = sys.argv.index('-primary-file') + 1 - primaryFile = sys.argv[primaryFileIndex] - - # Modify all files after the primary file. - # Ideally this would modify every non-primary file, but that's harder to - # infer without actually parsing the arguments. - for file in sys.argv[primaryFileIndex + 1:]: - if file.startswith('-'): - break - os.utime(file, None) - -else: - primaryFile = None - -outputFile = sys.argv[sys.argv.index('-o') + 1] - -# Update the output file mtime, or create it if necessary. -# From http://stackoverflow.com/a/1160227. -with open(outputFile, 'a'): - os.utime(outputFile, None) - -if primaryFile: - print("Handled", os.path.basename(primaryFile)) -else: - print("Produced", os.path.basename(outputFile)) diff --git a/test/Driver/Dependencies/Inputs/moduleonly/bar.swift b/test/Driver/Dependencies/Inputs/moduleonly/bar.swift deleted file mode 100644 index dd3d6dee17e0a..0000000000000 --- a/test/Driver/Dependencies/Inputs/moduleonly/bar.swift +++ /dev/null @@ -1,28 +0,0 @@ -public func bar() { } - -public class Bar { - @usableFromInline internal class Inner { - - /// makeX is declared in foo.swift - var x = makeX([1,2,3,4]) - - @usableFromInline internal func f() { - print("Bar.Inner.f") - } - } -} - -#if _runtime(_ObjC) && canImport(Foundation) - -import Foundation - -public class ObjCBar : NSObject { - - @objc(foo) - public func bar() -> String { - return "" - } - -} - -#endif diff --git a/test/Driver/Dependencies/Inputs/moduleonly/baz.swift b/test/Driver/Dependencies/Inputs/moduleonly/baz.swift deleted file mode 100644 index d50c4318edf42..0000000000000 --- a/test/Driver/Dependencies/Inputs/moduleonly/baz.swift +++ /dev/null @@ -1,20 +0,0 @@ -public func baz() {} - -public protocol BazProtocol { - associatedtype Ret - func method1() -> Ret? -} - -public enum Baz : BazProtocol { - case collection(T) - case other - - public func method1() -> T.SubSequence? { - switch self { - case .collection(let collection): - return makeX(collection) - default: - return nil - } - } -} diff --git a/test/Driver/Dependencies/Inputs/moduleonly/foo.swift b/test/Driver/Dependencies/Inputs/moduleonly/foo.swift deleted file mode 100644 index 4fda8eea4859d..0000000000000 --- a/test/Driver/Dependencies/Inputs/moduleonly/foo.swift +++ /dev/null @@ -1,28 +0,0 @@ -@inlinable -public func foo(x: Int) -> Int { - return x + 1 -} - -/// something -func makeX(_ seed: T) -> T.SubSequence { - return seed.dropFirst(1) -} - -public struct Foo : BazProtocol { - /// varx - public var x = makeX("foobar") - - /// method - public func method1() -> Int? { return 1 } - - /* Foo Bar */ - @_transparent - public func method2(x: Int) -> Int { - return x * 12 - } - - @inlinable - public func method3(x: T, y: T) -> T { - return x == y ? x : y - } -} diff --git a/test/Driver/Dependencies/Inputs/moduleonly/output.json b/test/Driver/Dependencies/Inputs/moduleonly/output.json deleted file mode 100644 index 940a7ab5db703..0000000000000 --- a/test/Driver/Dependencies/Inputs/moduleonly/output.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "./foo.swift": { - "object": "./foo.o", - "swift-dependencies": "./foo.swiftdeps", - "swiftmodule": "./foo~partial.swiftmodule" - }, - "./bar.swift": { - "object": "./bar.o", - "swift-dependencies": "./bar.swiftdeps", - "swiftmodule": "./bar~partial.swiftmodule" - }, - "./baz.swift": { - "object": "./baz.o", - "swift-dependencies": "./baz.swiftdeps", - "swiftmodule": "./baz~partial.swiftmodule" - }, - "": { - "swift-dependencies": "./buildrecord.swiftdeps" - } -} - diff --git a/test/Driver/Dependencies/Inputs/mutual-fine/main.swift b/test/Driver/Dependencies/Inputs/mutual-fine/main.swift deleted file mode 100644 index 53a6d2eb6ffb4..0000000000000 --- a/test/Driver/Dependencies/Inputs/mutual-fine/main.swift +++ /dev/null @@ -1,78 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: main.swiftdeps - fingerprint: after - sequenceNumber: 0 - defsIDependUpon: [ 4, 8, 2, 7, 6 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: main.swiftdeps - fingerprint: after - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: A - sequenceNumber: 2 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: topLevel - aspect: implementation - context: '' - name: A - sequenceNumber: 3 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: b - sequenceNumber: 4 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: topLevel - aspect: implementation - context: '' - name: b - sequenceNumber: 5 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: a - sequenceNumber: 6 - defsIDependUpon: [ ] - isProvides: false - - key: - kind: topLevel - aspect: interface - context: '' - name: IntegerLiteralType - sequenceNumber: 7 - defsIDependUpon: [ ] - isProvides: false - - key: - kind: topLevel - aspect: interface - context: '' - name: FloatLiteralType - sequenceNumber: 8 - defsIDependUpon: [ ] - isProvides: false -... diff --git a/test/Driver/Dependencies/Inputs/mutual-fine/other.swift b/test/Driver/Dependencies/Inputs/mutual-fine/other.swift deleted file mode 100644 index 8d6ea70853470..0000000000000 --- a/test/Driver/Dependencies/Inputs/mutual-fine/other.swift +++ /dev/null @@ -1,78 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: other.swiftdeps - fingerprint: same - sequenceNumber: 0 - defsIDependUpon: [ 8, 7, 2, 4, 6 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: other.swiftdeps - fingerprint: same - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: B - sequenceNumber: 2 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: topLevel - aspect: implementation - context: '' - name: B - sequenceNumber: 3 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: a - sequenceNumber: 4 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: topLevel - aspect: implementation - context: '' - name: a - sequenceNumber: 5 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: IntegerLiteralType - sequenceNumber: 6 - defsIDependUpon: [ ] - isProvides: false - - key: - kind: topLevel - aspect: interface - context: '' - name: b - sequenceNumber: 7 - defsIDependUpon: [ ] - isProvides: false - - key: - kind: topLevel - aspect: interface - context: '' - name: FloatLiteralType - sequenceNumber: 8 - defsIDependUpon: [ ] - isProvides: false -... diff --git a/test/Driver/Dependencies/Inputs/mutual-fine/output.json b/test/Driver/Dependencies/Inputs/mutual-fine/output.json deleted file mode 100644 index f847af2da52ff..0000000000000 --- a/test/Driver/Dependencies/Inputs/mutual-fine/output.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "./main.swift": { - "object": "./main.o", - "swift-dependencies": "./main.swiftdeps" - }, - "./other.swift": { - "object": "./other.o", - "swift-dependencies": "./other.swiftdeps" - }, - "": { - "swift-dependencies": "./main~buildrecord.swiftdeps" - } -} diff --git a/test/Driver/Dependencies/Inputs/mutual-interface-hash-fine/does-change.swift b/test/Driver/Dependencies/Inputs/mutual-interface-hash-fine/does-change.swift deleted file mode 100644 index f10c8c1139062..0000000000000 --- a/test/Driver/Dependencies/Inputs/mutual-interface-hash-fine/does-change.swift +++ /dev/null @@ -1,78 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: does-change.swiftdeps - fingerprint: after - sequenceNumber: 0 - defsIDependUpon: [ 4, 8, 2, 7, 6 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: does-change.swiftdeps - fingerprint: after - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: A - sequenceNumber: 2 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: topLevel - aspect: implementation - context: '' - name: A - sequenceNumber: 3 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: b - sequenceNumber: 4 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: topLevel - aspect: implementation - context: '' - name: b - sequenceNumber: 5 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: a - sequenceNumber: 6 - defsIDependUpon: [ ] - isProvides: false - - key: - kind: topLevel - aspect: interface - context: '' - name: IntegerLiteralType - sequenceNumber: 7 - defsIDependUpon: [ ] - isProvides: false - - key: - kind: topLevel - aspect: interface - context: '' - name: FloatLiteralType - sequenceNumber: 8 - defsIDependUpon: [ ] - isProvides: false -... diff --git a/test/Driver/Dependencies/Inputs/mutual-interface-hash-fine/does-change.swiftdeps b/test/Driver/Dependencies/Inputs/mutual-interface-hash-fine/does-change.swiftdeps deleted file mode 100644 index c40809bb79d8266e4484b8af022a45baa7906730..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 476 zcmYk0ze~eF9K~P0{gJwei0%G~J z>%2!+hge7b@@3&o^7p{(+A6|A;yszYwOJ&ycY)a~p|J%2i_l56KE8AN*|;H!~`#s-ePa=@($`7}!=flj}!D z?%rp{1{KbxPl|8Y8v0UYJSzrFL|QkGSyAZ0&YXJtm>&#KM{+q@s=wtT4SaG>pxogQD>~vz)rm_ zPDHa@Ym26HesFyuls^S*oj08JKR1yC6=N|}gx6@QjGlz9Lnr7d=y4<_zwsYW0P!dW bpW>in4ZijP^r1yK0(_)_J-J3PJ=y5lh$Xi$*jF*~R0!WlfpF zBBh1J7M5z2!eV(^q_Ff45$hDbH7Zxk49xHQzL~Z4?Hw%(Z~(e?9}jKTlYB^Q6y|Ov z@5%hiuT|bBt4pk_x_q2}mi#3&d$y9Wh|rR2#nNIH$Y++G4CbO!&0=`?Tfw|Iu^?RGA=n&Y93N&{NO}x(+>y^wb!A hur!d0ClF8ybf6*7UV&?9G4_D~Iba(?tkw}J0t?@`>!6qI}iI#fBgy>7b zri6~={AAVeXhP^h8dJfRs3J_TnCP)&$seQMEMgR^G1^G_HDLDwz`~yiAIwzqWkA(q z;#_U7e<(X!x$K7WR?iW%zi^=a(24HVet6gG+;ml^Wa~WatA$qU{8Wvcvg-$~X$6}4 zlMC!>WS67xl2hzv^8nX=r(5c+AUwS70c19S)YnWnJSe-4$+>IWerN@}Qstp#1(gbF OJ`bvy{Qq)z2EGBmzj>1Y diff --git a/test/Driver/Dependencies/Inputs/mutual-with-swiftdeps-fine/other.swift b/test/Driver/Dependencies/Inputs/mutual-with-swiftdeps-fine/other.swift deleted file mode 100644 index 8e9d62c832e6b..0000000000000 --- a/test/Driver/Dependencies/Inputs/mutual-with-swiftdeps-fine/other.swift +++ /dev/null @@ -1,46 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: other.swiftdeps - fingerprint: e12419713170057a991bc883225f56fc - sequenceNumber: 0 - defsIDependUpon: [ 4, 2] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: other.swiftdeps - fingerprint: e12419713170057a991bc883225f56fc - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: a - sequenceNumber: 2 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: topLevel - aspect: implementation - context: '' - name: a - sequenceNumber: 3 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: b - sequenceNumber: 4 - defsIDependUpon: [ ] - isProvides: false -... diff --git a/test/Driver/Dependencies/Inputs/mutual-with-swiftdeps-fine/other.swiftdeps b/test/Driver/Dependencies/Inputs/mutual-with-swiftdeps-fine/other.swiftdeps deleted file mode 100644 index 3674d778d4983cfd1d1d3fe44ca1297c4ccad6f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 392 zcma)$zfZzI6vtmrQCQTNxSxqJ9M{rbYk?*VSiuPs6B1{kKOzodfZ$3_Mg|8)28Rxg z>ePXO91a~A{Y#t~JYsZqcyIWAKi}_r)!Jo4Ndr&-*jC=>iA%%ybL`HIp#qm1G8g)kt0Sa73q2N8D&^`Ui8!6QBtdH8=3=C+ zIGrIf5sUM6!X+^xOQFv=T}f4zaT*~l5;XqnsMK;2mC;Drvgy}=!)pLj{*3(L92+k~ zg3pkByTAFN9PDM%TgqD{gQWc>2O1CUu#X2px7Y66VLNYWelWnRBP@C}72cX0p! diff --git a/test/Driver/Dependencies/Inputs/mutual-with-swiftdeps-fine/output.json b/test/Driver/Dependencies/Inputs/mutual-with-swiftdeps-fine/output.json deleted file mode 100644 index f847af2da52ff..0000000000000 --- a/test/Driver/Dependencies/Inputs/mutual-with-swiftdeps-fine/output.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "./main.swift": { - "object": "./main.o", - "swift-dependencies": "./main.swiftdeps" - }, - "./other.swift": { - "object": "./other.o", - "swift-dependencies": "./other.swiftdeps" - }, - "": { - "swift-dependencies": "./main~buildrecord.swiftdeps" - } -} diff --git a/test/Driver/Dependencies/Inputs/nominal-members-fine/a-ext.swift b/test/Driver/Dependencies/Inputs/nominal-members-fine/a-ext.swift deleted file mode 100644 index a68fd33d3ee02..0000000000000 --- a/test/Driver/Dependencies/Inputs/nominal-members-fine/a-ext.swift +++ /dev/null @@ -1,102 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: a-ext.swiftdeps - fingerprint: d19650fa01b61a0a8d27eee5258aa70e - sequenceNumber: 0 - defsIDependUpon: [ 4, 10, 7, 11, 6 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: a-ext.swiftdeps - fingerprint: d19650fa01b61a0a8d27eee5258aa70e - sequenceNumber: 1 - defsIDependUpon: [ 9, 8 ] - isProvides: true - - key: - kind: potentialMember - aspect: interface - context: 4main1aV - name: '' - sequenceNumber: 2 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: potentialMember - aspect: implementation - context: 4main1aV - name: '' - sequenceNumber: 3 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: member - aspect: interface - context: 4main1aV - name: ext - sequenceNumber: 4 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: member - aspect: implementation - context: 4main1aV - name: ext - sequenceNumber: 5 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: Int - sequenceNumber: 6 - defsIDependUpon: [ ] - isProvides: false - - key: - kind: topLevel - aspect: interface - context: '' - name: aaa - sequenceNumber: 7 - defsIDependUpon: [ ] - isProvides: false - - key: - kind: topLevel - aspect: interface - context: '' - name: IntegerLiteralType - sequenceNumber: 8 - defsIDependUpon: [ ] - isProvides: false - - key: - kind: topLevel - aspect: interface - context: '' - name: FloatLiteralType - sequenceNumber: 9 - defsIDependUpon: [ ] - isProvides: false - - key: - kind: nominal - aspect: interface - context: 4main1aaaV - name: '' - sequenceNumber: 10 - defsIDependUpon: [ ] - isProvides: false - - key: - kind: member - aspect: interface - context: 4main1aaaV - name: Int - sequenceNumber: 11 - defsIDependUpon: [ ] - isProvides: false -... diff --git a/test/Driver/Dependencies/Inputs/nominal-members-fine/a.swift b/test/Driver/Dependencies/Inputs/nominal-members-fine/a.swift deleted file mode 100644 index 287d5a52883a6..0000000000000 --- a/test/Driver/Dependencies/Inputs/nominal-members-fine/a.swift +++ /dev/null @@ -1,78 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: a.swiftdeps - fingerprint: 605b8543d8bbf247217381a68ce188b8 - sequenceNumber: 0 - defsIDependUpon: [ 8, 4, 2 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: a.swiftdeps - fingerprint: 605b8543d8bbf247217381a68ce188b8 - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: a - sequenceNumber: 2 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: topLevel - aspect: implementation - context: '' - name: a - sequenceNumber: 3 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: nominal - aspect: interface - context: 4main1aV - name: '' - sequenceNumber: 4 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: nominal - aspect: implementation - context: 4main1aV - name: '' - sequenceNumber: 5 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: potentialMember - aspect: interface - context: 4main1aV - name: '' - sequenceNumber: 6 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: potentialMember - aspect: implementation - context: 4main1aV - name: '' - sequenceNumber: 7 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: member - aspect: interface - context: 4main1aV - name: init - sequenceNumber: 8 - defsIDependUpon: [ ] - isProvides: false -... diff --git a/test/Driver/Dependencies/Inputs/nominal-members-fine/depends-on-a-ext.swift b/test/Driver/Dependencies/Inputs/nominal-members-fine/depends-on-a-ext.swift deleted file mode 100644 index 321e7f40733b6..0000000000000 --- a/test/Driver/Dependencies/Inputs/nominal-members-fine/depends-on-a-ext.swift +++ /dev/null @@ -1,70 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: depends-on-a-ext.swiftdeps - fingerprint: eef421a8e034b3c72f85a3106b51620e - sequenceNumber: 0 - defsIDependUpon: [ 6, 5, 7, 2, 4 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: depends-on-a-ext.swiftdeps - fingerprint: eef421a8e034b3c72f85a3106b51620e - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: V - sequenceNumber: 2 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: topLevel - aspect: implementation - context: '' - name: V - sequenceNumber: 3 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: a - sequenceNumber: 4 - defsIDependUpon: [ ] - isProvides: false - - key: - kind: nominal - aspect: interface - context: 4main1aV - name: '' - sequenceNumber: 5 - defsIDependUpon: [ ] - isProvides: false - - key: - kind: member - aspect: interface - context: 4main1aV - name: ext - sequenceNumber: 6 - defsIDependUpon: [ ] - isProvides: false - - key: - kind: member - aspect: interface - context: 4main1aV - name: init - sequenceNumber: 7 - defsIDependUpon: [ ] - isProvides: false -... diff --git a/test/Driver/Dependencies/Inputs/nominal-members-fine/depends-on-a-foo.swift b/test/Driver/Dependencies/Inputs/nominal-members-fine/depends-on-a-foo.swift deleted file mode 100644 index 129ade88c6191..0000000000000 --- a/test/Driver/Dependencies/Inputs/nominal-members-fine/depends-on-a-foo.swift +++ /dev/null @@ -1,70 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: depends-on-a-foo.swiftdeps - fingerprint: 341612d23b9b4ab590b3d75e35b5c6e0 - sequenceNumber: 0 - defsIDependUpon: [ 6, 5, 4, 7, 2 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: depends-on-a-foo.swiftdeps - fingerprint: 341612d23b9b4ab590b3d75e35b5c6e0 - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: Q - sequenceNumber: 2 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: topLevel - aspect: implementation - context: '' - name: Q - sequenceNumber: 3 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: a - sequenceNumber: 4 - defsIDependUpon: [ ] - isProvides: false - - key: - kind: nominal - aspect: interface - context: 4main1aV - name: '' - sequenceNumber: 5 - defsIDependUpon: [ ] - isProvides: false - - key: - kind: member - aspect: interface - context: 4main1aV - name: foo - sequenceNumber: 6 - defsIDependUpon: [ ] - isProvides: false - - key: - kind: member - aspect: interface - context: 4main1aV - name: init - sequenceNumber: 7 - defsIDependUpon: [ ] - isProvides: false -... diff --git a/test/Driver/Dependencies/Inputs/nominal-members-fine/output.json b/test/Driver/Dependencies/Inputs/nominal-members-fine/output.json deleted file mode 100644 index d4d6d49c54405..0000000000000 --- a/test/Driver/Dependencies/Inputs/nominal-members-fine/output.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "./a.swift": { - "object": "./a.o", - "swift-dependencies": "./a.swiftdeps" - }, - "./a-ext.swift": { - "object": "./a-ext.o", - "swift-dependencies": "./a-ext.swiftdeps" - }, - "./depends-on-a-ext.swift": { - "object": "./depends-on-a-ext.o", - "swift-dependencies": "./depends-on-a-ext.swiftdeps" - }, - "./depends-on-a-foo.swift": { - "object": "./depends-on-a-foo.o", - "swift-dependencies": "./depends-on-a-foo.swiftdeps" - }, - "": { - "swift-dependencies": "./main~buildrecord.swiftdeps" - } -} diff --git a/test/Driver/Dependencies/Inputs/one-way-depends-after-fine/main.swift b/test/Driver/Dependencies/Inputs/one-way-depends-after-fine/main.swift deleted file mode 100644 index b21ca1bfe8e11..0000000000000 --- a/test/Driver/Dependencies/Inputs/one-way-depends-after-fine/main.swift +++ /dev/null @@ -1,30 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: './main.swiftdeps' - fingerprint: 68a74ca633848ae5e65ddc9d5e28b0e6 - sequenceNumber: 0 - defsIDependUpon: [ 2 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: './main.swiftdeps' - fingerprint: 68a74ca633848ae5e65ddc9d5e28b0e6 - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: a - sequenceNumber: 2 - defsIDependUpon: [ ] - isProvides: false -... diff --git a/test/Driver/Dependencies/Inputs/one-way-depends-after-fine/main.swiftdeps b/test/Driver/Dependencies/Inputs/one-way-depends-after-fine/main.swiftdeps deleted file mode 100644 index 0fbef28af95e2d036619182ac932f5f99771546a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 392 zcma)$zfZzI6vtmrL0E_}aj%In9M{sL{IE?Ju!0jNCM3>6@0wsD8X>rnlaaxJk-?#Z zqdIk9AcsQ-M*k9L29Fq>9o`$h-_Q5^UcGVA(oz5f0Cu$ZMeN~;Br(Ekk$sh9B6HQl z6Ea2S7~!$na(T3p9LDouDWrBpr3?+&FI%vRKq3jKwnc%J3e54D>jac`Y+B;3L#gXJ R+z*_ReasV?|8eRJd;_f2c#!}A diff --git a/test/Driver/Dependencies/Inputs/one-way-depends-after-fine/other.swift b/test/Driver/Dependencies/Inputs/one-way-depends-after-fine/other.swift deleted file mode 100644 index b0a83b5a9b5be..0000000000000 --- a/test/Driver/Dependencies/Inputs/one-way-depends-after-fine/other.swift +++ /dev/null @@ -1,38 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: './other.swiftdeps' - fingerprint: befb33f4269c9adc0644b060f467ef06 - sequenceNumber: 0 - defsIDependUpon: [ 2 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: './other.swiftdeps' - fingerprint: befb33f4269c9adc0644b060f467ef06 - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: a - sequenceNumber: 2 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: topLevel - aspect: implementation - context: '' - name: a - sequenceNumber: 3 - defsIDependUpon: [ ] - isProvides: true -... diff --git a/test/Driver/Dependencies/Inputs/one-way-depends-after-fine/other.swiftdeps b/test/Driver/Dependencies/Inputs/one-way-depends-after-fine/other.swiftdeps deleted file mode 100644 index c49bc07e3e6eb0f49eba50005acfd0fca1a2e08a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 420 zcmaiuy-&hW6vb~Z--}Tb_nH{Pz|dV&W|Qia3Y?f-9+v3=WJ84jmlT zsRKjvaOlA3U*gQ*BScq+`)+d1@0|OZt;;JR4?qDRCw#<-MW&1fAWbcfkPzvNDbE&(nKBQg2}&ghA4-OMt>cRR*9oL8giRA{Tgt117Pw$qdSg8^>s|d zGpyb1r$2>*-9kPqyf+HS?QcGC_1N`?;>ha{y1jd`R@P+K8;Qks`}#ukYZas87;4p# z#4YD&rmt0e&vpsV=Jx=~N^f}U^~-}zkLx`QHo5@N;X9KBY@}4MJ>S+eU#}XbV|H9e iHFVup4b|6;6VF$T971Mii~h@I0Mc;^#+U{a`Hdf^OMChN diff --git a/test/Driver/Dependencies/Inputs/one-way-depends-after-fine/output.json b/test/Driver/Dependencies/Inputs/one-way-depends-after-fine/output.json deleted file mode 100644 index f847af2da52ff..0000000000000 --- a/test/Driver/Dependencies/Inputs/one-way-depends-after-fine/output.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "./main.swift": { - "object": "./main.o", - "swift-dependencies": "./main.swiftdeps" - }, - "./other.swift": { - "object": "./other.o", - "swift-dependencies": "./other.swiftdeps" - }, - "": { - "swift-dependencies": "./main~buildrecord.swiftdeps" - } -} diff --git a/test/Driver/Dependencies/Inputs/one-way-depends-before-fine/main.swift b/test/Driver/Dependencies/Inputs/one-way-depends-before-fine/main.swift deleted file mode 100644 index 9183a8ba33282..0000000000000 --- a/test/Driver/Dependencies/Inputs/one-way-depends-before-fine/main.swift +++ /dev/null @@ -1,22 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: main.swiftdeps - fingerprint: d41d8cd98f00b204e9800998ecf8427e - sequenceNumber: 0 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: main.swiftdeps - fingerprint: d41d8cd98f00b204e9800998ecf8427e - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true -... diff --git a/test/Driver/Dependencies/Inputs/one-way-depends-before-fine/main.swiftdeps b/test/Driver/Dependencies/Inputs/one-way-depends-before-fine/main.swiftdeps deleted file mode 100644 index e64b80c08a11666407962925adc27e9522d94065..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 408 zcmaiuzfZzI6vtmrew4)!6Ze`J!*MMwl-80kU|)%cB)1Ure320>Kd?Q?5U|c)|43^KGNz ztIC%1&01)dL)s0n=*oG3l78d$`lZ1}6VSVXECF~TOJ@Kzb_}o`@3`uFwrM(5$D!ETQbG+sz|dV&W|Qia3Y?f-9+v3=WJ84jmlT zsRKjvaOlA3U*gQ*BScq+`)+d1@0|OZt;;JR4?qDRCw#<-MW&1fAWbcfkPzvNDbE&(nKBQg2}&ghA4-OMt>cRR*9oL8giRA{Tgt117Pw$qdSg8^>s|d zGpyb1r$2>*-9kPqyf+HS?QcGC_1N`?;>ha{y1jd`R@P+K8;Qks`}#ukYZas87;4p# z#4YD&rmt0e&vpsV=Jx=~N^f}U^~-}zkLx`QHo5@N;X9KBY@}4MJ>S+eU#}XbV|H9e iHFVup4b|6;6VF$T971Mii~h@I0Mc;^#+U{a`Hdf^OMChN diff --git a/test/Driver/Dependencies/Inputs/one-way-depends-before-fine/output.json b/test/Driver/Dependencies/Inputs/one-way-depends-before-fine/output.json deleted file mode 100644 index f847af2da52ff..0000000000000 --- a/test/Driver/Dependencies/Inputs/one-way-depends-before-fine/output.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "./main.swift": { - "object": "./main.o", - "swift-dependencies": "./main.swiftdeps" - }, - "./other.swift": { - "object": "./other.o", - "swift-dependencies": "./other.swiftdeps" - }, - "": { - "swift-dependencies": "./main~buildrecord.swiftdeps" - } -} diff --git a/test/Driver/Dependencies/Inputs/one-way-external-fine/main.swift b/test/Driver/Dependencies/Inputs/one-way-external-fine/main.swift deleted file mode 100644 index c7d4f89856338..0000000000000 --- a/test/Driver/Dependencies/Inputs/one-way-external-fine/main.swift +++ /dev/null @@ -1,62 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: main.swiftdeps - fingerprint: f216f45027a3fa6bf3d16c1b05dd8feb - sequenceNumber: 0 - defsIDependUpon: [ 6, 5, 2, 4 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: main.swiftdeps - fingerprint: f216f45027a3fa6bf3d16c1b05dd8feb - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: V - sequenceNumber: 2 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: topLevel - aspect: implementation - context: '' - name: V - sequenceNumber: 3 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: a - sequenceNumber: 4 - defsIDependUpon: [ ] - isProvides: false - - key: - kind: externalDepend - aspect: interface - context: '' - name: './main1-external' - sequenceNumber: 5 - defsIDependUpon: [ ] - isProvides: false - - key: - kind: externalDepend - aspect: interface - context: '' - name: './main2-external' - sequenceNumber: 6 - defsIDependUpon: [ ] - isProvides: false -... diff --git a/test/Driver/Dependencies/Inputs/one-way-external-fine/main1-external b/test/Driver/Dependencies/Inputs/one-way-external-fine/main1-external deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/test/Driver/Dependencies/Inputs/one-way-external-fine/main2-external b/test/Driver/Dependencies/Inputs/one-way-external-fine/main2-external deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/test/Driver/Dependencies/Inputs/one-way-external-fine/other.swift b/test/Driver/Dependencies/Inputs/one-way-external-fine/other.swift deleted file mode 100644 index 20b5cf60db63a..0000000000000 --- a/test/Driver/Dependencies/Inputs/one-way-external-fine/other.swift +++ /dev/null @@ -1,70 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: other.swiftdeps - fingerprint: 72e95f4a11b98227c1f6ad6ea7f6cdba - sequenceNumber: 0 - defsIDependUpon: [ 6, 7, 2, 5, 4 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: other.swiftdeps - fingerprint: 72e95f4a11b98227c1f6ad6ea7f6cdba - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: a - sequenceNumber: 2 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: topLevel - aspect: implementation - context: '' - name: a - sequenceNumber: 3 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: IntegerLiteralType - sequenceNumber: 4 - defsIDependUpon: [ ] - isProvides: false - - key: - kind: topLevel - aspect: interface - context: '' - name: FloatLiteralType - sequenceNumber: 5 - defsIDependUpon: [ ] - isProvides: false - - key: - kind: externalDepend - aspect: interface - context: '' - name: './other1-external' - sequenceNumber: 6 - defsIDependUpon: [ ] - isProvides: false - - key: - kind: externalDepend - aspect: interface - context: '' - name: './other2-external' - sequenceNumber: 7 - defsIDependUpon: [ ] - isProvides: false -... diff --git a/test/Driver/Dependencies/Inputs/one-way-external-fine/other1-external b/test/Driver/Dependencies/Inputs/one-way-external-fine/other1-external deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/test/Driver/Dependencies/Inputs/one-way-external-fine/other2-external b/test/Driver/Dependencies/Inputs/one-way-external-fine/other2-external deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/test/Driver/Dependencies/Inputs/one-way-external-fine/output.json b/test/Driver/Dependencies/Inputs/one-way-external-fine/output.json deleted file mode 100644 index f847af2da52ff..0000000000000 --- a/test/Driver/Dependencies/Inputs/one-way-external-fine/output.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "./main.swift": { - "object": "./main.o", - "swift-dependencies": "./main.swiftdeps" - }, - "./other.swift": { - "object": "./other.o", - "swift-dependencies": "./other.swiftdeps" - }, - "": { - "swift-dependencies": "./main~buildrecord.swiftdeps" - } -} diff --git a/test/Driver/Dependencies/Inputs/one-way-fine/main.swift b/test/Driver/Dependencies/Inputs/one-way-fine/main.swift deleted file mode 100644 index b21ca1bfe8e11..0000000000000 --- a/test/Driver/Dependencies/Inputs/one-way-fine/main.swift +++ /dev/null @@ -1,30 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: './main.swiftdeps' - fingerprint: 68a74ca633848ae5e65ddc9d5e28b0e6 - sequenceNumber: 0 - defsIDependUpon: [ 2 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: './main.swiftdeps' - fingerprint: 68a74ca633848ae5e65ddc9d5e28b0e6 - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: a - sequenceNumber: 2 - defsIDependUpon: [ ] - isProvides: false -... diff --git a/test/Driver/Dependencies/Inputs/one-way-fine/other.swift b/test/Driver/Dependencies/Inputs/one-way-fine/other.swift deleted file mode 100644 index b0a83b5a9b5be..0000000000000 --- a/test/Driver/Dependencies/Inputs/one-way-fine/other.swift +++ /dev/null @@ -1,38 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: './other.swiftdeps' - fingerprint: befb33f4269c9adc0644b060f467ef06 - sequenceNumber: 0 - defsIDependUpon: [ 2 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: './other.swiftdeps' - fingerprint: befb33f4269c9adc0644b060f467ef06 - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: a - sequenceNumber: 2 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: topLevel - aspect: implementation - context: '' - name: a - sequenceNumber: 3 - defsIDependUpon: [ ] - isProvides: true -... diff --git a/test/Driver/Dependencies/Inputs/one-way-fine/output.json b/test/Driver/Dependencies/Inputs/one-way-fine/output.json deleted file mode 100644 index f2eb4d2dddbeb..0000000000000 --- a/test/Driver/Dependencies/Inputs/one-way-fine/output.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "./main.swift": { - "object": "./main.o", - "swift-dependencies": "./main.swiftdeps", - "swiftmodule": "./main.swiftmodule", - "swiftdoc": "./main.swiftdoc", - }, - "./other.swift": { - "object": "./other.o", - "swift-dependencies": "./other.swiftdeps", - "swiftmodule": "./main.swiftmodule", - "swiftdoc": "./main.swiftdoc", - }, - "": { - "swift-dependencies": "./main~buildrecord.swiftdeps" - } -} diff --git a/test/Driver/Dependencies/Inputs/one-way-provides-after-fine/main.swift b/test/Driver/Dependencies/Inputs/one-way-provides-after-fine/main.swift deleted file mode 100644 index 2f22faafc626f..0000000000000 --- a/test/Driver/Dependencies/Inputs/one-way-provides-after-fine/main.swift +++ /dev/null @@ -1,30 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: main.swiftdeps - fingerprint: f216f45027a3fa6bf3d16c1b05dd8feb - sequenceNumber: 0 - defsIDependUpon: [ 2 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: main.swiftdeps - fingerprint: f216f45027a3fa6bf3d16c1b05dd8feb - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: a - sequenceNumber: 2 - defsIDependUpon: [ ] - isProvides: false -... diff --git a/test/Driver/Dependencies/Inputs/one-way-provides-after-fine/main.swiftdeps b/test/Driver/Dependencies/Inputs/one-way-provides-after-fine/main.swiftdeps deleted file mode 100644 index dad97a138822e81bb9a521b469d19e6429107c65..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 408 zcmaiuzfZzI7>2)|{9K4Jaj%In9M{s8+NucyR&c_^gv8m>_7Y4)BLr7c85tZH85}w| zs#6CBayWEg^e=H{@FPT5hr8i@pZCdEZ(O#d8~_7=tn@KY96A;(A#@cM-vk?rQg#27 zO^7-obcDZH94rO<3YD>g2#pAv2<_RSbD>Q`Wki%0p~Zq>QmsGHC}dNICPYb`QcToU z$Yz92#NvFtaA-{EQfRY~tuRGd$ReUfg2jK1TBC$0P9v<*^jpB*HGqvb6Ms0D_17Vl z&xm!illqi)xAVD-^j^yotiSO=>#@W8@*sHVb?&;dRW?;W7|6wD^Xfw8mSMY|tyern z-f*6I!cBt*ZJ**cR{*$mJKb_`E%Af<9%d4Ni(NVcq_(94uNXEzwDii6YjW3abJI6$ Y&uHtG?;oQmOCVj?p#QRIfE23X2h>q|R{#J2 diff --git a/test/Driver/Dependencies/Inputs/one-way-provides-after-fine/other.swift b/test/Driver/Dependencies/Inputs/one-way-provides-after-fine/other.swift deleted file mode 100644 index b3fe2d3a5af0f..0000000000000 --- a/test/Driver/Dependencies/Inputs/one-way-provides-after-fine/other.swift +++ /dev/null @@ -1,54 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: x.swiftdeps - fingerprint: 72e95f4a11b98227c1f6ad6ea7f6cdba - sequenceNumber: 0 - defsIDependUpon: [ 5, 2, 4 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: x.swiftdeps - fingerprint: 72e95f4a11b98227c1f6ad6ea7f6cdba - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: a - sequenceNumber: 2 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: topLevel - aspect: implementation - context: '' - name: a - sequenceNumber: 3 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: FloatLiteralType - sequenceNumber: 4 - defsIDependUpon: [ ] - isProvides: false - - key: - kind: topLevel - aspect: interface - context: '' - name: IntegerLiteralType - sequenceNumber: 5 - defsIDependUpon: [ ] - isProvides: false -... diff --git a/test/Driver/Dependencies/Inputs/one-way-provides-after-fine/other.swiftdeps b/test/Driver/Dependencies/Inputs/one-way-provides-after-fine/other.swiftdeps deleted file mode 100644 index b8f5d8f2999a3c9fbb367b4ce781d6686dcf088e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 392 zcma)$zfZzI6vtmrL0Ht7xYxuOj%(>re%K}qSiuPs6B1{oca1oR0fH+z85tZH85}w| zs#6CBayWEg^e=H{@QBgb;l1Je{d~Xg)#?{bEd@XTU`up diff --git a/test/Driver/Dependencies/Inputs/one-way-provides-after-fine/output.json b/test/Driver/Dependencies/Inputs/one-way-provides-after-fine/output.json deleted file mode 100644 index f847af2da52ff..0000000000000 --- a/test/Driver/Dependencies/Inputs/one-way-provides-after-fine/output.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "./main.swift": { - "object": "./main.o", - "swift-dependencies": "./main.swiftdeps" - }, - "./other.swift": { - "object": "./other.o", - "swift-dependencies": "./other.swiftdeps" - }, - "": { - "swift-dependencies": "./main~buildrecord.swiftdeps" - } -} diff --git a/test/Driver/Dependencies/Inputs/one-way-provides-before-fine/main.swift b/test/Driver/Dependencies/Inputs/one-way-provides-before-fine/main.swift deleted file mode 100644 index 2f22faafc626f..0000000000000 --- a/test/Driver/Dependencies/Inputs/one-way-provides-before-fine/main.swift +++ /dev/null @@ -1,30 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: main.swiftdeps - fingerprint: f216f45027a3fa6bf3d16c1b05dd8feb - sequenceNumber: 0 - defsIDependUpon: [ 2 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: main.swiftdeps - fingerprint: f216f45027a3fa6bf3d16c1b05dd8feb - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: a - sequenceNumber: 2 - defsIDependUpon: [ ] - isProvides: false -... diff --git a/test/Driver/Dependencies/Inputs/one-way-provides-before-fine/main.swiftdeps b/test/Driver/Dependencies/Inputs/one-way-provides-before-fine/main.swiftdeps deleted file mode 100644 index dad97a138822e81bb9a521b469d19e6429107c65..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 408 zcmaiuzfZzI7>2)|{9K4Jaj%In9M{s8+NucyR&c_^gv8m>_7Y4)BLr7c85tZH85}w| zs#6CBayWEg^e=H{@FPT5hr8i@pZCdEZ(O#d8~_7=tn@KY96A;(A#@cM-vk?rQg#27 zO^7-obcDZH94rO<3YD>g2#pAv2<_RSbD>Q`Wki%0p~Zq>QmsGHC}dNICPYb`QcToU z$Yz92#NvFtaA-{EQfRY~tuRGd$ReUfg2jK1TBC$0P9v<*^jpB*HGqvb6Ms0D_17Vl z&xm!illqi)xAVD-^j^yotiSO=>#@W8@*sHVb?&;dRW?;W7|6wD^Xfw8mSMY|tyern z-f*6I!cBt*ZJ**cR{*$mJKb_`E%Af<9%d4Ni(NVcq_(94uNXEzwDii6YjW3abJI6$ Y&uHtG?;oQmOCVj?p#QRIfE23X2h>q|R{#J2 diff --git a/test/Driver/Dependencies/Inputs/one-way-provides-before-fine/other.swift b/test/Driver/Dependencies/Inputs/one-way-provides-before-fine/other.swift deleted file mode 100644 index 5310b5d7ab52c..0000000000000 --- a/test/Driver/Dependencies/Inputs/one-way-provides-before-fine/other.swift +++ /dev/null @@ -1,22 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: other.swiftdeps - fingerprint: d41d8cd98f00b204e9800998ecf8427e - sequenceNumber: 0 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: other.swiftdeps - fingerprint: d41d8cd98f00b204e9800998ecf8427e - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true -... diff --git a/test/Driver/Dependencies/Inputs/one-way-provides-before-fine/other.swiftdeps b/test/Driver/Dependencies/Inputs/one-way-provides-before-fine/other.swiftdeps deleted file mode 100644 index d1135f16bf7cac878a08446b86df4a9eedc6ce50..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmaiuy-&hW6vc0^ASEV-n7G%(7#^>D6r@PvfK^CLFfqY6TiREHF=~MLv60Hi;K0b> z(7{oi7#PUYfx*$g#F@cMh{ny~-r=0{JNNFD4{M4FzyTnlypAUp>q$OAHudArlJ{g{ zdwqxZG1*1dr7hn!J|zG2^`1o$79j7-^n=C5GClD1F6xgmJ(Qf3?Y(;z_(OGrFCz zmU-$hZ5Q)rE1`E~H5OGDm6uW!$^N2&+D*f2YuBRLYFu7u`BX0Hifb)itsWm}UfwWm z$IN6MU7P2eT+z!Jo~XNwSak{DHr1LnxZssdoo^cdYgzqH%cMq4!P^P{^fp{@Yz zU$n)kX#P_9d8z#u{8nWn^$*WN_%< zs7@Ui$itxnqkoArgGY?c4tK-%$LFrmJa0<{00saX()%oP=}54Q&}CeH6>KCbwcTSj zChCyTA#O3>TL|_UD*j%HanI>+D=-}2=;(G3 N93miB`d<#uz&FfidDj2{ diff --git a/test/Driver/Dependencies/Inputs/one-way-with-swiftdeps-fine/other.swift b/test/Driver/Dependencies/Inputs/one-way-with-swiftdeps-fine/other.swift deleted file mode 100644 index fdebaf57ebfb4..0000000000000 --- a/test/Driver/Dependencies/Inputs/one-way-with-swiftdeps-fine/other.swift +++ /dev/null @@ -1,38 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: other.swiftdeps - fingerprint: 72e95f4a11b98227c1f6ad6ea7f6cdba - sequenceNumber: 0 - defsIDependUpon: [ 2 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: other.swiftdeps - fingerprint: 72e95f4a11b98227c1f6ad6ea7f6cdba - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: topLevel - aspect: interface - context: '' - name: a - sequenceNumber: 2 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: topLevel - aspect: implementation - context: '' - name: a - sequenceNumber: 3 - defsIDependUpon: [ ] - isProvides: true -... diff --git a/test/Driver/Dependencies/Inputs/one-way-with-swiftdeps-fine/other.swiftdeps b/test/Driver/Dependencies/Inputs/one-way-with-swiftdeps-fine/other.swiftdeps deleted file mode 100644 index 297c9086c5ee037895c44c0d9d750ed953bafc56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 392 zcma)$zfZzY5XY}iL0Ht7xYxuO9z|dLgFm6eGvySl;BD#BZC7YgF^>L zb?U%C9u6HC{Y#t~JYsZqxEsDdK6lmHWkbpVFaX$)-e;*xM}nnqDO0CK61I5F{*k_6#(P<*3gN=xay2VwNH# zt^=|_ct)4!8;6M_gjZBr1Z2&oEG!@)5<^O&zl=t^#874pnaq-Y1t?qr80==`j$>Ya z9b^6sY1aokpQ)q$JeN(qH}Z(d->jhf*!Lg!k#|4r-wt@KtctET;)|V5?}GO=MYkMX zt~dg}{1HEi3j lRBIKbrW%T+8;++KhHc~!WcIe`zig%e5T{`r90Krc{|~gzds_ei diff --git a/test/Driver/Dependencies/Inputs/private-after-fine/b.swift b/test/Driver/Dependencies/Inputs/private-after-fine/b.swift deleted file mode 100644 index c256595b686c8..0000000000000 --- a/test/Driver/Dependencies/Inputs/private-after-fine/b.swift +++ /dev/null @@ -1,54 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: b.swiftdeps - fingerprint: 68e9c0980ab7233dfbd965d8c4354027 - sequenceNumber: 0 - defsIDependUpon: [ 5, 2 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: b.swiftdeps - fingerprint: 68e9c0980ab7233dfbd965d8c4354027 - sequenceNumber: 1 - defsIDependUpon: [ 4 ] - isProvides: true - - key: - kind: nominal - aspect: interface - context: 4main1bV - name: '' - sequenceNumber: 2 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: nominal - aspect: implementation - context: 4main1bV - name: '' - sequenceNumber: 3 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: nominal - aspect: interface - context: 4main1aV - name: '' - sequenceNumber: 4 - defsIDependUpon: [ ] - isProvides: false - - key: - kind: nominal - aspect: interface - context: 4main1eV - name: '' - sequenceNumber: 5 - defsIDependUpon: [ ] - isProvides: false -... diff --git a/test/Driver/Dependencies/Inputs/private-after-fine/b.swiftdeps b/test/Driver/Dependencies/Inputs/private-after-fine/b.swiftdeps deleted file mode 100644 index ed217d51bb8d0da9ad8dec0ef3ae3a24b5602bc5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 456 zcmaiwy-&hW6vb~JR7y0)7~M-^43Af!P+Dlh02Q1tF(F~5p9vgahLo^Px%P+ypG*wAMAFho zg($uD$qeB!U7T+m1`ZKk(d^78Yqn)!J_%4dpd|dssMJ#oW!8YnEa_W-L>s_hHzQ{- z7v<*x7SE7+br^l;jt}C(4)~VT^IXfp%q#2ySef1?!EtYUAh5qGT$`P4&T9S6=AYSZ@jHMj5gD|S ztJ|_(l1;0aR}{yy99>hLl3h^Lf}AhL5X5-k_qR0s&qskz0L&vW@Q(o6)jfcz$PQxl E1r`H>{Qv*} diff --git a/test/Driver/Dependencies/Inputs/private-after-fine/c.swift b/test/Driver/Dependencies/Inputs/private-after-fine/c.swift deleted file mode 100644 index 7aec07e89f1a4..0000000000000 --- a/test/Driver/Dependencies/Inputs/private-after-fine/c.swift +++ /dev/null @@ -1,46 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: c.swiftdeps - fingerprint: 9e53bc0d9f7b3db367329e46ec87a57a - sequenceNumber: 0 - defsIDependUpon: [ 2, 4 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: c.swiftdeps - fingerprint: 9e53bc0d9f7b3db367329e46ec87a57a - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: nominal - aspect: interface - context: 4main1cV - name: '' - sequenceNumber: 2 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: nominal - aspect: implementation - context: 4main1cV - name: '' - sequenceNumber: 3 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: nominal - aspect: interface - context: 4main1bV - name: '' - sequenceNumber: 4 - defsIDependUpon: [ ] - isProvides: false -... diff --git a/test/Driver/Dependencies/Inputs/private-after-fine/c.swiftdeps b/test/Driver/Dependencies/Inputs/private-after-fine/c.swiftdeps deleted file mode 100644 index b0bbb481d8f2f2e3354237d04df9817257a32ffe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 436 zcmaiwzfZzY5XY|%kP?kCM)#5!!{fEIP+Dw)2~=>x#Ds*I{!B0tjTl@>Wn^$*WN_%< zs7?$F&BK9#(Z9r*!AFQXI^5-Q-_Q4(%hl?aO^yd30FdO~qlJk_lq?Wl1({b$Ml@SK zs**91h6oQ?r}N__C7*#fG8uwHM8;HpGI2!ZNgxi9_)O&~C2Ui!J>oDR6B93xxG=L* zB&`B6LwHQ*=WBJ)*57Qm5?g>OF$D}yQ*B3a w4ZmcouC3}NwP1Kf-E&S#mR7QoaY!Oa>~3iImrtYtq8JQ<1AumQhg}5l4Fht3dH?_b diff --git a/test/Driver/Dependencies/Inputs/private-after-fine/d.swift b/test/Driver/Dependencies/Inputs/private-after-fine/d.swift deleted file mode 100644 index 8c454a819f3fc..0000000000000 --- a/test/Driver/Dependencies/Inputs/private-after-fine/d.swift +++ /dev/null @@ -1,46 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: d.swiftdeps - fingerprint: 9e53bc0d9f7b3db367329e46ec87a57a - sequenceNumber: 0 - defsIDependUpon: [ 2, 4 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: d.swiftdeps - fingerprint: 9e53bc0d9f7b3db367329e46ec87a57a - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: nominal - aspect: interface - context: 4main1dV - name: '' - sequenceNumber: 2 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: nominal - aspect: implementation - context: 4main1dV - name: '' - sequenceNumber: 3 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: nominal - aspect: interface - context: 4main1aV - name: '' - sequenceNumber: 4 - defsIDependUpon: [ ] - isProvides: false -... diff --git a/test/Driver/Dependencies/Inputs/private-after-fine/d.swiftdeps b/test/Driver/Dependencies/Inputs/private-after-fine/d.swiftdeps deleted file mode 100644 index 7866ec7f6385b8d920c87a19518fa72d0c47ab0c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 408 zcmaiwzfZzI9L2AvK#7SlChjFMhT~dVC~a-RfEAoDF(GlbKNCzuBL-J;GBP+YGB|W_ zRHqIM;pLvqR=woicfZa#=UT%AVp2+J>AO*jRm-h3i)M5hi(v79=k z1S_kE&M=wq#o0RHkOY$@S7#AjfeK|2jj~FZJ^Vkg^qyf9{cW--=QP!1!4WwebeR(d0M#Xe} zQ>*&2wBdZ+4)sdNynsMf+(C$y`|E~)-Sv?Oe^tA2yS++qnaLvD*wT>A4Bhj!zz!`> f4?Nwp^s3EjCi9Oi*Rb3iMw#6W`Y)R)z)(0pH9C6} diff --git a/test/Driver/Dependencies/Inputs/private-after-fine/f.swift b/test/Driver/Dependencies/Inputs/private-after-fine/f.swift deleted file mode 100644 index 993aae48b3a01..0000000000000 --- a/test/Driver/Dependencies/Inputs/private-after-fine/f.swift +++ /dev/null @@ -1,46 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: f.swiftdeps - fingerprint: 9e53bc0d9f7b3db367329e46ec87a57a - sequenceNumber: 0 - defsIDependUpon: [ 2] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: f.swiftdeps - fingerprint: 9e53bc0d9f7b3db367329e46ec87a57a - sequenceNumber: 1 - defsIDependUpon: [ 4 ] - isProvides: true - - key: - kind: nominal - aspect: interface - context: 4main1fV - name: '' - sequenceNumber: 2 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: nominal - aspect: implementation - context: 4main1fV - name: '' - sequenceNumber: 3 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: nominal - aspect: interface - context: 4main1eV - name: '' - sequenceNumber: 4 - defsIDependUpon: [ ] - isProvides: false -... diff --git a/test/Driver/Dependencies/Inputs/private-after-fine/f.swiftdeps b/test/Driver/Dependencies/Inputs/private-after-fine/f.swiftdeps deleted file mode 100644 index 24bed2a42a7facf0b13e4fa364b53fb46d084896..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 436 zcmaiwu}{K46vkf1b6M*k9L29FSR^djii%Z4BV5CDh^??GtcF(VmJy|$lxv3|Qko?SYGe-EPRDHz0N2V4IksMm- z8Op3YGDmpA7Uye+g=YvaS#Iu;72onOkN7C#Gcx)T-fjNPv>Dq1RE{WMQcdmH wietJ)M|C=?Zm0#57IkW$7;VjH#}UMKH|YOt6kk diff --git a/test/Driver/Dependencies/Inputs/private-after-fine/g.swift b/test/Driver/Dependencies/Inputs/private-after-fine/g.swift deleted file mode 100644 index cea259c341645..0000000000000 --- a/test/Driver/Dependencies/Inputs/private-after-fine/g.swift +++ /dev/null @@ -1,46 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: g.swiftdeps - fingerprint: 9e53bc0d9f7b3db367329e46ec87a57a - sequenceNumber: 0 - defsIDependUpon: [ 2, 4 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: g.swiftdeps - fingerprint: 9e53bc0d9f7b3db367329e46ec87a57a - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: nominal - aspect: interface - context: 4main1gV - name: '' - sequenceNumber: 2 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: nominal - aspect: implementation - context: 4main1gV - name: '' - sequenceNumber: 3 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: nominal - aspect: interface - context: 4main1fV - name: '' - sequenceNumber: 4 - defsIDependUpon: [ ] - isProvides: false -... diff --git a/test/Driver/Dependencies/Inputs/private-after-fine/g.swiftdeps b/test/Driver/Dependencies/Inputs/private-after-fine/g.swiftdeps deleted file mode 100644 index f6402b515dafdb74310806c5934c87aadc6282ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 436 zcmaiwzfZzY5XY|%kP?kCM)#5!!{ZfND5a8M0u`JvF(F}w{vw!&Mhvc`GBP+YGB|W_ zRHqIM&BLJsqkoArgO3n(bhyjqzMt*Lm7_}|2LyjPcxKRJtniH9|4kWfKzrevPOX* zzl^YOhSaP5=m&SWm*BU!w@Lyr`HK}aA9~KcFtqOmy_>$EW|fR(4~0~t(Yg>EHCODI zMLBPZ!iF=IlB47t+psY6^4kF2>|mW>*|!7W*{=%MonAlJZT-zoE4Brw5|N=~tBPUD xR>{!}#WIwlrsPX@p=g^YT1VA7@hHR*#CA6{{L9CZ06_#s?g2o%y2CC4_y!45fQA47 diff --git a/test/Driver/Dependencies/Inputs/private-after-fine/output.json b/test/Driver/Dependencies/Inputs/private-after-fine/output.json deleted file mode 100644 index c15439d5780e4..0000000000000 --- a/test/Driver/Dependencies/Inputs/private-after-fine/output.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "./a.swift": { - "object": "./a.o", - "swift-dependencies": "./a.swiftdeps" - }, - "./b.swift": { - "object": "./b.o", - "swift-dependencies": "./b.swiftdeps" - }, - "./c.swift": { - "object": "./c.o", - "swift-dependencies": "./c.swiftdeps" - }, - "./d.swift": { - "object": "./d.o", - "swift-dependencies": "./d.swiftdeps" - }, - "./e.swift": { - "object": "./e.o", - "swift-dependencies": "./e.swiftdeps" - }, - "./f.swift": { - "object": "./f.o", - "swift-dependencies": "./f.swiftdeps" - }, - "./g.swift": { - "object": "./g.o", - "swift-dependencies": "./g.swiftdeps" - }, - "": { - "swift-dependencies": "./main~buildrecord.swiftdeps" - } -} diff --git a/test/Driver/Dependencies/Inputs/private-fine/a.swift b/test/Driver/Dependencies/Inputs/private-fine/a.swift deleted file mode 100644 index 9d80d172a2de4..0000000000000 --- a/test/Driver/Dependencies/Inputs/private-fine/a.swift +++ /dev/null @@ -1,38 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: A.swiftdeps - fingerprint: 605b8543d8bbf247217381a68ce188b8 - sequenceNumber: 0 - defsIDependUpon: [ 2 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: A.swiftdeps - fingerprint: 605b8543d8bbf247217381a68ce188b8 - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: nominal - aspect: interface - context: 4main1aV - name: '' - sequenceNumber: 2 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: nominal - aspect: implementation - context: 4main1aV - name: '' - sequenceNumber: 3 - defsIDependUpon: [ ] - isProvides: true -... diff --git a/test/Driver/Dependencies/Inputs/private-fine/b.swift b/test/Driver/Dependencies/Inputs/private-fine/b.swift deleted file mode 100644 index c1ece8eaba069..0000000000000 --- a/test/Driver/Dependencies/Inputs/private-fine/b.swift +++ /dev/null @@ -1,46 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: b.swiftdeps - fingerprint: 9e53bc0d9f7b3db367329e46ec87a57a - sequenceNumber: 0 - defsIDependUpon: [ 2, 4 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: b.swiftdeps - fingerprint: 9e53bc0d9f7b3db367329e46ec87a57a - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: nominal - aspect: interface - context: 4main1bV - name: '' - sequenceNumber: 2 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: nominal - aspect: implementation - context: 4main1bV - name: '' - sequenceNumber: 3 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: nominal - aspect: interface - context: 4main1aV - name: '' - sequenceNumber: 4 - defsIDependUpon: [ ] - isProvides: false -... diff --git a/test/Driver/Dependencies/Inputs/private-fine/c.swift b/test/Driver/Dependencies/Inputs/private-fine/c.swift deleted file mode 100644 index 977466a86f224..0000000000000 --- a/test/Driver/Dependencies/Inputs/private-fine/c.swift +++ /dev/null @@ -1,54 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: c.swiftdeps - fingerprint: 9e53bc0d9f7b3db367329e46ec87a57a - sequenceNumber: 0 - defsIDependUpon: [ 2, 4 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: c.swiftdeps - fingerprint: 9e53bc0d9f7b3db367329e46ec87a57a - sequenceNumber: 1 - defsIDependUpon: [ 5 ] - isProvides: true - - key: - kind: nominal - aspect: interface - context: 4main1cV - name: '' - sequenceNumber: 2 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: nominal - aspect: implementation - context: 4main1cV - name: '' - sequenceNumber: 3 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: nominal - aspect: interface - context: 4main1eV - name: '' - sequenceNumber: 4 - defsIDependUpon: [ ] - isProvides: false - - key: - kind: nominal - aspect: interface - context: 4main1bV - name: '' - sequenceNumber: 5 - defsIDependUpon: [ ] - isProvides: false -... diff --git a/test/Driver/Dependencies/Inputs/private-fine/d.swift b/test/Driver/Dependencies/Inputs/private-fine/d.swift deleted file mode 100644 index a2c4fc4b078bb..0000000000000 --- a/test/Driver/Dependencies/Inputs/private-fine/d.swift +++ /dev/null @@ -1,46 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: d.swiftdeps - fingerprint: 9e53bc0d9f7b3db367329e46ec87a57a - sequenceNumber: 0 - defsIDependUpon: [ 2, 4 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: d.swiftdeps - fingerprint: 9e53bc0d9f7b3db367329e46ec87a57a - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: nominal - aspect: interface - context: 4main1dV - name: '' - sequenceNumber: 2 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: nominal - aspect: implementation - context: 4main1dV - name: '' - sequenceNumber: 3 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: nominal - aspect: interface - context: 4main1cV - name: '' - sequenceNumber: 4 - defsIDependUpon: [ ] - isProvides: false -... diff --git a/test/Driver/Dependencies/Inputs/private-fine/e.swift b/test/Driver/Dependencies/Inputs/private-fine/e.swift deleted file mode 100644 index 5a83550fc2d60..0000000000000 --- a/test/Driver/Dependencies/Inputs/private-fine/e.swift +++ /dev/null @@ -1,38 +0,0 @@ -# Fine-grained v0 ---- -allNodes: - - key: - kind: sourceFileProvide - aspect: interface - context: '' - name: e.swiftdeps - fingerprint: 605b8543d8bbf247217381a68ce188b8 - sequenceNumber: 0 - defsIDependUpon: [ 2 ] - isProvides: true - - key: - kind: sourceFileProvide - aspect: implementation - context: '' - name: e.swiftdeps - fingerprint: 605b8543d8bbf247217381a68ce188b8 - sequenceNumber: 1 - defsIDependUpon: [ ] - isProvides: true - - key: - kind: nominal - aspect: interface - context: 4main1eV - name: '' - sequenceNumber: 2 - defsIDependUpon: [ 0 ] - isProvides: true - - key: - kind: nominal - aspect: implementation - context: 4main1eV - name: '' - sequenceNumber: 3 - defsIDependUpon: [ ] - isProvides: true -... diff --git a/test/Driver/Dependencies/Inputs/private-fine/output.json b/test/Driver/Dependencies/Inputs/private-fine/output.json deleted file mode 100644 index 497186398e457..0000000000000 --- a/test/Driver/Dependencies/Inputs/private-fine/output.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "./a.swift": { - "object": "./a.o", - "swift-dependencies": "./a.swiftdeps" - }, - "./b.swift": { - "object": "./b.o", - "swift-dependencies": "./b.swiftdeps" - }, - "./c.swift": { - "object": "./c.o", - "swift-dependencies": "./c.swiftdeps" - }, - "./d.swift": { - "object": "./d.o", - "swift-dependencies": "./d.swiftdeps" - }, - "./e.swift": { - "object": "./e.o", - "swift-dependencies": "./e.swiftdeps" - }, - "": { - "swift-dependencies": "./main~buildrecord.swiftdeps" - } -} diff --git a/test/Driver/Dependencies/Inputs/private/a.swift b/test/Driver/Dependencies/Inputs/private/a.swift deleted file mode 100644 index 76fb34c551d66..0000000000000 --- a/test/Driver/Dependencies/Inputs/private/a.swift +++ /dev/null @@ -1,2 +0,0 @@ -# Dependencies after compilation: -provides-nominal: [a] diff --git a/test/Driver/Dependencies/Inputs/private/b.swift b/test/Driver/Dependencies/Inputs/private/b.swift deleted file mode 100644 index a6d68a4a1ee9b..0000000000000 --- a/test/Driver/Dependencies/Inputs/private/b.swift +++ /dev/null @@ -1,3 +0,0 @@ -# Dependencies after compilation: -provides-nominal: [b] -depends-nominal: [a] diff --git a/test/Driver/Dependencies/Inputs/private/c.swift b/test/Driver/Dependencies/Inputs/private/c.swift deleted file mode 100644 index 5a75d8ff879c9..0000000000000 --- a/test/Driver/Dependencies/Inputs/private/c.swift +++ /dev/null @@ -1,3 +0,0 @@ -# Dependencies after compilation: -provides-nominal: [c] -depends-nominal: [!private b, e] diff --git a/test/Driver/Dependencies/Inputs/private/d.swift b/test/Driver/Dependencies/Inputs/private/d.swift deleted file mode 100644 index 00e16535c6750..0000000000000 --- a/test/Driver/Dependencies/Inputs/private/d.swift +++ /dev/null @@ -1,3 +0,0 @@ -# Dependencies after compilation: -provides-nominal: [d] -depends-nominal: [c] diff --git a/test/Driver/Dependencies/Inputs/private/e.swift b/test/Driver/Dependencies/Inputs/private/e.swift deleted file mode 100644 index 41ed092552738..0000000000000 --- a/test/Driver/Dependencies/Inputs/private/e.swift +++ /dev/null @@ -1,2 +0,0 @@ -# Dependencies after compilation: -provides-nominal: [e] diff --git a/test/Driver/Dependencies/Inputs/private/output.json b/test/Driver/Dependencies/Inputs/private/output.json deleted file mode 100644 index 497186398e457..0000000000000 --- a/test/Driver/Dependencies/Inputs/private/output.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "./a.swift": { - "object": "./a.o", - "swift-dependencies": "./a.swiftdeps" - }, - "./b.swift": { - "object": "./b.o", - "swift-dependencies": "./b.swiftdeps" - }, - "./c.swift": { - "object": "./c.o", - "swift-dependencies": "./c.swiftdeps" - }, - "./d.swift": { - "object": "./d.o", - "swift-dependencies": "./d.swiftdeps" - }, - "./e.swift": { - "object": "./e.o", - "swift-dependencies": "./e.swiftdeps" - }, - "": { - "swift-dependencies": "./main~buildrecord.swiftdeps" - } -} diff --git a/test/Driver/Dependencies/Inputs/touch.py b/test/Driver/Dependencies/Inputs/touch.py deleted file mode 100755 index f5c609089303c..0000000000000 --- a/test/Driver/Dependencies/Inputs/touch.py +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env python -# touch.py - /bin/touch that writes the LLVM epoch -*- python -*- -# -# This source file is part of the Swift.org open source project -# -# Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors -# Licensed under Apache License v2.0 with Runtime Library Exception -# -# See https://swift.org/LICENSE.txt for license information -# See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -# -# ---------------------------------------------------------------------------- -# -# Like /bin/touch, but takes a time using the system_clock epoch. -# -# ---------------------------------------------------------------------------- - -import os -import sys - -assert len(sys.argv) >= 2 -timeVal = int(sys.argv[1]) - -# Update the output file mtime, or create it if necessary. -# From http://stackoverflow.com/a/1160227. -for outputFile in sys.argv[2:]: - with open(outputFile, 'a'): - os.utime(outputFile, (timeVal, timeVal)) diff --git a/test/Driver/Dependencies/Inputs/update-dependencies-bad.py b/test/Driver/Dependencies/Inputs/update-dependencies-bad.py deleted file mode 100755 index dd5463259410f..0000000000000 --- a/test/Driver/Dependencies/Inputs/update-dependencies-bad.py +++ /dev/null @@ -1,58 +0,0 @@ -#!/usr/bin/env python -# update-dependencies-bad.py - Fails on bad.swift -*- python -*- -# -# This source file is part of the Swift.org open source project -# -# Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors -# Licensed under Apache License v2.0 with Runtime Library Exception -# -# See https://swift.org/LICENSE.txt for license information -# See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -# -# ---------------------------------------------------------------------------- -# -# Fails if the input file is named "bad.swift" or "crash.swift"; otherwise -# dispatches to update-dependencies.py. "crash.swift" results in an -# exit-by-SIGKILL -# -# ---------------------------------------------------------------------------- - -from __future__ import print_function - -import os -import shutil -import signal -import subprocess -import sys - -assert sys.argv[2] == '-frontend' - -primaryFile = sys.argv[sys.argv.index('-primary-file') + 1] - -if (os.path.basename(primaryFile) == 'bad.swift' or - os.path.basename(primaryFile) == 'crash.swift'): - print("Handled", os.path.basename(primaryFile)) - - # Replace the dependencies file with the input file. - try: - depsFile = sys.argv[sys.argv.index( - '-emit-reference-dependencies-path') + 1] - - returncode = subprocess.call([sys.argv[1], "--from-yaml", - "--input-filename=" + primaryFile, - "--output-filename=" + depsFile]) - # If the input is not valid YAML, just copy it over verbatim; - # we're testing a case where we produced a corrupted output file. - if returncode != 0: - shutil.copyfile(primaryFile, depsFile) - except ValueError: - pass - - if os.path.basename(primaryFile) == 'bad.swift': - sys.exit(1) - else: - sys.stdout.flush() - os.kill(os.getpid(), signal.SIGKILL) - -execDir = os.path.dirname(os.path.abspath(__file__)) -exec(open(os.path.join(execDir, "update-dependencies.py")).read()) diff --git a/test/Driver/Dependencies/Inputs/update-dependencies.py b/test/Driver/Dependencies/Inputs/update-dependencies.py deleted file mode 100755 index c366439e01358..0000000000000 --- a/test/Driver/Dependencies/Inputs/update-dependencies.py +++ /dev/null @@ -1,67 +0,0 @@ -#!/usr/bin/env python -# update-dependencies.py - Fake build for dependency analysis -*- python -*- -# -# This source file is part of the Swift.org open source project -# -# Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors -# Licensed under Apache License v2.0 with Runtime Library Exception -# -# See https://swift.org/LICENSE.txt for license information -# See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -# -# ---------------------------------------------------------------------------- -# -# Simulates a Swift compilation for the purposes of dependency analysis. -# That means this has two tasks: -# -# 1. Update the main output of the compilation job. -# 2. Update the associated dependencies file, in case anything changed. -# -# Since we only care about the timestamp of the output, the script just makes -# sure the file's mtime is set to $NOW, creating it if it doesn't exist. -# We don't actually care about the content of the input file, either, so we -# actually stick *the new dependencies* in the input file, and copy that over -# the old dependencies (if present). -# -# If invoked in non-primary-file mode, it only creates the output file. -# -# ---------------------------------------------------------------------------- - -from __future__ import print_function - -import os -import shutil -import subprocess -import sys - -assert sys.argv[2] == '-frontend' - -# NB: The bitcode options automatically specify a -primary-file, even in cases -# where we do not wish to use a dependencies file in the test. -if '-primary-file' in sys.argv \ - and '-embed-bitcode' not in sys.argv and '-emit-bc' not in sys.argv: - primaryFile = sys.argv[sys.argv.index('-primary-file') + 1] - depsFile = sys.argv[sys.argv.index( - '-emit-reference-dependencies-path') + 1] - - returncode = subprocess.call([sys.argv[1], "--from-yaml", - "--input-filename=" + primaryFile, - "--output-filename=" + depsFile]) - if returncode != 0: - # If the input is not valid YAML, just copy it over verbatim; - # we're testing a case where we produced a corrupted output file. - shutil.copyfile(primaryFile, depsFile) -else: - primaryFile = None - -outputFile = sys.argv[sys.argv.index('-o') + 1] - -# Update the output file mtime, or create it if necessary. -# From http://stackoverflow.com/a/1160227. -with open(outputFile, 'a'): - os.utime(outputFile, None) - -if primaryFile: - print("Handled", os.path.basename(primaryFile)) -else: - print("Produced", os.path.basename(outputFile)) diff --git a/test/Driver/Dependencies/README.txt b/test/Driver/Dependencies/README.txt deleted file mode 100644 index f10ee217fe3f0..0000000000000 --- a/test/Driver/Dependencies/README.txt +++ /dev/null @@ -1,28 +0,0 @@ -Many of the tests in this directory are set up to model particular dependency graphs, which are set up via the folders in the Inputs/ directory. Most of these tests describe the dependency graph in ASCII art form at the top of the file. - -a | b Independent files 'a' and 'b' -a ==> b File 'b' depends on file 'a' -a <==> b File 'a' and file 'b' depend on each other -a --> b File 'b' privately depends on file 'a' (normal dependencies cascade) -"./file" ==> a File 'a' depends on external, non-source file './file' - -Because of the way the tests are set up, the dependency information is put into the .swift files; any such test needs to start by "building" everything to copy that information into .swiftdeps files. To avoid timestamp issues, most of these tests start with: - - // RUN: %empty-directory(%t) - // RUN: cp -r %S/Inputs//* %t - // RUN: touch -t 201401240005 %t/* - - -Some tests deal with the dependency graph being updated during the course of an incremental build. These tests have *two* ASCII dependency graphs at the top of the file, illustrating the "before" and "after" cases. This necessitates some additional artwork: - -a +==> b File 'a' changes its "provides" set in a way that affects file 'b' -a ==>+ b File 'b' changes its "depends" set in a way that affects its dependency on file 'a' - -In order to correctly run these tests, the "before" information is put into .swiftdeps files, while the "after" information is put into .swift files. The "after" information will be copied on top of the "before" information for any file that is "built". In order to not rebuild everything, each file also needs a dummy .o output file. - -Most of these tests start with: - - // RUN: %empty-directory(%t) - // RUN: cp -r %S/Inputs//* %t - // RUN: touch -t 201401240005 %t/*.swift - // RUN: touch -t 201401240006 %t/*.o diff --git a/test/Driver/Dependencies/bindings-build-record.swift b/test/Driver/Dependencies/bindings-build-record.swift deleted file mode 100644 index 8df39c3b5ee02..0000000000000 --- a/test/Driver/Dependencies/bindings-build-record.swift +++ /dev/null @@ -1,54 +0,0 @@ -// REQUIRES: shell -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/bindings-build-record/* %t -// RUN: %{python} %S/Inputs/touch.py 443865900 %t/* - -// RUN: cd %t && %swiftc_driver -driver-print-bindings ./main.swift ./other.swift ./yet-another.swift -incremental -disable-direct-intramodule-dependencies -driver-show-incremental -output-file-map %t/output.json 2>&1 |%FileCheck %s -check-prefix=MUST-EXEC - -// MUST-EXEC-NOT: warning -// MUST-EXEC: inputs: ["./main.swift"], output: {object: "./main.o", swift-dependencies: "./main.swiftdeps"} -// MUST-EXEC: inputs: ["./other.swift"], output: {object: "./other.o", swift-dependencies: "./other.swiftdeps"} -// MUST-EXEC: inputs: ["./yet-another.swift"], output: {object: "./yet-another.o", swift-dependencies: "./yet-another.swiftdeps"} -// MUST-EXEC: Disabling incremental build: could not read build record - -// RUN: echo '{version: "'$(%swiftc_driver_plain -version | head -n1)'", inputs: {"./main.swift": [443865900, 0], "./other.swift": [443865900, 0], "./yet-another.swift": [443865900, 0]}, build_time: [443865901, 0]}' > %t/main~buildrecord.swiftdeps -// RUN: cd %t && %swiftc_driver -driver-print-bindings ./main.swift ./other.swift ./yet-another.swift -incremental -disable-direct-intramodule-dependencies -output-file-map %t/output.json 2>&1 | %FileCheck %s -check-prefix=NO-EXEC - -// NO-EXEC: inputs: ["./main.swift"], output: {{[{].*[}]}}, condition: check-dependencies -// NO-EXEC: inputs: ["./other.swift"], output: {{[{].*[}]}}, condition: check-dependencies -// NO-EXEC: inputs: ["./yet-another.swift"], output: {{[{].*[}]}}, condition: check-dependencies - - -// RUN: echo '{version: "'$(%swiftc_driver_plain -version | head -n1)'", inputs: {"./main.swift": [443865900, 0], "./other.swift": !private [443865900, 0], "./yet-another.swift": !dirty [443865900, 0]}, build_time: [443865901, 0]}' > %t/main~buildrecord.swiftdeps -// RUN: cd %t && %swiftc_driver -driver-print-bindings ./main.swift ./other.swift ./yet-another.swift -incremental -disable-direct-intramodule-dependencies -output-file-map %t/output.json 2>&1 | %FileCheck %s -check-prefix=BUILD-RECORD - -// BUILD-RECORD: inputs: ["./main.swift"], output: {{[{].*[}]}}, condition: check-dependencies{{$}} -// BUILD-RECORD: inputs: ["./other.swift"], output: {{[{].*[}]}}, condition: run-without-cascading{{$}} -// BUILD-RECORD: inputs: ["./yet-another.swift"], output: {{[{].*[}]$}} - -// RUN: cd %t && %swiftc_driver -driver-print-bindings ./main.swift ./other.swift ./yet-another.swift ./added.swift -incremental -disable-direct-intramodule-dependencies -output-file-map %t/output.json 2>&1 > %t/added.txt -// RUN: %FileCheck %s -check-prefix=BUILD-RECORD < %t/added.txt -// RUN: %FileCheck %s -check-prefix=FILE-ADDED < %t/added.txt - -// FILE-ADDED: inputs: ["./added.swift"], output: {{[{].*[}]}}, condition: newly-added{{$}} - -// RUN: %{python} %S/Inputs/touch.py 443865960 %t/main.swift -// RUN: cd %t && %swiftc_driver -driver-print-bindings ./main.swift ./other.swift ./yet-another.swift -incremental -disable-direct-intramodule-dependencies -output-file-map %t/output.json 2>&1 | %FileCheck %s -check-prefix=BUILD-RECORD-PLUS-CHANGE -// BUILD-RECORD-PLUS-CHANGE: inputs: ["./main.swift"], output: {{[{].*[}]}}, condition: run-without-cascading -// BUILD-RECORD-PLUS-CHANGE: inputs: ["./other.swift"], output: {{[{].*[}]}}, condition: run-without-cascading{{$}} -// BUILD-RECORD-PLUS-CHANGE: inputs: ["./yet-another.swift"], output: {{[{].*[}]$}} - -// RUN: %{python} %S/Inputs/touch.py 443865900 %t/* -// RUN: cd %t && %swiftc_driver -driver-print-bindings ./main.swift ./other.swift -incremental -disable-direct-intramodule-dependencies -output-file-map %t/output.json 2>&1 | %FileCheck %s -check-prefix=FILE-REMOVED -// FILE-REMOVED: inputs: ["./main.swift"], output: {{[{].*[}]$}} -// FILE-REMOVED: inputs: ["./other.swift"], output: {{[{].*[}]$}} -// FILE-REMOVED-NOT: yet-another.swift - - -// RUN: echo '{version: "bogus", inputs: {"./main.swift": [443865900, 0], "./other.swift": !private [443865900, 0], "./yet-another.swift": !dirty [443865900, 0]}}' > %t/main~buildrecord.swiftdeps -// RUN: cd %t && %swiftc_driver -driver-print-bindings ./main.swift ./other.swift ./yet-another.swift -incremental -output-file-map %t/output.json 2>&1 | %FileCheck %s -check-prefix=INVALID-RECORD - -// INVALID-RECORD-NOT: warning -// INVALID-RECORD: inputs: ["./main.swift"], output: {{[{].*[}]$}} -// INVALID-RECORD: inputs: ["./other.swift"], output: {{[{].*[}]$}} -// INVALID-RECORD: inputs: ["./yet-another.swift"], output: {{[{].*[}]$}} diff --git a/test/Driver/Dependencies/chained-additional-kinds-fine.swift b/test/Driver/Dependencies/chained-additional-kinds-fine.swift deleted file mode 100644 index d947855e05c6f..0000000000000 --- a/test/Driver/Dependencies/chained-additional-kinds-fine.swift +++ /dev/null @@ -1,26 +0,0 @@ -// other ==> main ==> yet-another - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/chained-additional-kinds-fine/* %t -// RUN: touch -t 201401240005 %t/* - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift ./yet-another.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s - -// CHECK-FIRST-NOT: warning -// CHECK-FIRST: Handled main.swift -// CHECK-FIRST: Handled other.swift -// CHECK-FIRST: Handled yet-another.swift - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift ./yet-another.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s - -// CHECK-SECOND-NOT: Handled - -// RUN: touch -t 201401240006 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift ./yet-another.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s - -// CHECK-THIRD-DAG: Handled other.swift -// CHECK-THIRD-DAG: Handled main.swift -// CHECK-THIRD-DAG: Handled yet-another.swift - -// RUN: touch -t 201401240007 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./other.swift ./main.swift ./yet-another.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s diff --git a/test/Driver/Dependencies/chained-after-fine.swift b/test/Driver/Dependencies/chained-after-fine.swift deleted file mode 100644 index ec5ba6c95c265..0000000000000 --- a/test/Driver/Dependencies/chained-after-fine.swift +++ /dev/null @@ -1,23 +0,0 @@ -/// other ==> main | yet-another -/// other ==> main +==> yet-another - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/chained-after-fine/* %t -// RUN: touch -t 201401240005 %t/*.swift - -// Generate the build record... -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift ./yet-another.swift -module-name main -j1 -v - -// ...then reset the .swiftdeps files. -// RUN: cp -r %S/Inputs/chained-after-fine/*.swiftdeps %t -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift ./yet-another.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s - -// CHECK-FIRST-NOT: warning -// CHECK-FIRST-NOT: Handled - -// RUN: touch -t 201401240006 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./yet-another.swift ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s - -// CHECK-THIRD: Handled main.swift -// CHECK-THIRD: Handled other.swift -// CHECK-THIRD: Handled yet-another.swift diff --git a/test/Driver/Dependencies/chained-fine.swift b/test/Driver/Dependencies/chained-fine.swift deleted file mode 100644 index 5df491ef3f126..0000000000000 --- a/test/Driver/Dependencies/chained-fine.swift +++ /dev/null @@ -1,32 +0,0 @@ -// other ==> main ==> yet-another - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/chained-fine/* %t -// RUN: touch -t 201401240005 %t/* - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift ./yet-another.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s - -// CHECK-FIRST-NOT: warning -// CHECK-FIRST: Handled main.swift -// CHECK-FIRST: Handled other.swift -// CHECK-FIRST: Handled yet-another.swift - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift ./yet-another.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s - -// CHECK-SECOND-NOT: Handled - -// RUN: touch -t 201401240006 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift ./yet-another.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s - -// CHECK-THIRD-DAG: Handled other.swift -// CHECK-THIRD-DAG: Handled main.swift -// CHECK-THIRD-DAG: Handled yet-another.swift - -// RUN: touch -t 201401240007 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./other.swift ./main.swift ./yet-another.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s - -// RUN: touch -t 201401240008 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./yet-another.swift ./other.swift ./main.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s - -// RUN: touch -t 201401240009 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./other.swift ./yet-another.swift ./main.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s diff --git a/test/Driver/Dependencies/chained-private-after-fine.swift b/test/Driver/Dependencies/chained-private-after-fine.swift deleted file mode 100644 index d8cc291bd70a6..0000000000000 --- a/test/Driver/Dependencies/chained-private-after-fine.swift +++ /dev/null @@ -1,23 +0,0 @@ -/// other --> main ==> yet-another -/// other ==>+ main ==> yet-another - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/chained-private-after-fine/* %t -// RUN: touch -t 201401240005 %t/*.swift - -// Generate the build record... -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift ./yet-another.swift -module-name main -j1 -v - -// ...then reset the .swiftdeps files. -// RUN: cp -r %S/Inputs/chained-private-after-fine/*.swiftdeps %t -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift ./yet-another.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s - -// CHECK-FIRST-NOT: warning -// CHECK-FIRST-NOT: Handled - -// RUN: touch -t 201401240006 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./yet-another.swift ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s - -// CHECK-SECOND-DAG: Handled other.swift -// CHECK-SECOND-DAG: Handled main.swift -// CHECK-SECOND: Handled yet-another.swift diff --git a/test/Driver/Dependencies/chained-private-after-multiple-fine.swift b/test/Driver/Dependencies/chained-private-after-multiple-fine.swift deleted file mode 100644 index fb289824a8ce7..0000000000000 --- a/test/Driver/Dependencies/chained-private-after-multiple-fine.swift +++ /dev/null @@ -1,27 +0,0 @@ -/// other --> main ==> yet-another -/// other ==>+ main ==> yet-another - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/chained-private-after-multiple-fine/* %t -// RUN: touch -t 201401240005 %t/*.swift - -// Generate the build record... -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift ./yet-another.swift -module-name main -j1 -v - - - - -// ...then reset the .swiftdeps files. -// RUN: cp -r %S/Inputs/chained-private-after-multiple-fine/*.swiftdeps %t - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift ./yet-another.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s - -// CHECK-FIRST-NOT: warning -// CHECK-FIRST-NOT: Handled - -// RUN: touch -t 201401240006 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./yet-another.swift ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s - -// CHECK-SECOND-DAG: Handled other.swift -// CHECK-SECOND-DAG: Handled main.swift -// CHECK-SECOND-DAG: Handled yet-another.swift diff --git a/test/Driver/Dependencies/chained-private-after-multiple-nominal-members-fine.swift b/test/Driver/Dependencies/chained-private-after-multiple-nominal-members-fine.swift deleted file mode 100644 index 37b15cf35baf4..0000000000000 --- a/test/Driver/Dependencies/chained-private-after-multiple-nominal-members-fine.swift +++ /dev/null @@ -1,23 +0,0 @@ -/// other --> main ==> yet-another -/// other ==>+ main ==> yet-another - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/chained-private-after-multiple-nominal-members-fine/* %t -// RUN: touch -t 201401240005 %t/*.swift - -// Generate the build record... -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift ./yet-another.swift -module-name main -j1 -v - -// ...then reset the .swiftdeps files. -// RUN: cp -r %S/Inputs/chained-private-after-multiple-nominal-members-fine/*.swiftdeps %t -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift ./yet-another.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s - -// CHECK-FIRST-NOT: warning -// CHECK-FIRST-NOT: Handled - -// RUN: touch -t 201401240006 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./yet-another.swift ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s - -// CHECK-SECOND-DAG: Handled other.swift -// CHECK-SECOND-DAG: Handled main.swift -// CHECK-SECOND-DAG: Handled yet-another.swift diff --git a/test/Driver/Dependencies/chained-private-fine.swift b/test/Driver/Dependencies/chained-private-fine.swift deleted file mode 100644 index f9c0b022e19d6..0000000000000 --- a/test/Driver/Dependencies/chained-private-fine.swift +++ /dev/null @@ -1,30 +0,0 @@ -/// other --> main ==> yet-another - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/chained-private-fine/* %t -// RUN: touch -t 201401240005 %t/* - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift ./yet-another.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s - -// CHECK-FIRST-NOT: warning -// CHECK-FIRST: Handled main.swift -// CHECK-FIRST: Handled other.swift -// CHECK-FIRST: Handled yet-another.swift - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift ./yet-another.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s - -// CHECK-SECOND-NOT: Handled - -// RUN: touch -t 201401240006 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift ./yet-another.swift -module-name main -j1 -v >%t/outputToCheck 2>&1 -// RUN: %FileCheck -check-prefix=CHECK-THIRD %s < %t/outputToCheck - -// Driver now schedules jobs in the order the inputs were given, but -// either order is fine. -// CHECK-THIRD-DAG: Handled main.swift -// CHECK-THIRD-DAG: Handled other.swift - -// RUN: %FileCheck -check-prefix=CHECK-THIRD-EXCLUSION %s < %t/outputToCheck - -// CHECK-THIRD-EXCLUSION-NOT: Handled yet-another.swift - diff --git a/test/Driver/Dependencies/check-interface-implementation-fine.swift b/test/Driver/Dependencies/check-interface-implementation-fine.swift deleted file mode 100644 index 5a06f361a5eb5..0000000000000 --- a/test/Driver/Dependencies/check-interface-implementation-fine.swift +++ /dev/null @@ -1,40 +0,0 @@ -/// The fine-grained dependency graph has implicit dependencies from interfaces to implementations. -/// These are not presently tested because depends nodes are marked as depending in the interface, -/// as of 1/9/20. But this test will check fail if those links are not followed. - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/check-interface-implementation-fine/* %t -// RUN: touch -t 201401240005 %t/* - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./a.swift ./c.swift ./bad.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s -// RUN: %FileCheck -check-prefix=CHECK-RECORD-CLEAN %s < %t/main~buildrecord.swiftdeps - -// CHECK-FIRST-NOT: warning -// CHECK-FIRST: Handled a.swift -// CHECK-FIRST: Handled c.swift -// CHECK-FIRST: Handled bad.swift - -// CHECK-RECORD-CLEAN-DAG: "./a.swift": [ -// CHECK-RECORD-CLEAN-DAG: "./bad.swift": [ -// CHECK-RECORD-CLEAN-DAG: "./c.swift": [ - - -// RUN: touch -t 201401240006 %t/a.swift -// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./a.swift ./bad.swift ./c.swift -module-name main -j1 -v -driver-show-incremental > %t/a.txt 2>&1 -// RUN: %FileCheck -check-prefix=CHECK-A %s < %t/a.txt -// RUN: %FileCheck -check-prefix=NEGATIVE-A %s < %t/a.txt -// RUN: %FileCheck -check-prefix=CHECK-RECORD-A %s < %t/main~buildrecord.swiftdeps - -// CHECK-A: Handled a.swift -// CHECK-A: Handled bad.swift -// NEGATIVE-A-NOT: Handled c.swift - -// CHECK-RECORD-A-DAG: "./a.swift": [ -// CHECK-RECORD-A-DAG: "./bad.swift": !private [ -// CHECK-RECORD-A-DAG: "./c.swift": !private [ - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./a.swift ./bad.swift ./c.swift -module-name main -j1 -v -driver-show-incremental 2>&1 | %FileCheck -check-prefix CHECK-BC %s - -// CHECK-BC-NOT: Handled a.swift -// CHECK-BC-DAG: Handled bad.swift -// CHECK-BC-DAG: Handled c.swift diff --git a/test/Driver/Dependencies/crash-added-fine.swift b/test/Driver/Dependencies/crash-added-fine.swift deleted file mode 100644 index 71357992712cf..0000000000000 --- a/test/Driver/Dependencies/crash-added-fine.swift +++ /dev/null @@ -1,39 +0,0 @@ -/// crash ==> main | crash --> other - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/crash-simple-fine/* %t -// RUN: touch -t 201401240005 %t/* - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-INITIAL %s - -// CHECK-INITIAL-NOT: warning -// CHECK-INITIAL: Handled main.swift -// CHECK-INITIAL: Handled other.swift - -// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift ./crash.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-ADDED %s -// RUN: %FileCheck -check-prefix=CHECK-RECORD-ADDED %s < %t/main~buildrecord.swiftdeps - -// CHECK-ADDED-NOT: Handled -// CHECK-ADDED: Handled crash.swift -// CHECK-ADDED-NOT: Handled - -// CHECK-RECORD-ADDED-DAG: "./crash.swift": !private [ -// CHECK-RECORD-ADDED-DAG: "./main.swift": [ -// CHECK-RECORD-ADDED-DAG: "./other.swift": [ - - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/crash-simple-fine/* %t -// RUN: touch -t 201401240005 %t/* - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-INITIAL %s - -// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./crash.swift ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-ADDED %s -// RUN: %FileCheck -check-prefix=CHECK-RECORD-ADDED %s < %t/main~buildrecord.swiftdeps - - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./crash.swift ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIXED %s - -// CHECK-FIXED-DAG: Handled crash.swift -// CHECK-FIXED-DAG: Handled main.swift -// CHECK-FIXED-DAG: Handled other.swift diff --git a/test/Driver/Dependencies/crash-new-fine.swift b/test/Driver/Dependencies/crash-new-fine.swift deleted file mode 100644 index 788aab1492ad1..0000000000000 --- a/test/Driver/Dependencies/crash-new-fine.swift +++ /dev/null @@ -1,76 +0,0 @@ -/// crash ==> main | crash --> other - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/crash-simple-with-swiftdeps-fine/* %t -// RUN: touch -t 201401240005 %t/* - -// Initially compile all inputs, crash will fail. - -// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./crash.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck %s -// CHECK-NOT: warning -// CHECK: Handled main.swift -// CHECK: Handled crash.swift -// CHECK-NOT: Handled other.swift - -// Put crash.swift first to assure it gets scheduled first. -// The others get queued, but not dispatched because crash crashes. - -// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./crash.swift ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-BAD-ONLY %s - -// CHECK-BAD-ONLY-NOT: warning -// CHECK-BAD-ONLY-NOT: Handled -// CHECK-BAD-ONLY: Handled crash.swift -// CHECK-BAD-ONLY-NOT: Handled - -// Make crash succeed and all get compiled, exactly once. - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./crash.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-OKAY %s -// CHECK-OKAY: Handled main.swift -// CHECK-OKAY: Handled crash.swift -// CHECK-OKAY: Handled other.swift -// CHECK-OKAY-NOT: Handled - -// Make crash crash again: - -// RUN: touch -t 201401240006 %t/crash.swift -// RUN: rm %t/crash.swiftdeps -// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./crash.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck %s - -// And repair crash: - -// RUN: touch -t 201401240005 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./crash.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-OKAY-2 %s - -// CHECK-OKAY-2-DAG: Handled crash.swift -// CHECK-OKAY-2-DAG: Handled other.swift -// CHECK-OKAY-2-DAG: Handled main.swift - -// Touch main so its newer, remove main.swiftdeps and make crash crash: -// Driver will fall back to non-incremental, will compile main, -// will compile crash, and then stop. - -// RUN: touch -t 201401240006 %t/main.swift -// RUN: rm %t/main.swiftdeps -// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./crash.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-NO-MAIN-SWIFTDEPS %s - -// CHECK-NO-MAIN-SWIFTDEPS-NOT: warning -// CHECK-NO-MAIN-SWIFTDEPS: Handled main.swift -// CHECK-NO-MAIN-SWIFTDEPS: Handled crash.swift -// CHECK-NO-MAIN-SWIFTDEPS-NOT: Handled other.swift - - -// Touch all files earlier than last compiled date in the build record. - -// RUN: touch -t 201401240005 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./crash.swift ./other.swift -module-name main -j1 -v 2>&1 -driver-show-incremental -disable-direct-intramodule-dependencies | %FileCheck -check-prefix=CHECK-CURRENT-WITH-CRASH %s - -// CHECK-CURRENT-WITH-CRASH: Handled main.swift -// CHECK-CURRENT-WITH-CRASH: Handled crash.swift -// CHECK-CURRENT-WITH-CRASH: Handled other.swift -// CHECK-CURRENT-WITH-CRASH-NOT: Handled - -// Touch other, but remove its swiftdeps. Should compile everything. - -// RUN: touch -t 201401240006 %t/other.swift -// RUN: rm %t/other.swiftdeps -// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./crash.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck %s diff --git a/test/Driver/Dependencies/crash-simple-fine.swift b/test/Driver/Dependencies/crash-simple-fine.swift deleted file mode 100644 index 9a59645aaaf55..0000000000000 --- a/test/Driver/Dependencies/crash-simple-fine.swift +++ /dev/null @@ -1,31 +0,0 @@ -/// crash ==> main | crash --> other - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/crash-simple-fine/* %t -// RUN: touch -t 201401240005 %t/* - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./crash.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s - -// CHECK-FIRST-NOT: warning -// CHECK-FIRST: Handled main.swift -// CHECK-FIRST: Handled crash.swift -// CHECK-FIRST: Handled other.swift - -// RUN: touch -t 201401240006 %t/crash.swift -// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./crash.swift ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s - -// CHECK-SECOND: Handled crash.swift -// CHECK-SECOND-NOT: Handled main.swift -// CHECK-SECOND-NOT: Handled other.swift - -// RUN: %FileCheck -check-prefix=CHECK-RECORD %s < %t/main~buildrecord.swiftdeps - -// CHECK-RECORD-DAG: "./crash.swift": !private [ -// CHECK-RECORD-DAG: "./main.swift": !private [ -// CHECK-RECORD-DAG: "./other.swift": !private [ - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./crash.swift ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s - -// CHECK-THIRD-DAG: Handled main.swift -// CHECK-THIRD-DAG: Handled crash.swift -// CHECK-THIRD-DAG: Handled other.swift diff --git a/test/Driver/Dependencies/dependencies-preservation-fine.swift b/test/Driver/Dependencies/dependencies-preservation-fine.swift deleted file mode 100644 index adf4fe7b4b626..0000000000000 --- a/test/Driver/Dependencies/dependencies-preservation-fine.swift +++ /dev/null @@ -1,20 +0,0 @@ -// REQUIRES: shell -// Verify that the top-level build record file from the last incremental -// compilation is preserved with the same name, suffixed by a '~'. - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/one-way-fine/* %t -// RUN: %{python} %S/Inputs/touch.py 443865900 %t/* -// RUN: echo '{version: "'$(%swiftc_driver_plain -version | head -n1)'", inputs: {"./main.swift": [443865900, 0], "./other.swift": [443865900, 0]}}' > %t/main~buildrecord.swiftdeps -// RUN: cd %t && %swiftc_driver -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -c ./main.swift ./other.swift -module-name main -incremental -disable-direct-intramodule-dependencies -v -driver-show-incremental -disable-direct-intramodule-dependencies -output-file-map %t/output.json - -// RUN: %FileCheck -check-prefix CHECK-ORIGINAL %s < main~buildrecord.swiftdeps~ -// CHECK-ORIGINAL: inputs: {"./main.swift": [443865900, 0], "./other.swift": [443865900, 0]} - -// RUN: %FileCheck -check-prefix CHECK-OVERWRITTEN %s < main~buildrecord.swiftdeps -// CHECK-OVERWRITTEN: version: "{{.*}}" -// CHECK-OVERWRITTEN: options: "{{.*}}" -// CHECK-OVERWRITTEN: build_time: [{{[0-9]*}}, {{[0-9]*}}] -// CHECK-OVERWRITTEN: inputs: -// CHECK-OVERWRITTEN: "./main.swift": [443865900, 0] -// CHECK-OVERWRITTEN: "./other.swift": [443865900, 0] diff --git a/test/Driver/Dependencies/driver-show-incremental-arguments-fine.swift b/test/Driver/Dependencies/driver-show-incremental-arguments-fine.swift deleted file mode 100644 index 96d579c51185a..0000000000000 --- a/test/Driver/Dependencies/driver-show-incremental-arguments-fine.swift +++ /dev/null @@ -1,25 +0,0 @@ -// REQUIRES: shell -// Test that when: -// -// 1. Using -incremental -disable-direct-intramodule-dependencies -v -driver-show-incremental, and... -// 2. ...the arguments passed to the Swift compiler version differ from the ones -// used in the original compilation... -// -// ...then the driver prints a message indicating that incremental compilation -// is disabled. - - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/one-way-with-swiftdeps-fine/* %t -// RUN: %{python} %S/Inputs/touch.py 443865900 %t/* -// RUN: echo '{version: "'$(%swiftc_driver_plain -version | head -n1)'", inputs: {"./main.swift": [443865900, 0], "./other.swift": [443865900, 0]}}' > %t/main~buildrecord.swiftdeps - -// RUN: cd %t && %swiftc_driver -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -c ./main.swift ./other.swift -module-name main -incremental -disable-direct-intramodule-dependencies -v -driver-show-incremental -disable-direct-intramodule-dependencies -output-file-map %t/output.json | %FileCheck --check-prefix CHECK-INCREMENTAL %s -// CHECK-INCREMENTAL-NOT: Incremental compilation has been disabled -// CHECK-INCREMENTAL: Queuing (initial): {compile: main.o <= main.swift} - -// RUN: cd %t && %swiftc_driver -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -g -c ./main.swift ./other.swift -module-name main -incremental -disable-direct-intramodule-dependencies -v -driver-show-incremental -disable-direct-intramodule-dependencies -output-file-map %t/output.json | %FileCheck --check-prefix CHECK-ARGS-MISMATCH %s -// CHECK-ARGS-MISMATCH: Incremental compilation has been disabled{{.*}}different arguments -// CHECK-ARGS-MISMATCH-NOT: Queuing (initial): {compile: main.o <= main.swift} - - diff --git a/test/Driver/Dependencies/driver-show-incremental-conflicting-arguments-fine.swift b/test/Driver/Dependencies/driver-show-incremental-conflicting-arguments-fine.swift deleted file mode 100644 index 34c52817ac74e..0000000000000 --- a/test/Driver/Dependencies/driver-show-incremental-conflicting-arguments-fine.swift +++ /dev/null @@ -1,32 +0,0 @@ -// REQUIRES: shell -// Test that when: -// -// 1. Using -incremental -disable-direct-intramodule-dependencies -v -driver-show-incremental, but... -// 2. ...options that disable incremental compilation, such as whole module -// optimization or bitcode embedding are specified... -// -// ...then the driver prints a message indicating that incremental compilation -// is disabled. If both are specified, the driver should only print one message. - - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/one-way-with-swiftdeps-fine/* %t -// RUN: %{python} %S/Inputs/touch.py 443865900 %t/* -// RUN: echo '{version: "'$(%swiftc_driver_plain -version | head -n1)'", inputs: {"./main.swift": [443865900, 0], "./other.swift": [443865900, 0]}}' > %t/main~buildrecord.swiftdeps - -// RUN: cd %t && %swiftc_driver -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -c ./main.swift ./other.swift -module-name main -incremental -disable-direct-intramodule-dependencies -v -driver-show-incremental -disable-direct-intramodule-dependencies -output-file-map %t/output.json | %FileCheck --check-prefix CHECK-INCREMENTAL %s -// CHECK-INCREMENTAL-NOT: Incremental compilation has been disabled -// CHECK-INCREMENTAL: Queuing (initial): {compile: main.o <= main.swift} - -// RUN: cd %t && %swiftc_driver -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -c ./main.swift ./other.swift -module-name main -incremental -disable-direct-intramodule-dependencies -v -driver-show-incremental -disable-direct-intramodule-dependencies -whole-module-optimization -output-file-map %t/output.json | %FileCheck --check-prefix CHECK-WMO %s -// CHECK-WMO: Incremental compilation has been disabled{{.*}}whole module optimization -// CHECK-WMO-NOT: Queuing (initial): {compile: main.o <= main.swift} - -// RUN: cd %t && %swiftc_driver -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -c ./main.swift ./other.swift -module-name main -incremental -disable-direct-intramodule-dependencies -v -driver-show-incremental -disable-direct-intramodule-dependencies -embed-bitcode -output-file-map %t/output.json | %FileCheck --check-prefix CHECK-BITCODE %s -// CHECK-BITCODE: Incremental compilation has been disabled{{.*}}LLVM IR bitcode -// CHECK-BITCODE-NOT: Queuing (initial): {compile: main.o <= main.swift} - -// RUN: cd %t && %swiftc_driver -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -c ./main.swift ./other.swift -module-name main -incremental -disable-direct-intramodule-dependencies -v -driver-show-incremental -disable-direct-intramodule-dependencies -whole-module-optimization -embed-bitcode -output-file-map %t/output.json | %FileCheck --check-prefix CHECK-WMO-AND-BITCODE %s -// CHECK-WMO-AND-BITCODE: Incremental compilation has been disabled{{.*}}whole module optimization -// CHECK-WMO-AND-BITCODE-NOT: Incremental compilation has been disabled -// CHECK-WMO-AND-BITCODE-NOT: Queuing (initial): {compile: main.o <= main.swift} diff --git a/test/Driver/Dependencies/driver-show-incremental-inputs-fine.swift b/test/Driver/Dependencies/driver-show-incremental-inputs-fine.swift deleted file mode 100644 index b062753c728b3..0000000000000 --- a/test/Driver/Dependencies/driver-show-incremental-inputs-fine.swift +++ /dev/null @@ -1,24 +0,0 @@ -// REQUIRES: shell -// Test that when: -// -// 1. Using -incremental -v -driver-show-incremental, and... -// 2. ...the inputs passed to the Swift compiler version differ from the ones -// used in the original compilation... -// -// ...then the driver prints a message indicating that incremental compilation -// is disabled. - - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/one-way-with-swiftdeps-fine/* %t -// RUN: %{python} %S/Inputs/touch.py 443865900 %t/* -// RUN: echo '{version: "'$(%swiftc_driver_plain -version | head -n1)'", inputs: {"./main.swift": [443865900, 0], "./other.swift": [443865900, 0]}}' > %t/main~buildrecord.swiftdeps - -// RUN: cd %t && %swiftc_driver -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -c ./main.swift ./other.swift -module-name main -incremental -v -driver-show-incremental -output-file-map %t/output.json | %FileCheck --check-prefix CHECK-INCREMENTAL %s -// CHECK-INCREMENTAL-NOT: Incremental compilation has been disabled -// CHECK-INCREMENTAL: Queuing (initial): {compile: main.o <= main.swift} - -// RUN: cd %t && %swiftc_driver -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -c ./main.swift -module-name main -incremental -v -driver-show-incremental -output-file-map %t/output.json | %FileCheck --check-prefix CHECK-INPUTS-MISMATCH %s -// CHECK-INPUTS-MISMATCH: Incremental compilation has been disabled{{.*}}inputs -// CHECK-INPUTS-MISMATCH: ./other.swift -// CHECK-INPUTS-MISMATCH-NOT: Queuing (initial): {compile: main.o <= main.swift} diff --git a/test/Driver/Dependencies/driver-show-incremental-malformed-fine.swift b/test/Driver/Dependencies/driver-show-incremental-malformed-fine.swift deleted file mode 100644 index ea8d959df7ede..0000000000000 --- a/test/Driver/Dependencies/driver-show-incremental-malformed-fine.swift +++ /dev/null @@ -1,36 +0,0 @@ -// REQUIRES: shell -// Test that when: -// -// 1. Using -incremental -disable-direct-intramodule-dependencies -v -driver-show-incremental, and... -// 2. ...the build record file does not contain valid JSON... -// -// ...then the driver prints a message indicating that incremental compilation -// is enabled. - - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/one-way-with-swiftdeps-fine/* %t -// RUN: %{python} %S/Inputs/touch.py 443865900 %t/* - -// RUN: echo '{version: "'$(%swiftc_driver_plain -version | head -n1)'", inputs: {"./main.swift": [443865900, 0], "./other.swift": [443865900, 0]}}' > %t/main~buildrecord.swiftdeps -// RUN: cd %t && %swiftc_driver -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -c ./main.swift ./other.swift -module-name main -incremental -disable-direct-intramodule-dependencies -v -driver-show-incremental -disable-direct-intramodule-dependencies -output-file-map %t/output.json | %FileCheck --check-prefix CHECK-INCREMENTAL %s -// CHECK-INCREMENTAL-NOT: Incremental compilation has been enabled -// CHECK-INCREMENTAL: Queuing (initial): {compile: main.o <= main.swift} - -// RUN: rm %t/main~buildrecord.swiftdeps && touch %t/main~buildrecord.swiftdeps -// RUN: cd %t && %swiftc_driver -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -g -c ./main.swift ./other.swift -module-name main -incremental -disable-direct-intramodule-dependencies -v -driver-show-incremental -disable-direct-intramodule-dependencies -output-file-map %t/output.json | %FileCheck --check-prefix CHECK-MALFORMED %s - -// RUN: echo 'foo' > %t/main~buildrecord.swiftdeps -// RUN: cd %t && %swiftc_driver -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -g -c ./main.swift ./other.swift -module-name main -incremental -disable-direct-intramodule-dependencies -v -driver-show-incremental -disable-direct-intramodule-dependencies -output-file-map %t/output.json | %FileCheck --check-prefix CHECK-MALFORMED %s - -// CHECK-MALFORMED: Incremental compilation has been disabled{{.*}}malformed build record file -// CHECK-MALFORMED-NOT: Queuing (initial): {compile: main.o <= main.swift} - -// RUN: echo '{version, inputs: {"./main.swift": [443865900, 0], "./other.swift": [443865900, 0]}}' > %t/main~buildrecord.swiftdeps -// RUN: cd %t && %swiftc_driver -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -g -c ./main.swift ./other.swift -module-name main -incremental -disable-direct-intramodule-dependencies -v -driver-show-incremental -disable-direct-intramodule-dependencies -output-file-map %t/output.json | %FileCheck --check-prefix CHECK-MISSING-KEY %s - -// RUN: echo '{version: "'$(%swiftc_driver_plain -version | head -n1)'", inputs}' > %t/main~buildrecord.swiftdeps -// RUN: cd %t && %swiftc_driver -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -g -c ./main.swift ./other.swift -module-name main -incremental -disable-direct-intramodule-dependencies -v -driver-show-incremental -disable-direct-intramodule-dependencies -output-file-map %t/output.json | %FileCheck --check-prefix CHECK-MISSING-KEY %s - -// CHECK-MISSING-KEY: Incremental compilation has been disabled{{.*}}malformed build record file{{.*}}Malformed value for key -// CHECK-MISSING-KEY-NOT: Queuing (initial): {compile: main.o <= main.swift} diff --git a/test/Driver/Dependencies/driver-show-incremental-mutual-fine.swift b/test/Driver/Dependencies/driver-show-incremental-mutual-fine.swift deleted file mode 100644 index 6d8ff2201f97d..0000000000000 --- a/test/Driver/Dependencies/driver-show-incremental-mutual-fine.swift +++ /dev/null @@ -1,19 +0,0 @@ -/// main <==> other - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/mutual-with-swiftdeps-fine/* %t -// RUN: touch -t 201401240005 %t/* - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v -driver-show-incremental -disable-direct-intramodule-dependencies 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s -// CHECK-FIRST-DAG: Handled main.swift -// CHECK-FIRST-DAG: Handled other.swift -// CHECK-FIRST-DAG: Disabling incremental build: could not read build record - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v -driver-show-incremental -disable-direct-intramodule-dependencies 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s -// CHECK-SECOND-NOT: Queuing - -// RUN: touch -t 201401240006 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v -driver-show-incremental -disable-direct-intramodule-dependencies 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s -// CHECK-THIRD: Queuing (initial): {compile: other.o <= other.swift} -// CHECK-THIRD: Queuing because of the initial set: {compile: main.o <= main.swift} -// CHECK-THIRD-NEXT: interface of top-level name 'a' in other.swift -> interface of source file main.swiftdeps diff --git a/test/Driver/Dependencies/driver-show-incremental-swift-version-fine.swift b/test/Driver/Dependencies/driver-show-incremental-swift-version-fine.swift deleted file mode 100644 index 2b6ea9e092703..0000000000000 --- a/test/Driver/Dependencies/driver-show-incremental-swift-version-fine.swift +++ /dev/null @@ -1,26 +0,0 @@ -// REQUIRES: shell -// Test that when: -// -// 1. Using -incremental -disable-direct-intramodule-dependencies -v -driver-show-incremental, and... -// 2. ...the Swift compiler version used to perform the incremental -// compilation differs the original compilation... -// -// ...then the driver prints a message indicating that incremental compilation -// is enabled. - - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/one-way-with-swiftdeps-fine/* %t -// RUN: %{python} %S/Inputs/touch.py 443865900 %t/* - -// RUN: echo '{version: "'$(%swiftc_driver_plain -version | head -n1)'", inputs: {"./main.swift": [443865900, 0], "./other.swift": [443865900, 0]}}' > %t/main~buildrecord.swiftdeps -// RUN: cd %t && %swiftc_driver -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -c ./main.swift ./other.swift -module-name main -incremental -disable-direct-intramodule-dependencies -v -driver-show-incremental -disable-direct-intramodule-dependencies -output-file-map %t/output.json | %FileCheck --check-prefix CHECK-INCREMENTAL %s -// CHECK-INCREMENTAL-NOT: Incremental compilation has been enabled -// CHECK-INCREMENTAL: Queuing (initial): {compile: main.o <= main.swift} - -// RUN: echo '{version: "bogus", inputs: {"./main.swift": [443865900, 0], "./other.swift": [443865900, 0]}}' > %t/main~buildrecord.swiftdeps -// RUN: cd %t && %swiftc_driver -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -c ./main.swift ./other.swift -module-name main -incremental -disable-direct-intramodule-dependencies -v -driver-show-incremental -disable-direct-intramodule-dependencies -output-file-map %t/output.json | %FileCheck --check-prefix CHECK-VERSION-MISMATCH %s -// CHECK-VERSION-MISMATCH: Incremental compilation has been disabled{{.*}}compiler version mismatch -// CHECK-VERSION-MISMATCH: Compiling with: -// CHECK-VERSION-MISMATCH: Previously compiled with: bogus -// CHECK-VERSION-MISMATCH-NOT: Queuing (initial): {compile: main.o <= main.swift} diff --git a/test/Driver/Dependencies/embed-bitcode-parallel-fine.swift b/test/Driver/Dependencies/embed-bitcode-parallel-fine.swift deleted file mode 100644 index 22ea909516d84..0000000000000 --- a/test/Driver/Dependencies/embed-bitcode-parallel-fine.swift +++ /dev/null @@ -1,91 +0,0 @@ -// Windows doesn't support parallel execution yet -// XFAIL: windows -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/one-way-fine/* %t -// RUN: touch -t 201401240005 %t/* - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/fake-build-for-bitcode.py" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies ./main.swift ./other.swift -embed-bitcode -module-name main -j1 -parseable-output 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s - -// CHECK-FIRST-NOT: warning -// CHECK-FIRST: {{^{$}} -// CHECK-FIRST: "kind": "began" -// CHECK-FIRST: "name": "compile" -// CHECK-FIRST: ".\/main.swift" -// CHECK-FIRST: {{^}$}} - -// CHECK-FIRST: {{^{$}} -// CHECK-FIRST: "kind": "finished" -// CHECK-FIRST: "name": "compile" -// CHECK-FIRST: "output": "Handled main.swift\n" -// CHECK-FIRST: {{^}$}} - -// CHECK-FIRST: {{^{$}} -// CHECK-FIRST: "kind": "began" -// CHECK-FIRST: "name": "compile" -// CHECK-FIRST: ".\/other.swift" -// CHECK-FIRST: {{^}$}} - -// CHECK-FIRST: {{^{$}} -// CHECK-FIRST: "kind": "finished" -// CHECK-FIRST: "name": "compile" -// CHECK-FIRST: "output": "Handled other.swift\n" -// CHECK-FIRST: {{^}$}} - -// CHECK-FIRST: {{^{$}} -// CHECK-FIRST: "kind": "began" -// CHECK-FIRST: "name": "backend" -// CHECK-FIRST: ".\/main.o" -// CHECK-FIRST: {{^}$}} - -// CHECK-FIRST: {{^{$}} -// CHECK-FIRST: "kind": "finished" -// CHECK-FIRST: "name": "backend" -// CHECK-FIRST: "output": "Produced main.o\n" -// CHECK-FIRST: {{^}$}} - -// CHECK-FIRST: {{^{$}} -// CHECK-FIRST: "kind": "began" -// CHECK-FIRST: "name": "backend" -// CHECK-FIRST: ".\/other.o" -// CHECK-FIRST: {{^}$}} - -// CHECK-FIRST: {{^{$}} -// CHECK-FIRST: "kind": "finished" -// CHECK-FIRST: "name": "backend" -// CHECK-FIRST: "output": "Produced other.o\n" -// CHECK-FIRST: {{^}$}} - - -// RUN: touch -t 201401240006 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/fake-build-for-bitcode.py" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies ./main.swift ./other.swift -embed-bitcode -module-name main -j2 -parseable-output 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s - -// CHECK-SECOND: "kind": "began" -// CHECK-SECOND: "name": "compile" -// CHECK-SECOND: ".\/main.swift" -// CHECK-SECOND: {{^}$}} - -// CHECK-SECOND-NOT: finished - -// CHECK-SECOND: "kind": "began" -// CHECK-SECOND: "name": "compile" -// CHECK-SECOND: ".\/other.swift" -// CHECK-SECOND: {{^}$}} - -// CHECK-SECOND-NOT: began - -// CHECK-SECOND: "kind": "finished" -// CHECK-SECOND: "name": "compile" -// CHECK-SECOND: "output": "Handled {{other.swift|main.swift}}\n" -// CHECK-SECOND: {{^}$}} - -// CHECK-SECOND: "kind": "began" -// CHECK-SECOND: "name": "backend" -// CHECK-SECOND: ".\/{{other.o|main.o}}" -// CHECK-SECOND: {{^}$}} - -// CHECK-SECOND: "kind": "finished" -// CHECK-SECOND: "name": "backend" -// CHECK-SECOND: "output": "Produced {{other.o|main.o}}\n" -// CHECK-SECOND: {{^}$}} - -// CHECK-SECOND-NOT: "skipped" diff --git a/test/Driver/Dependencies/fail-added-fine.swift b/test/Driver/Dependencies/fail-added-fine.swift deleted file mode 100644 index 1d6a984231a78..0000000000000 --- a/test/Driver/Dependencies/fail-added-fine.swift +++ /dev/null @@ -1,32 +0,0 @@ -/// bad ==> main | bad --> other - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/fail-simple-fine/* %t -// RUN: touch -t 201401240005 %t/* - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-INITIAL %s - -// CHECK-INITIAL-NOT: warning -// CHECK-INITIAL: Handled main.swift -// CHECK-INITIAL: Handled other.swift - -// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift ./bad.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-ADDED %s -// RUN: %FileCheck -check-prefix=CHECK-RECORD-ADDED %s < %t/main~buildrecord.swiftdeps - -// CHECK-ADDED-NOT: Handled -// CHECK-ADDED: Handled bad.swift -// CHECK-ADDED-NOT: Handled - -// CHECK-RECORD-ADDED-DAG: "./bad.swift": !private [ -// CHECK-RECORD-ADDED-DAG: "./main.swift": [ -// CHECK-RECORD-ADDED-DAG: "./other.swift": [ - - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/fail-simple-fine/* %t -// RUN: touch -t 201401240005 %t/* - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-INITIAL %s - -// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./bad.swift ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-ADDED %s -// RUN: %FileCheck -check-prefix=CHECK-RECORD-ADDED %s < %t/main~buildrecord.swiftdeps diff --git a/test/Driver/Dependencies/fail-chained-fine.swift b/test/Driver/Dependencies/fail-chained-fine.swift deleted file mode 100644 index 8f8184cc56d8d..0000000000000 --- a/test/Driver/Dependencies/fail-chained-fine.swift +++ /dev/null @@ -1,129 +0,0 @@ -/// a ==> bad ==> c ==> d | b --> bad --> e ==> f - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/fail-chained-fine/* %t -// RUN: touch -t 201401240005 %t/* - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift ./f.swift ./bad.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s -// RUN: %FileCheck -check-prefix=CHECK-RECORD-CLEAN %s < %t/main~buildrecord.swiftdeps - -// CHECK-FIRST-NOT: warning -// CHECK-FIRST: Handled a.swift -// CHECK-FIRST: Handled b.swift -// CHECK-FIRST: Handled c.swift -// CHECK-FIRST: Handled d.swift -// CHECK-FIRST: Handled e.swift -// CHECK-FIRST: Handled f.swift -// CHECK-FIRST: Handled bad.swift - -// CHECK-RECORD-CLEAN-DAG: "./a.swift": [ -// CHECK-RECORD-CLEAN-DAG: "./b.swift": [ -// CHECK-RECORD-CLEAN-DAG: "./c.swift": [ -// CHECK-RECORD-CLEAN-DAG: "./d.swift": [ -// CHECK-RECORD-CLEAN-DAG: "./e.swift": [ -// CHECK-RECORD-CLEAN-DAG: "./f.swift": [ -// CHECK-RECORD-CLEAN-DAG: "./bad.swift": [ - - -// RUN: touch -t 201401240006 %t/a.swift -// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./a.swift ./bad.swift ./b.swift ./c.swift ./d.swift ./e.swift ./f.swift -module-name main -j1 -v > %t/a.txt 2>&1 -// RUN: %FileCheck -check-prefix=CHECK-A %s < %t/a.txt -// RUN: %FileCheck -check-prefix=NEGATIVE-A %s < %t/a.txt -// RUN: %FileCheck -check-prefix=CHECK-RECORD-A %s < %t/main~buildrecord.swiftdeps - -// CHECK-A: Handled a.swift -// CHECK-A: Handled bad.swift -// NEGATIVE-A-NOT: Handled b.swift -// NEGATIVE-A-NOT: Handled c.swift -// NEGATIVE-A-NOT: Handled d.swift -// NEGATIVE-A-NOT: Handled e.swift -// NEGATIVE-A-NOT: Handled f.swift - -// CHECK-RECORD-A-DAG: "./a.swift": [ -// CHECK-RECORD-A-DAG: "./b.swift": [ -// CHECK-RECORD-A-DAG: "./c.swift": !private [ -// CHECK-RECORD-A-DAG: "./d.swift": !private [ -// CHECK-RECORD-A-DAG: "./e.swift": !private [ -// CHECK-RECORD-A-DAG: "./f.swift": [ -// CHECK-RECORD-A-DAG: "./bad.swift": !private [ - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift ./f.swift ./bad.swift -module-name main -j1 -v > %t/a2.txt 2>&1 -// RUN: %FileCheck -check-prefix=CHECK-A2 %s < %t/a2.txt -// RUN: %FileCheck -check-prefix=NEGATIVE-A2 %s < %t/a2.txt -// RUN: %FileCheck -check-prefix=CHECK-RECORD-CLEAN %s < %t/main~buildrecord.swiftdeps - -// CHECK-A2-DAG: Handled c.swift -// CHECK-A2-DAG: Handled d.swift -// CHECK-A2-DAG: Handled e.swift -// CHECK-A2-DAG: Handled bad.swift -// NEGATIVE-A2-NOT: Handled a.swift -// NEGATIVE-A2-NOT: Handled b.swift -// NEGATIVE-A2-NOT: Handled f.swift - - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/fail-chained-fine/* %t -// RUN: touch -t 201401240005 %t/* - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift ./f.swift ./bad.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s - -// RUN: touch -t 201401240006 %t/b.swift -// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift ./f.swift ./bad.swift -module-name main -j1 -v > %t/b.txt 2>&1 -// RUN: %FileCheck -check-prefix=CHECK-B %s < %t/b.txt -// RUN: %FileCheck -check-prefix=NEGATIVE-B %s < %t/b.txt -// RUN: %FileCheck -check-prefix=CHECK-RECORD-B %s < %t/main~buildrecord.swiftdeps - -// CHECK-B: Handled b.swift -// CHECK-B: Handled bad.swift -// NEGATIVE-B-NOT: Handled a.swift -// NEGATIVE-B-NOT: Handled c.swift -// NEGATIVE-B-NOT: Handled d.swift -// NEGATIVE-B-NOT: Handled e.swift -// NEGATIVE-B-NOT: Handled f.swift - -// CHECK-RECORD-B-DAG: "./a.swift": [ -// CHECK-RECORD-B-DAG: "./b.swift": [ -// CHECK-RECORD-B-DAG: "./c.swift": [ -// CHECK-RECORD-B-DAG: "./d.swift": [ -// CHECK-RECORD-B-DAG: "./e.swift": [ -// CHECK-RECORD-B-DAG: "./f.swift": [ -// CHECK-RECORD-B-DAG: "./bad.swift": !private [ - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift ./f.swift ./bad.swift -module-name main -j1 -v > %t/b2.txt 2>&1 -// RUN: %FileCheck -check-prefix=CHECK-B2 %s < %t/b2.txt -// RUN: %FileCheck -check-prefix=NEGATIVE-B2 %s < %t/b2.txt -// RUN: %FileCheck -check-prefix=CHECK-RECORD-CLEAN %s < %t/main~buildrecord.swiftdeps - -// CHECK-B2-DAG: Handled bad.swift -// NEGATIVE-B2-NOT: Handled a.swift -// NEGATIVE-B2-NOT: Handled b.swift -// NEGATIVE-B2-NOT: Handled c.swift -// NEGATIVE-B2-NOT: Handled d.swift -// NEGATIVE-B2-NOT: Handled e.swift -// NEGATIVE-B2-NOT: Handled f.swift - - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/fail-chained-fine/* %t -// RUN: touch -t 201401240005 %t/* - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift ./f.swift ./bad.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s - -// RUN: touch -t 201401240006 %t/bad.swift -// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./bad.swift ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift ./f.swift -module-name main -j1 -v > %t/bad.txt 2>&1 -// RUN: %FileCheck -check-prefix=CHECK-BAD %s < %t/bad.txt -// RUN: %FileCheck -check-prefix=NEGATIVE-BAD %s < %t/bad.txt -// RUN: %FileCheck -check-prefix=CHECK-RECORD-A %s < %t/main~buildrecord.swiftdeps - -// CHECK-BAD: Handled bad.swift -// NEGATIVE-BAD-NOT: Handled a.swift -// NEGATIVE-BAD-NOT: Handled b.swift -// NEGATIVE-BAD-NOT: Handled c.swift -// NEGATIVE-BAD-NOT: Handled d.swift -// NEGATIVE-BAD-NOT: Handled e.swift -// NEGATIVE-BAD-NOT: Handled f.swift - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift ./f.swift ./bad.swift -module-name main -j1 -v > %t/bad2.txt 2>&1 -// RUN: %FileCheck -check-prefix=CHECK-A2 %s < %t/bad2.txt -// RUN: %FileCheck -check-prefix=NEGATIVE-A2 %s < %t/bad2.txt -// RUN: %FileCheck -check-prefix=CHECK-RECORD-CLEAN %s < %t/main~buildrecord.swiftdeps diff --git a/test/Driver/Dependencies/fail-interface-hash-fine.swift b/test/Driver/Dependencies/fail-interface-hash-fine.swift deleted file mode 100644 index 9e8e4da377817..0000000000000 --- a/test/Driver/Dependencies/fail-interface-hash-fine.swift +++ /dev/null @@ -1,38 +0,0 @@ -/// main ==> depends-on-main | bad ==> depends-on-bad - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/fail-interface-hash-fine/* %t -// RUN: touch -t 201401240005 %t/* - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies ./main.swift ./bad.swift ./depends-on-main.swift ./depends-on-bad.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s - -// CHECK-FIRST-NOT: warning -// CHECK-FIRST: Handled main.swift -// CHECK-FIRST: Handled bad.swift -// CHECK-FIRST: Handled depends-on-main.swift -// CHECK-FIRST: Handled depends-on-bad.swift - -// Reset the .swiftdeps files. -// RUN: cp -r %S/Inputs/fail-interface-hash-fine/*.swiftdeps %t - -// RUN: touch -t 201401240006 %t/bad.swift %t/main.swift -// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies ./main.swift ./bad.swift ./depends-on-main.swift ./depends-on-bad.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s -// RUN: %FileCheck -check-prefix=CHECK-RECORD %s < %t/main~buildrecord.swiftdeps - -// CHECK-SECOND: Handled main.swift -// CHECK-SECOND-NOT: Handled depends -// CHECK-SECOND: Handled bad.swift -// CHECK-SECOND-NOT: Handled depends - -// CHECK-RECORD-DAG: "./bad.swift": !private [ -// CHECK-RECORD-DAG: "./main.swift": [ -// CHECK-RECORD-DAG: "./depends-on-main.swift": !private [ -// CHECK-RECORD-DAG: "./depends-on-bad.swift": [ - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies ./main.swift ./bad.swift ./depends-on-main.swift ./depends-on-bad.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s - -// CHECK-THIRD-DAG: Handled bad -// CHECK-THIRD-DAG: Handled depends-on-bad -// CHECK-THIRD-DAG: Handled depends-on-main -// CHECK-THIRD-DAG: Handled main - diff --git a/test/Driver/Dependencies/fail-new-fine.swift b/test/Driver/Dependencies/fail-new-fine.swift deleted file mode 100644 index dca8549d8e9ef..0000000000000 --- a/test/Driver/Dependencies/fail-new-fine.swift +++ /dev/null @@ -1,45 +0,0 @@ -/// bad ==> main | bad --> other - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/fail-simple-fine/* %t -// RUN: touch -t 201401240005 %t/* - -// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./bad.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck %s -// CHECK-NOT: warning -// CHECK: Handled main.swift -// CHECK: Handled bad.swift -// CHECK-NOT: Handled other.swift - -// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./bad.swift ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-BAD-ONLY %s - -// CHECK-BAD-ONLY-NOT: warning -// CHECK-BAD-ONLY-NOT: Handled -// CHECK-BAD-ONLY: Handled bad.swift -// CHECK-BAD-ONLY-NOT: Handled - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./bad.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-OKAY %s -// CHECK-OKAY: Handled main.swift -// CHECK-OKAY: Handled bad.swift -// CHECK-OKAY: Handled other.swift -// CHECK-OKAY-NOT: Handled - -// RUN: touch -t 201401240006 %t/bad.swift -// RUN: rm %t/bad.swiftdeps -// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./bad.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck %s - -// RUN: touch -t 201401240005 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./bad.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-OKAY-2 %s - -// CHECK-OKAY-2-DAG: Handled bad.swift -// CHECK-OKAY-2-DAG: Handled other.swift -// CHECK-OKAY-2-DAG: Handled main.swift - -// RUN: touch -t 201401240006 %t/main.swift -// RUN: rm %t/main.swiftdeps -// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./bad.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck %s - -// RUN: touch -t 201401240005 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./bad.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-OKAY %s -// RUN: touch -t 201401240006 %t/other.swift -// RUN: rm %t/other.swiftdeps -// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./bad.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck %s diff --git a/test/Driver/Dependencies/fail-simple-fine.swift b/test/Driver/Dependencies/fail-simple-fine.swift deleted file mode 100644 index 27ebbe9c7f3fc..0000000000000 --- a/test/Driver/Dependencies/fail-simple-fine.swift +++ /dev/null @@ -1,30 +0,0 @@ -/// bad ==> main | bad --> other - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/fail-simple-fine/* %t -// RUN: touch -t 201401240005 %t/* - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./bad.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s - -// CHECK-FIRST-NOT: warning -// CHECK-FIRST: Handled main.swift -// CHECK-FIRST: Handled bad.swift -// CHECK-FIRST: Handled other.swift - -// RUN: touch -t 201401240006 %t/bad.swift -// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./bad.swift ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s -// RUN: %FileCheck -check-prefix=CHECK-RECORD %s < %t/main~buildrecord.swiftdeps - -// CHECK-SECOND: Handled bad.swift -// CHECK-SECOND-NOT: Handled main.swift -// CHECK-SECOND-NOT: Handled other.swift - -// CHECK-RECORD-DAG: "./bad.swift": !private [ -// CHECK-RECORD-DAG: "./main.swift": !private [ -// CHECK-RECORD-DAG: "./other.swift": !private [ - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./bad.swift ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s - -// CHECK-THIRD-DAG: Handled main.swift -// CHECK-THIRD-DAG: Handled bad.swift -// CHECK-THIRD-DAG: Handled other.swift diff --git a/test/Driver/Dependencies/fail-with-bad-deps-fine.swift b/test/Driver/Dependencies/fail-with-bad-deps-fine.swift deleted file mode 100644 index f732a66b3f550..0000000000000 --- a/test/Driver/Dependencies/fail-with-bad-deps-fine.swift +++ /dev/null @@ -1,50 +0,0 @@ -/// main ==> depends-on-main | bad ==> depends-on-bad - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/fail-with-bad-deps-fine/* %t -// RUN: touch -t 201401240005 %t/* - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies ./main.swift ./bad.swift ./depends-on-main.swift ./depends-on-bad.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s - -// CHECK-FIRST-NOT: warning -// CHECK-FIRST: Handled main.swift -// CHECK-FIRST: Handled bad.swift -// CHECK-FIRST: Handled depends-on-main.swift -// CHECK-FIRST: Handled depends-on-bad.swift - -// Reset the .swiftdeps files. -// RUN: cp -r %S/Inputs/fail-with-bad-deps-fine/*.swiftdeps %t - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies ./main.swift ./bad.swift ./depends-on-main.swift ./depends-on-bad.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-NONE %s -// CHECK-NONE-NOT: Handled - -// Reset the .swiftdeps files. -// RUN: cp -r %S/Inputs/fail-with-bad-deps-fine/*.swiftdeps %t - -// RUN: touch -t 201401240006 %t/bad.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies ./main.swift ./bad.swift ./depends-on-main.swift ./depends-on-bad.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-BUILD-ALL %s - -// CHECK-BUILD-ALL-NOT: warning -// CHECK-BUILD-ALL: Handled bad.swift -// CHECK-BUILD-ALL-DAG: Handled main.swift -// CHECK-BUILD-ALL-DAG: Handled depends-on-main.swift -// CHECK-BUILD-ALL-DAG: Handled depends-on-bad.swift - -// Reset the .swiftdeps files. -// RUN: cp -r %S/Inputs/fail-with-bad-deps-fine/*.swiftdeps %t - -// RUN: touch -t 201401240007 %t/bad.swift %t/main.swift -// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies ./main.swift ./bad.swift ./depends-on-main.swift ./depends-on-bad.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-WITH-FAIL %s -// RUN: %FileCheck -check-prefix=CHECK-RECORD %s < %t/main~buildrecord.swiftdeps - -// CHECK-WITH-FAIL: Handled main.swift -// CHECK-WITH-FAIL-NOT: Handled depends -// CHECK-WITH-FAIL: Handled bad.swift -// CHECK-WITH-FAIL-NOT: Handled depends - -// CHECK-RECORD-DAG: "./bad.swift": !private [ -// CHECK-RECORD-DAG: "./main.swift": [ -// CHECK-RECORD-DAG: "./depends-on-main.swift": !private [ -// CHECK-RECORD-DAG: "./depends-on-bad.swift": [ - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies ./bad.swift ./main.swift ./depends-on-main.swift ./depends-on-bad.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-BUILD-ALL %s diff --git a/test/Driver/Dependencies/file-added-fine.swift b/test/Driver/Dependencies/file-added-fine.swift deleted file mode 100644 index 131ed4ab3f2ec..0000000000000 --- a/test/Driver/Dependencies/file-added-fine.swift +++ /dev/null @@ -1,20 +0,0 @@ -/// other ==> main - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/one-way-fine/* %t -// RUN: touch -t 201401240005 %t/* - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s - -// CHECK-FIRST-NOT: warning -// CHECK-FIRST: Handled other.swift - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s - -// CHECK-SECOND-NOT: Handled - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./other.swift ./main.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s - -// CHECK-THIRD-NOT: Handled other.swift -// CHECK-THIRD: Handled main.swift -// CHECK-THIRD-NOT: Handled other.swift diff --git a/test/Driver/Dependencies/independent-fine.swift b/test/Driver/Dependencies/independent-fine.swift deleted file mode 100644 index c86d2e7ba878a..0000000000000 --- a/test/Driver/Dependencies/independent-fine.swift +++ /dev/null @@ -1,46 +0,0 @@ -// main | other - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/independent-fine/* %t -// RUN: touch -t 201401240005 %t/* - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s -// RUN: ls %t/main~buildrecord.swiftdeps - -// CHECK-FIRST-NOT: warning -// CHECK-FIRST: Handled main.swift - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s - -// CHECK-SECOND-NOT: Handled - -// RUN: touch -t 201401240006 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s - -// RUN: touch -t 201401240007 %t/main.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s - - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/independent-fine/* %t -// RUN: touch -t 201401240005 %t/* - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST-MULTI %s - -// CHECK-FIRST-MULTI: Handled main.swift -// CHECK-FIRST-MULTI: Handled other.swift - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s - -// RUN: touch -t 201401240006 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST-MULTI %s - - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/independent-fine/* %t -// RUN: touch -t 201401240005 %t/* - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SINGLE %s -// CHECK-SINGLE: Handled main.swift - -// RUN: ls %t/main~buildrecord.swiftdeps diff --git a/test/Driver/Dependencies/independent-half-dirty-fine.swift b/test/Driver/Dependencies/independent-half-dirty-fine.swift deleted file mode 100644 index 581bf95409d3d..0000000000000 --- a/test/Driver/Dependencies/independent-half-dirty-fine.swift +++ /dev/null @@ -1,23 +0,0 @@ -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/independent-fine/* %t -// RUN: touch -t 201401240005 %t/* - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s - -// CHECK-FIRST-NOT: warning -// CHECK-FIRST: Handled main.swift -// CHECK-FIRST: Handled other.swift - -// RUN: touch -t 201401240005 %t/other.o -// RUN: touch -t 201401240006 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s - -// CHECK-SECOND-NOT: Handled main.swift -// CHECK-SECOND: Handled other.swift -// CHECK-SECOND-NOT: Handled main.swift - -// RUN: rm %t/other.swiftdeps -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s - -// CHECK-THIRD: Handled main.swift -// CHECK-THIRD: Handled other.swift diff --git a/test/Driver/Dependencies/independent-parseable-fine.swift b/test/Driver/Dependencies/independent-parseable-fine.swift deleted file mode 100644 index 57ca65257dab6..0000000000000 --- a/test/Driver/Dependencies/independent-parseable-fine.swift +++ /dev/null @@ -1,78 +0,0 @@ -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/independent-fine/* %t -// RUN: touch -t 201401240005 %t/* - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift -j1 -parseable-output 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s - -// CHECK-FIRST-NOT: warning -// CHECK-FIRST: {{^{$}} -// CHECK-FIRST: "kind": "began" -// CHECK-FIRST: "name": "compile" -// CHECK-FIRST: ".\/main.swift" -// CHECK-FIRST: {{^}$}} - -// CHECK-FIRST: {{^{$}} -// CHECK-FIRST: "kind": "finished" -// CHECK-FIRST: "name": "compile" -// CHECK-FIRST: "output": "Handled main.swift{{(\\r)?}}\n" -// CHECK-FIRST: {{^}$}} - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift -j1 -parseable-output 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s - -// CHECK-SECOND: {{^{$}} -// CHECK-SECOND: "kind": "skipped" -// CHECK-SECOND: "name": "compile" -// CHECK-SECOND: ".\/main.swift" -// CHECK-SECOND: {{^}$}} - -// RUN: touch -t 201401240006 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift -j1 -parseable-output 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s - - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/independent-fine/* %t -// RUN: touch -t 201401240005 %t/* - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -parseable-output 2>&1 | %FileCheck -check-prefix=CHECK-FIRST-MULTI %s - -// CHECK-FIRST-MULTI: {{^{$}} -// CHECK-FIRST-MULTI: "kind": "began" -// CHECK-FIRST-MULTI: "name": "compile" -// CHECK-FIRST-MULTI: ".\/main.swift" -// CHECK-FIRST-MULTI: {{^}$}} - -// CHECK-FIRST-MULTI: {{^{$}} -// CHECK-FIRST-MULTI: "kind": "finished" -// CHECK-FIRST-MULTI: "name": "compile" -// CHECK-FIRST-MULTI: "output": "Handled main.swift{{(\\r)?}}\n" -// CHECK-FIRST-MULTI: {{^}$}} - -// CHECK-FIRST-MULTI: {{^{$}} -// CHECK-FIRST-MULTI: "kind": "began" -// CHECK-FIRST-MULTI: "name": "compile" -// CHECK-FIRST-MULTI: ".\/other.swift" -// CHECK-FIRST-MULTI: {{^}$}} - -// CHECK-FIRST-MULTI: {{^{$}} -// CHECK-FIRST-MULTI: "kind": "finished" -// CHECK-FIRST-MULTI: "name": "compile" -// CHECK-FIRST-MULTI: "output": "Handled other.swift{{(\\r)?}}\n" -// CHECK-FIRST-MULTI: {{^}$}} - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -parseable-output 2>&1 | %FileCheck -check-prefix=CHECK-SECOND-MULTI %s - -// CHECK-SECOND-MULTI: {{^{$}} -// CHECK-SECOND-MULTI: "kind": "skipped" -// CHECK-SECOND-MULTI: "name": "compile" -// CHECK-SECOND-MULTI: ".\/main.swift" -// CHECK-SECOND-MULTI: {{^}$}} - -// CHECK-SECOND-MULTI: {{^{$}} -// CHECK-SECOND-MULTI: "kind": "skipped" -// CHECK-SECOND-MULTI: "name": "compile" -// CHECK-SECOND-MULTI: ".\/other.swift" -// CHECK-SECOND-MULTI: {{^}$}} - -// RUN: touch -t 201401240006 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -parseable-output 2>&1 | %FileCheck -check-prefix=CHECK-FIRST-MULTI %s - diff --git a/test/Driver/Dependencies/malformed-but-valid-yaml-fine.swift b/test/Driver/Dependencies/malformed-but-valid-yaml-fine.swift deleted file mode 100644 index 0a3285ac3caf2..0000000000000 --- a/test/Driver/Dependencies/malformed-but-valid-yaml-fine.swift +++ /dev/null @@ -1,48 +0,0 @@ -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/malformed-but-valid-yaml-fine/* %t -// RUN: touch -t 201401240005 %t/*.swift - -// Generate the build record... -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v - -// ...then reset the .swiftdeps files. -// RUN: cp -r %S/Inputs/malformed-after-fine/*.swiftdeps %t - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s - -// CHECK-FIRST-NOT: warning -// CHECK-FIRST-NOT: Handled - -// RUN: touch -t 201401240006 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s - -// CHECK-SECOND: Handled other.swift -// CHECK-SECOND: Handled main.swift - -// RUN: touch -t 201401240007 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s - -// CHECK-THIRD: Handled main.swift -// CHECK-THIRD: Handled other.swift - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/malformed-but-valid-yaml-fine/* %t -// RUN: touch -t 201401240005 %t/*.swift - -// Generate the build record... -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v - -// ...then reset the .swiftdeps files. -// RUN: cp -r %S/Inputs/malformed-after-fine/*.swiftdeps %t - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s - -// RUN: touch -t 201401240006 %t/main.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FOURTH %s - -// RUN: touch -t 201401240007 %t/main.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FOURTH %s - -// CHECK-FOURTH-NOT: Handled other.swift -// CHECK-FOURTH: Handled main.swift -// CHECK-FOURTH-NOT: Handled other.swift diff --git a/test/Driver/Dependencies/malformed-fine.swift b/test/Driver/Dependencies/malformed-fine.swift deleted file mode 100644 index a1f9979241675..0000000000000 --- a/test/Driver/Dependencies/malformed-fine.swift +++ /dev/null @@ -1,48 +0,0 @@ -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/malformed-after-fine/* %t -// RUN: touch -t 201401240005 %t/*.swift - -// Generate the build record... -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v - -// ...then reset the .swiftdeps files. -// RUN: cp -r %S/Inputs/malformed-after-fine/*.swiftdeps %t - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s - -// CHECK-FIRST-NOT: warning -// CHECK-FIRST-NOT: Handled - -// RUN: touch -t 201401240006 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s - -// CHECK-SECOND: Handled other.swift -// CHECK-SECOND: Handled main.swift - -// RUN: touch -t 201401240007 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s - -// CHECK-THIRD: Handled main.swift -// CHECK-THIRD: Handled other.swift - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/malformed-after-fine/* %t -// RUN: touch -t 201401240005 %t/*.swift - -// Generate the build record... -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v - -// ...then reset the .swiftdeps files. -// RUN: cp -r %S/Inputs/malformed-after-fine/*.swiftdeps %t - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s - -// RUN: touch -t 201401240006 %t/main.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FOURTH %s - -// RUN: touch -t 201401240007 %t/main.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FOURTH %s - -// CHECK-FOURTH-NOT: Handled other.swift -// CHECK-FOURTH: Handled main.swift -// CHECK-FOURTH-NOT: Handled other.swift diff --git a/test/Driver/Dependencies/moduleonly.swift b/test/Driver/Dependencies/moduleonly.swift deleted file mode 100644 index 86eb8e16915b0..0000000000000 --- a/test/Driver/Dependencies/moduleonly.swift +++ /dev/null @@ -1,85 +0,0 @@ -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/moduleonly/* %t -// RUN: touch -t 201801230045 %t/*.swift - -// RUN: cd %t && %target-build-swift -emit-module -output-file-map ./output.json -incremental -disable-direct-intramodule-dependencies ./foo.swift ./bar.swift ./baz.swift -module-name testmodule -v 2>&1 | %FileCheck -check-prefix=CHECK1 %s -// RUN: test ! -f %t/buildrecord.swiftdeps -// RUN: test -f %t/buildrecord.swiftdeps~moduleonly - -// CHECK1-DAG: -primary-file ./foo.swift -// CHECK1-DAG: -primary-file ./bar.swift -// CHECK1-DAG: -primary-file ./baz.swift - -// RUN: cd %t && %target-build-swift -c -emit-module -output-file-map ./output.json -incremental -disable-direct-intramodule-dependencies ./foo.swift ./bar.swift ./baz.swift -module-name testmodule -v 2>&1 | %FileCheck -check-prefix=CHECK2 %s -// RUN: test -f %t/buildrecord.swiftdeps -// RUN: test -f %t/buildrecord.swiftdeps~moduleonly - -// CHECK2-DAG: -primary-file ./foo.swift -// CHECK2-DAG: -primary-file ./bar.swift -// CHECK2-DAG: -primary-file ./baz.swift - -// RUN: cd %t && %target-build-swift -emit-module -output-file-map ./output.json -incremental -disable-direct-intramodule-dependencies ./foo.swift ./bar.swift ./baz.swift -module-name testmodule -v 2>&1 | %FileCheck -check-prefix=CHECK3 %s -// RUN: test -f %t/buildrecord.swiftdeps~moduleonly -// RUN: test -f %t/buildrecord.swiftdeps - -// CHECK3-NOT: -primary-file ./foo.swift -// CHECK3-NOT: -primary-file ./bar.swift -// CHECK3-NOT: -primary-file ./baz.swift - -// RUN: touch -t 201801230123 %t/bar.swift -// RUN: cd %t && %target-build-swift -emit-module -output-file-map ./output.json -incremental -disable-direct-intramodule-dependencies ./foo.swift ./bar.swift ./baz.swift -module-name testmodule -v 2>&1 | %FileCheck -check-prefix=CHECK4 %s - -// CHECK4-NOT: -primary-file ./foo.swift -// CHECK4-NOT: -primary-file ./baz.swift -// CHECK4-DAG: -primary-file ./bar.swift - -// RUN: touch -t 201801230145 %t/baz.swift -// RUN: cd %t && %target-build-swift -c -emit-module -output-file-map ./output.json -incremental -disable-direct-intramodule-dependencies ./foo.swift ./bar.swift ./baz.swift -module-name testmodule -v 2>&1 | %FileCheck -check-prefix=CHECK5 %s - -// CHECK5-NOT: -primary-file ./foo.swift -// CHECK5-DAG: -primary-file ./bar.swift -// CHECK5-DAG: -primary-file ./baz.swift - -// RUN: cd %t && %target-build-swift -emit-module -output-file-map ./output.json -incremental -disable-direct-intramodule-dependencies ./foo.swift ./bar.swift ./baz.swift -module-name testmodule -v 2>&1 | %FileCheck -check-prefix=CHECK6 %s - -// CHECK6-NOT: -primary-file ./foo.swift -// CHECK6-NOT: -primary-file ./bar.swift -// CHECK6-NOT: -primary-file ./baz.swift - - -// '-c' (without '-emit-module') from clean environment. -// -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/moduleonly/* %t -// RUN: touch -t 201801230045 %t/*.swift -// RUN: cd %t && %target-build-swift -c -g -output-file-map ./output.json -incremental -disable-direct-intramodule-dependencies ./foo.swift ./bar.swift ./baz.swift -module-name testmodule -v 2>&1 -// RUN: test ! -f %t/buildrecord.swiftdeps~moduleonly -// RUN: test -f %t/buildrecord.swiftdeps -// RUN: test ! -f %t/foo~partial.swiftmodule - -// '-emit-library -g' (without '-emit-module') from clean environment. -// -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/moduleonly/* %t -// RUN: touch -t 201801230045 %t/*.swift -// RUN: cd %t && %target-build-swift -emit-library -g -output-file-map ./output.json -incremental -disable-direct-intramodule-dependencies ./foo.swift ./bar.swift ./baz.swift -module-name testmodule -v 2>&1 -// RUN: test ! -f %t/buildrecord.swiftdeps~moduleonly -// RUN: test -f %t/buildrecord.swiftdeps -// RUN: test -f %t/foo~partial.swiftmodule - -// Ensure '-emit-module' and '-c -emit-module' emits identical 'swiftmodule' and 'swiftdoc' file. -// -// RUN: rm -f %t-moduleonly.swiftmodule -// RUN: rm -f %t-moduleonly.swiftdoc -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/moduleonly/* %t -// RUN: touch -t 201801230045 %t/*.swift -// RUN: cd %t && %target-build-swift -emit-module -output-file-map ./output.json -incremental -disable-direct-intramodule-dependencies ./foo.swift ./bar.swift ./baz.swift -module-name testmodule -v 2>&1 -// RUN: cp -f %t/testmodule.swiftmodule %t-moduleonly.swiftmodule -// RUN: cp -f %t/testmodule.swiftdoc %t-moduleonly.swiftdoc -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/moduleonly/* %t -// RUN: touch -t 201801230045 %t/*.swift -// RUN: cd %t && %target-build-swift -c -emit-module -output-file-map ./output.json -incremental -disable-direct-intramodule-dependencies ./foo.swift ./bar.swift ./baz.swift -module-name testmodule -v 2>&1 -// RUN: diff %t/testmodule.swiftmodule %t-moduleonly.swiftmodule -// RUN: diff %t/testmodule.swiftdoc %t-moduleonly.swiftdoc diff --git a/test/Driver/Dependencies/mutual-fine.swift b/test/Driver/Dependencies/mutual-fine.swift deleted file mode 100644 index ab5a2ea6c465e..0000000000000 --- a/test/Driver/Dependencies/mutual-fine.swift +++ /dev/null @@ -1,24 +0,0 @@ -/// main <==> other - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/mutual-fine/* %t -// RUN: touch -t 201401240005 %t/* - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s - -// CHECK-FIRST-NOT: warning -// CHECK-FIRST: Handled main.swift -// CHECK-FIRST: Handled other.swift - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s - -// CHECK-SECOND-NOT: Handled - -// RUN: touch -t 201401240006 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s - -// CHECK-THIRD: Handled main.swift -// CHECK-THIRD: Handled other.swift - -// RUN: touch -t 201401240006 %t/main.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s diff --git a/test/Driver/Dependencies/mutual-interface-hash-fine.swift b/test/Driver/Dependencies/mutual-interface-hash-fine.swift deleted file mode 100644 index cd1b97038b48d..0000000000000 --- a/test/Driver/Dependencies/mutual-interface-hash-fine.swift +++ /dev/null @@ -1,50 +0,0 @@ -/// does-change <==> does-not-change - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/mutual-interface-hash-fine/* %t -// RUN: touch -t 201401240005 %t/* - -// Generate the build record... -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies ./does-change.swift ./does-not-change.swift -module-name main -j1 -v - -// ...then reset the .swiftdeps files. -// RUN: cp -r %S/Inputs/mutual-interface-hash-fine/*.swiftdeps %t - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies ./does-change.swift ./does-not-change.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-CLEAN %s - -// CHECK-CLEAN-NOT: Handled - -// RUN: touch -t 201401240006 %t/does-change.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies ./does-change.swift ./does-not-change.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-CHANGE %s - -// CHECK-CHANGE-DAG: Handled does-change.swift -// CHECK-CHANGE-DAG: Handled does-not-change.swift - - -// RUN: cp -r %S/Inputs/mutual-interface-hash-fine/*.swiftdeps %t - -// RUN: touch -t 201401240006 %t/does-not-change.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies ./does-change.swift ./does-not-change.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-NO-CHANGE %s - -// CHECK-NO-CHANGE-NOT: Handled -// CHECK-NO-CHANGE: Handled does-not-change.swift -// CHECK-NO-CHANGE-NOT: Handled - - -// RUN: cp -r %S/Inputs/mutual-interface-hash-fine/*.swiftdeps %t - -// Make sure the files really were dependent on one another. - -// RUN: touch -t 201401240007 %t/does-not-change.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./does-change.swift ./does-not-change.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-REBUILD-DEPENDENTS %s - -// CHECK-REBUILD-DEPENDENTS-DAG: Handled does-not-change.swift -// CHECK-REBUILD-DEPENDENTS-DAG: Handled does-change.swift - - -// Check that cascading builds triggered by the build record are still -// considered cascading. - -// RUN: cp -r %S/Inputs/mutual-interface-hash-fine/*.swiftdeps %t -// RUN: sed -E -e 's/"[^"]*does-not-change.swift":/& !dirty/' -i.prev %t/main~buildrecord.swiftdeps -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies ./does-change.swift ./does-not-change.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-REBUILD-DEPENDENTS %s diff --git a/test/Driver/Dependencies/nominal-members-fine.swift b/test/Driver/Dependencies/nominal-members-fine.swift deleted file mode 100644 index f86599cb8ec7e..0000000000000 --- a/test/Driver/Dependencies/nominal-members-fine.swift +++ /dev/null @@ -1,39 +0,0 @@ -/// a ==> depends-on-a-ext, depends-on-a-foo | a-ext ==> depends-on-a-ext - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/nominal-members-fine/* %t -// RUN: touch -t 201401240005 %t/* - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./a.swift ./a-ext.swift ./depends-on-a-foo.swift ./depends-on-a-ext.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-INITIAL %s - -// CHECK-INITIAL-NOT: warning -// CHECK-INITIAL: Handled a.swift -// CHECK-INITIAL: Handled a-ext.swift -// CHECK-INITIAL: Handled depends-on-a-foo.swift -// CHECK-INITIAL: Handled depends-on-a-ext.swift - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./a.swift ./a-ext.swift ./depends-on-a-foo.swift ./depends-on-a-ext.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-CLEAN %s - -// CHECK-CLEAN-NOT: Handled - -// RUN: touch -t 201401240006 %t/a.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./a.swift ./a-ext.swift ./depends-on-a-foo.swift ./depends-on-a-ext.swift -module-name main -j1 -v > %t/touched-a.txt 2>&1 -// RUN: %FileCheck -check-prefix=CHECK-TOUCHED-A %s < %t/touched-a.txt -// RUN: %FileCheck -check-prefix=NEGATIVE-TOUCHED-A %s < %t/touched-a.txt - -// CHECK-TOUCHED-A: Handled a.swift -// CHECK-TOUCHED-A-DAG: Handled depends-on-a-foo.swift -// CHECK-TOUCHED-A-DAG: Handled depends-on-a-ext.swift -// NEGATIVE-TOUCHED-A-NOT: Handled a-ext.swift - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./a.swift ./a-ext.swift ./depends-on-a-foo.swift ./depends-on-a-ext.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-CLEAN %s - - -// RUN: touch -t 201401240007 %t/a-ext.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./a.swift ./a-ext.swift ./depends-on-a-foo.swift ./depends-on-a-ext.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-TOUCHED-EXT %s - -// CHECK-TOUCHED-EXT-NOT: Handled -// CHECK-TOUCHED-EXT: Handled a-ext.swift -// CHECK-TOUCHED-EXT-NOT: Handled -// CHECK-TOUCHED-EXT: Handled depends-on-a-ext.swift -// CHECK-TOUCHED-EXT-NOT: Handled diff --git a/test/Driver/Dependencies/one-way-depends-after-fine.swift b/test/Driver/Dependencies/one-way-depends-after-fine.swift deleted file mode 100644 index 4ed427a41525c..0000000000000 --- a/test/Driver/Dependencies/one-way-depends-after-fine.swift +++ /dev/null @@ -1,56 +0,0 @@ -/// other | main -/// other ==>+ main - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/one-way-depends-after-fine/* %t -// RUN: touch -t 201401240005 %t/*.swift - -// Generate the build record... -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v - -// ...then reset the .swiftdeps files. -// RUN: cp -r %S/Inputs/one-way-depends-after-fine/*.swiftdeps %t - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s - -// CHECK-FIRST-NOT: warning -// CHECK-FIRST-NOT: Handled - -// RUN: touch -t 201401240006 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s - -// CHECK-SECOND-NOT: Handled main.swift -// CHECK-SECOND: Handled other.swift -// CHECK-SECOND-NOT: Handled main.swift - -// RUN: touch -t 201401240007 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s - - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/one-way-depends-after-fine/* %t -// RUN: touch -t 201401240005 %t/*.swift - -// Generate the build record... -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v - -// ...then reset the .swiftdeps files. -// RUN: cp -r %S/Inputs/one-way-depends-after-fine/*.swiftdeps %t - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s - -// RUN: touch -t 201401240006 %t/main.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s - -// CHECK-THIRD-NOT: Handled other.swift -// CHECK-THIRD: Handled main.swift -// CHECK-THIRD-NOT: Handled other.swift - -// RUN: touch -t 201401240007 %t/main.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s - -// RUN: touch -t 201401240008 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FOURTH %s - -// CHECK-FOURTH-DAG: Handled other.swift -// CHECK-FOURTH-DAG: Handled main.swift diff --git a/test/Driver/Dependencies/one-way-depends-before-fine.swift b/test/Driver/Dependencies/one-way-depends-before-fine.swift deleted file mode 100644 index 65b54b1289d4b..0000000000000 --- a/test/Driver/Dependencies/one-way-depends-before-fine.swift +++ /dev/null @@ -1,56 +0,0 @@ -/// other ==>+ main -/// other | main - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/one-way-depends-before-fine/* %t -// RUN: touch -t 201401240005 %t/*.swift - -// Generate the build record... -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v - -// ...then reset the .swiftdeps files. -// RUN: cp -r %S/Inputs/one-way-depends-before-fine/*.swiftdeps %t - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s - -// CHECK-FIRST-NOT: warning -// CHECK-FIRST-NOT: Handled - -// RUN: touch -t 201401240006 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s - -// CHECK-SECOND: Handled main.swift -// CHECK-SECOND: Handled other.swift - -// RUN: touch -t 201401240007 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s - -// CHECK-THIRD-NOT: Handled main.swift -// CHECK-THIRD: Handled other.swift -// CHECK-THIRD-NOT: Handled main.swift - - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/one-way-depends-before-fine/* %t -// RUN: touch -t 201401240005 %t/*.swift - -// Generate the build record... -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v - -// ...then reset the .swiftdeps files. -// RUN: cp -r %S/Inputs/one-way-depends-before-fine/*.swiftdeps %t - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s - -// RUN: touch -t 201401240006 %t/main.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FOURTH %s - -// CHECK-FOURTH-NOT: Handled other.swift -// CHECK-FOURTH: Handled main.swift -// CHECK-FOURTH-NOT: Handled other.swift - -// RUN: touch -t 201401240007 %t/main.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FOURTH %s - -// RUN: touch -t 201401240008 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s diff --git a/test/Driver/Dependencies/one-way-external-delete-fine.swift b/test/Driver/Dependencies/one-way-external-delete-fine.swift deleted file mode 100644 index 320c7db1b649c..0000000000000 --- a/test/Driver/Dependencies/one-way-external-delete-fine.swift +++ /dev/null @@ -1,41 +0,0 @@ -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/one-way-external-fine/* %t -// RUN: touch -t 201401240005 %t/* - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s - -// CHECK-FIRST-NOT: warning -// CHECK-FIRST: Handled main.swift -// CHECK-FIRST: Handled other.swift - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s - -// CHECK-SECOND-NOT: Handled - - -// RUN: touch -t 201401240005 %t/* -// RUN: touch -t 201401240006 %t/*.o -// RUN: touch -t 201401240004 %t/*-external -// RUN: rm %t/other1-external -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s - -// CHECK-THIRD-DAG: Handled other.swift -// CHECK-THIRD-DAG: Handled main.swift - - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/one-way-external-fine/* %t -// RUN: touch -t 201401240005 %t/* - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s - - -// RUN: touch -t 201401240005 %t/* -// RUN: touch -t 201401240006 %t/*.o -// RUN: touch -t 201401240004 %t/*-external -// RUN: rm %t/main1-external -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FOURTH %s - -// CHECK-FOURTH-NOT: Handled other.swift -// CHECK-FOURTH: Handled main.swift -// CHECK-FOURTH-NOT: Handled other.swift diff --git a/test/Driver/Dependencies/one-way-external-fine.swift b/test/Driver/Dependencies/one-way-external-fine.swift deleted file mode 100644 index a49e3a36adca7..0000000000000 --- a/test/Driver/Dependencies/one-way-external-fine.swift +++ /dev/null @@ -1,52 +0,0 @@ -/// other ==> main -/// "./main1-external" ==> main -/// "./main2-external" ==> main -/// "./other1-external" ==> other -/// "./other2-external" ==> other - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/one-way-external-fine/* %t -// RUN: touch -t 201401240005 %t/* - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s - -// CHECK-FIRST-NOT: warning -// CHECK-FIRST: Handled main.swift -// CHECK-FIRST: Handled other.swift - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s - -// CHECK-SECOND-NOT: Handled - - -// RUN: touch -t 201401240005 %t/* -// RUN: touch -t 201401240006 %t/*.o -// RUN: touch -t 201401240004 %t/*-external -// RUN: touch -t 203704010005 %t/other1-external -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s - -// CHECK-THIRD-DAG: Handled other.swift -// CHECK-THIRD-DAG: Handled main.swift - -// RUN: touch -t 201401240005 %t/* -// RUN: touch -t 201401240006 %t/*.o -// RUN: touch -t 201401240004 %t/*-external -// RUN: touch -t 203704010005 %t/other2-external -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s - - -// RUN: touch -t 201401240005 %t/* -// RUN: touch -t 201401240006 %t/*.o -// RUN: touch -t 201401240004 %t/*-external -// RUN: touch -t 203704010005 %t/main1-external -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FOURTH %s - -// CHECK-FOURTH-NOT: Handled other.swift -// CHECK-FOURTH: Handled main.swift -// CHECK-FOURTH-NOT: Handled other.swift - -// RUN: touch -t 201401240005 %t/* -// RUN: touch -t 201401240006 %t/*.o -// RUN: touch -t 201401240004 %t/*-external -// RUN: touch -t 203704010005 %t/main2-external -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FOURTH %s diff --git a/test/Driver/Dependencies/one-way-fine.swift b/test/Driver/Dependencies/one-way-fine.swift deleted file mode 100644 index e0d30d47c70c7..0000000000000 --- a/test/Driver/Dependencies/one-way-fine.swift +++ /dev/null @@ -1,75 +0,0 @@ -/// other ==> main - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/one-way-fine/* %t -// RUN: touch -t 201401240005 %t/* - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s - -// CHECK-FIRST-NOT: warning -// CHECK-FIRST: Handled main.swift -// CHECK-FIRST: Handled other.swift - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s - -// CHECK-SECOND-NOT: Handled - -// RUN: touch -t 201401240006 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s - -// CHECK-THIRD: Handled main.swift -// CHECK-THIRD: Handled other.swift - -// RUN: touch -t 201401240006 %t/main.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FOURTH %s - -// CHECK-FOURTH-NOT: Handled other.swift -// CHECK-FOURTH: Handled main.swift -// CHECK-FOURTH-NOT: Handled other.swift - -// RUN: rm %t/main.o -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FOURTH %s - -// RUN: rm %t/other.o -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIFTH %s - -// CHECK-FIFTH-NOT: Handled main.swift -// CHECK-FIFTH: Handled other.swift -// CHECK-FIFTH-NOT: Handled main.swift - - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/one-way-fine/* %t -// RUN: touch -t 201401240005 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s - -// Try modifying the inputs /backwards/ in time rather than forwards. -// RUN: touch -t 201401240004 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s - -// RUN: touch -t 201401240004 %t/main.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FOURTH %s - - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/one-way-fine/* %t -// RUN: touch -t 201401240005 %t/* - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./other.swift ./main.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-REV-FIRST %s - -// CHECK-REV-FIRST: Handled other.swift -// CHECK-REV-FIRST: Handled main.swift - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./other.swift ./main.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-REV-SECOND %s - -// CHECK-REV-SECOND-NOT: Handled - -// RUN: touch -t 201401240006 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./other.swift ./main.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-REV-FIRST %s - -// RUN: touch -t 201401240006 %t/main.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./other.swift ./main.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-REV-FOURTH %s - -// CHECK-REV-FOURTH-NOT: Handled other.swift -// CHECK-REV-FOURTH: Handled main.swift -// CHECK-REV-FOURTH-NOT: Handled other.swift diff --git a/test/Driver/Dependencies/one-way-merge-module-fine.swift b/test/Driver/Dependencies/one-way-merge-module-fine.swift deleted file mode 100644 index 052385f13ae62..0000000000000 --- a/test/Driver/Dependencies/one-way-merge-module-fine.swift +++ /dev/null @@ -1,18 +0,0 @@ -/// other ==> main - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/one-way-fine/* %t -// RUN: touch -t 201401240005 %t/* - -// RUN: cd %t && %swiftc_driver -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -emit-module-path %t/master.swiftmodule -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s - -// CHECK-FIRST-NOT: warning -// CHECK-FIRST: Handled main.swift -// CHECK-FIRST: Handled other.swift -// CHECK-FIRST: Produced master.swiftmodule - -// RUN: cd %t && %swiftc_driver -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -emit-module-path %t/master.swiftmodule -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s - -// CHECK-SECOND-NOT: warning -// CHECK-SECOND-NOT: Handled -// CHECK-SECOND: Produced master.swiftmodule diff --git a/test/Driver/Dependencies/one-way-parallel-fine.swift b/test/Driver/Dependencies/one-way-parallel-fine.swift deleted file mode 100644 index b468c2497a881..0000000000000 --- a/test/Driver/Dependencies/one-way-parallel-fine.swift +++ /dev/null @@ -1,61 +0,0 @@ -// Windows doesn't support parallel execution yet -// XFAIL: windows -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/one-way-fine/* %t -// RUN: touch -t 201401240005 %t/* - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -parseable-output 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s - -// CHECK-FIRST-NOT: warning -// CHECK-FIRST: {{^{$}} -// CHECK-FIRST: "kind": "began" -// CHECK-FIRST: "name": "compile" -// CHECK-FIRST: ".\/main.swift" -// CHECK-FIRST: {{^}$}} - -// CHECK-FIRST: {{^{$}} -// CHECK-FIRST: "kind": "finished" -// CHECK-FIRST: "name": "compile" -// CHECK-FIRST: "output": "Handled main.swift\n" -// CHECK-FIRST: {{^}$}} - -// CHECK-FIRST: {{^{$}} -// CHECK-FIRST: "kind": "began" -// CHECK-FIRST: "name": "compile" -// CHECK-FIRST: ".\/other.swift" -// CHECK-FIRST: {{^}$}} - -// CHECK-FIRST: {{^{$}} -// CHECK-FIRST: "kind": "finished" -// CHECK-FIRST: "name": "compile" -// CHECK-FIRST: "output": "Handled other.swift\n" -// CHECK-FIRST: {{^}$}} - -// RUN: touch -t 201401240006 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j2 -parseable-output 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s - -// CHECK-SECOND: {{^{$}} -// CHECK-SECOND: "kind": "began" -// CHECK-SECOND: "name": "compile" -// CHECK-SECOND: ".\/other.swift" -// CHECK-SECOND: {{^}$}} - -// CHECK-SECOND: {{^{$}} -// CHECK-SECOND: "kind": "began" -// CHECK-SECOND: "name": "compile" -// CHECK-SECOND: ".\/main.swift" -// CHECK-SECOND: {{^}$}} - -// CHECK-SECOND: {{^{$}} -// CHECK-SECOND: "kind": "finished" -// CHECK-SECOND: "name": "compile" -// CHECK-SECOND: "output": "Handled {{other.swift|main.swift}}\n" -// CHECK-SECOND: {{^}$}} - -// CHECK-SECOND: {{^{$}} -// CHECK-SECOND: "kind": "finished" -// CHECK-SECOND: "name": "compile" -// CHECK-SECOND: "output": "Handled {{main.swift|other.swift}}\n" -// CHECK-SECOND: {{^}$}} - -// CHECK-SECOND-NOT: "skipped" diff --git a/test/Driver/Dependencies/one-way-parseable-fine.swift b/test/Driver/Dependencies/one-way-parseable-fine.swift deleted file mode 100644 index 2169ffcd2c002..0000000000000 --- a/test/Driver/Dependencies/one-way-parseable-fine.swift +++ /dev/null @@ -1,92 +0,0 @@ -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/one-way-fine/* %t -// RUN: touch -t 201401240005 %t/* - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -parseable-output 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s - -// CHECK-FIRST-NOT: warning -// CHECK-FIRST: {{^{$}} -// CHECK-FIRST: "kind": "began" -// CHECK-FIRST: "name": "compile" -// CHECK-FIRST: ".\/main.swift" -// CHECK-FIRST: {{^}$}} - -// CHECK-FIRST: {{^{$}} -// CHECK-FIRST: "kind": "finished" -// CHECK-FIRST: "name": "compile" -// CHECK-FIRST: "output": "Handled main.swift{{(\\r)?}}\n" -// CHECK-FIRST: {{^}$}} - -// CHECK-FIRST: {{^{$}} -// CHECK-FIRST: "kind": "began" -// CHECK-FIRST: "name": "compile" -// CHECK-FIRST: ".\/other.swift" -// CHECK-FIRST: {{^}$}} - -// CHECK-FIRST: {{^{$}} -// CHECK-FIRST: "kind": "finished" -// CHECK-FIRST: "name": "compile" -// CHECK-FIRST: "output": "Handled other.swift{{(\\r)?}}\n" -// CHECK-FIRST: {{^}$}} - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -parseable-output 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s - -// CHECK-SECOND: {{^{$}} -// CHECK-SECOND: "kind": "skipped" -// CHECK-SECOND: "name": "compile" -// CHECK-SECOND: ".\/main.swift" -// CHECK-SECOND: {{^}$}} - -// CHECK-SECOND: {{^{$}} -// CHECK-SECOND: "kind": "skipped" -// CHECK-SECOND: "name": "compile" -// CHECK-SECOND: ".\/other.swift" -// CHECK-SECOND: {{^}$}} - -// RUN: touch -t 201401240006 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -parseable-output 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s - -// CHECK-THIRD: {{^{$}} -// CHECK-THIRD: "kind": "began" -// CHECK-THIRD: "name": "compile" -// CHECK-THIRD: ".\/main.swift" -// CHECK-THIRD: {{^}$}} - -// CHECK-THIRD: {{^{$}} -// CHECK-THIRD: "kind": "finished" -// CHECK-THIRD: "name": "compile" -// CHECK-THIRD: "output": "Handled main.swift{{(\\r)?}}\n" -// CHECK-THIRD: {{^}$}} - -// CHECK-THIRD: {{^{$}} -// CHECK-THIRD: "kind": "began" -// CHECK-THIRD: "name": "compile" -// CHECK-THIRD: ".\/other.swift" -// CHECK-THIRD: {{^}$}} - -// CHECK-THIRD: {{^{$}} -// CHECK-THIRD: "kind": "finished" -// CHECK-THIRD: "name": "compile" -// CHECK-THIRD: "output": "Handled other.swift{{(\\r)?}}\n" -// CHECK-THIRD: {{^}$}} - -// RUN: touch -t 201401240006 %t/main.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -parseable-output 2>&1 | %FileCheck -check-prefix=CHECK-FOURTH %s - -// CHECK-FOURTH: {{^{$}} -// CHECK-FOURTH: "kind": "began" -// CHECK-FOURTH: "name": "compile" -// CHECK-FOURTH: ".\/main.swift" -// CHECK-FOURTH: {{^}$}} - -// CHECK-FOURTH: {{^{$}} -// CHECK-FOURTH: "kind": "finished" -// CHECK-FOURTH: "name": "compile" -// CHECK-FOURTH: "output": "Handled main.swift{{(\\r)?}}\n" -// CHECK-FOURTH: {{^}$}} - -// CHECK-FOURTH: {{^{$}} -// CHECK-FOURTH: "kind": "skipped" -// CHECK-FOURTH: "name": "compile" -// CHECK-FOURTH: ".\/other.swift" -// CHECK-FOURTH: {{^}$}} diff --git a/test/Driver/Dependencies/one-way-provides-after-fine.swift b/test/Driver/Dependencies/one-way-provides-after-fine.swift deleted file mode 100644 index 27718a54551e6..0000000000000 --- a/test/Driver/Dependencies/one-way-provides-after-fine.swift +++ /dev/null @@ -1,48 +0,0 @@ -/// other | main -/// other +==> main - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/one-way-provides-after-fine/* %t -// RUN: touch -t 201401240005 %t/*.swift - -// Generate the build record... -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v - -// ...then reset the .swiftdeps files. -// RUN: cp -r %S/Inputs/one-way-provides-after-fine/*.swiftdeps %t - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s - -// CHECK-FIRST-NOT: warning -// CHECK-FIRST-NOT: Handled - -// RUN: touch -t 201401240006 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s - -// CHECK-SECOND-DAG: Handled other.swift -// CHECK-SECOND-DAG: Handled main.swift - -// RUN: touch -t 201401240007 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/one-way-provides-after-fine/* %t -// RUN: touch -t 201401240005 %t/*.swift - -// Generate the build record... -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v - -// ...then reset the .swiftdeps files. -// RUN: cp -r %S/Inputs/one-way-provides-after-fine/*.swiftdeps %t - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s - -// RUN: touch -t 201401240007 %t/main.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s - -// RUN: touch -t 201401240008 %t/main.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s - -// CHECK-THIRD-NOT: Handled other.swift -// CHECK-THIRD: Handled main.swift -// CHECK-THIRD-NOT: Handled other.swift diff --git a/test/Driver/Dependencies/one-way-provides-before-fine.swift b/test/Driver/Dependencies/one-way-provides-before-fine.swift deleted file mode 100644 index 504ca49ba0cdb..0000000000000 --- a/test/Driver/Dependencies/one-way-provides-before-fine.swift +++ /dev/null @@ -1,52 +0,0 @@ -/// other +==> main -/// other | main - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/one-way-provides-before-fine/* %t -// RUN: touch -t 201401240005 %t/*.swift - -// Generate the build record... -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v - -// ...then reset the .swiftdeps files. -// RUN: cp -r %S/Inputs/one-way-provides-before-fine/*.swiftdeps %t - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s - -// CHECK-FIRST-NOT: warning -// CHECK-FIRST-NOT: Handled - -// RUN: touch -t 201401240006 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s - -// CHECK-SECOND: Handled main.swift -// CHECK-SECOND: Handled other.swift - -// RUN: touch -t 201401240007 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s - -// CHECK-THIRD-NOT: Handled main.swift -// CHECK-THIRD: Handled other.swift -// CHECK-THIRD-NOT: Handled main.swift - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/one-way-provides-before-fine/* %t -// RUN: touch -t 201401240005 %t/*.swift - -// Generate the build record... -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v - -// ...then reset the .swiftdeps files. -// RUN: cp -r %S/Inputs/one-way-provides-before-fine/*.swiftdeps %t - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s - -// RUN: touch -t 201401240006 %t/main.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FOURTH %s - -// RUN: touch -t 201401240007 %t/main.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FOURTH %s - -// CHECK-FOURTH-NOT: Handled other.swift -// CHECK-FOURTH: Handled main.swift -// CHECK-FOURTH-NOT: Handled other.swift diff --git a/test/Driver/Dependencies/one-way-while-editing-fine.swift b/test/Driver/Dependencies/one-way-while-editing-fine.swift deleted file mode 100644 index fdba1dc166a28..0000000000000 --- a/test/Driver/Dependencies/one-way-while-editing-fine.swift +++ /dev/null @@ -1,34 +0,0 @@ -/// other ==> main - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/one-way-fine/* %t -// RUN: touch -t 201401240005 %t/* - -// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/modify-non-primary-files.py" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck %s - -// CHECK: Handled main.swift -// CHECK: Handled other.swift -// CHECK-NOT: error -// CHECK: error: input file 'other.swift' was modified during the build -// CHECK-NOT: error - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-RECOVER %s - -// CHECK-RECOVER: Handled main.swift -// CHECK-RECOVER: Handled other.swift - - -// RUN: touch -t 201401240005 %t/* -// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/modify-non-primary-files.py" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./other.swift ./main.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-REVERSED %s - -// CHECK-REVERSED: Handled other.swift -// CHECK-REVERSED: Handled main.swift -// CHECK-REVERSED-NOT: error -// CHECK-REVERSED: error: input file 'main.swift' was modified during the build -// CHECK-REVERSED-NOT: error - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-REVERSED-RECOVER %s - -// CHECK-REVERSED-RECOVER-NOT: Handled other.swift -// CHECK-REVERSED-RECOVER: Handled main.swift -// CHECK-REVERSED-RECOVER-NOT: Handled other.swift diff --git a/test/Driver/Dependencies/only-skip-once.swift b/test/Driver/Dependencies/only-skip-once.swift deleted file mode 100644 index 548155b9e32bb..0000000000000 --- a/test/Driver/Dependencies/only-skip-once.swift +++ /dev/null @@ -1,22 +0,0 @@ -// XFAIL: linux, openbsd - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/only-skip-once/* %t -// RUN: touch -t 201401240005 %t/* - -// RUN: cd %t && %target-swiftc_driver -driver-show-job-lifecycle -output-file-map %t/output-file-map.json -incremental -disable-direct-intramodule-dependencies main.swift file1.swift file2.swift -j1 2>%t/stderr.txt | %FileCheck -check-prefix=CHECK-INITIAL %s - -// CHECK-INITIAL: Job finished: {compile: main.o <= main.swift} -// CHECK-INITIAL: Job finished: {compile: file1.o <= file1.swift} -// CHECK-INITIAL: Job finished: {compile: file2.o <= file2.swift} -// CHECK-INITIAL: Job finished: {link: main <= main.o file1.o file2.o} - -// RUN: touch -t 201401240006 %t/file2.swift -// RUN: cd %t && %target-swiftc_driver -driver-show-job-lifecycle -output-file-map %t/output-file-map.json -incremental -disable-direct-intramodule-dependencies main.swift file1.swift file2.swift -j1 2>%t/stderr.txt | %FileCheck -check-prefix=CHECK-REBUILD %s - -// We should skip the main and file1 rebuilds here, but we should only note skipping them _once_ -// CHECK-REBUILD: Job finished: {compile: file2.o <= file2.swift} -// CHECK-REBUILD: Job skipped: {compile: main.o <= main.swift} -// CHECK-REBUILD: Job skipped: {compile: file1.o <= file1.swift} -// CHECK-REBUILD: Job finished: {link: main <= main.o file1.o file2.o} -// CHECK-REBUILD-NOT: Job skipped: diff --git a/test/Driver/Dependencies/private-after-fine.swift b/test/Driver/Dependencies/private-after-fine.swift deleted file mode 100644 index e3e5a4327401d..0000000000000 --- a/test/Driver/Dependencies/private-after-fine.swift +++ /dev/null @@ -1,54 +0,0 @@ -/// a --> b ==> c | a ==> d | e ==> b | f ==> g -/// a --> b ==> c | a ==> d +==> e +==> b, e --> f ==> g - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/private-after-fine/* %t -// RUN: touch -t 201401240005 %t/*.swift - -// Generate the build record... -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift ./f.swift ./g.swift -module-name main -j1 -v - -// ...then reset the .swiftdeps files. -// RUN: cp -r %S/Inputs/private-after-fine/*.swiftdeps %t - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift ./f.swift ./g.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-INITIAL %s - -// CHECK-INITIAL-NOT: warning -// CHECK-INITIAL-NOT: Handled - -// RUN: touch -t 201401240006 %t/a.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift ./f.swift ./g.swift -module-name main -j1 -v > %t/a.txt 2>&1 -// RUN: %FileCheck -check-prefix=CHECK-A %s < %t/a.txt -// RUN: %FileCheck -check-prefix=CHECK-A-NEG %s < %t/a.txt - -// CHECK-A: Handled a.swift -// CHECK-A-DAG: Handled b.swift -// CHECK-A-DAG: Handled d.swift -// CHECK-A: Handled e.swift -// CHECK-A-DAG: Handled c.swift -// CHECK-A-DAG: Handled f.swift -// CHECK-A-NEG-NOT: Handled g.swift - - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/private-after-fine/* %t -// RUN: touch -t 201401240005 %t/*.swift - -// Generate the build record... -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift ./f.swift ./g.swift -module-name main -j1 -v - -// ...then reset the .swiftdeps files. -// RUN: cp -r %S/Inputs/private-after-fine/*.swiftdeps %t - -// RUN: touch -t 201401240006 %t/f.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift ./f.swift ./g.swift -module-name main -j1 -v > %t/f.txt 2>&1 -// RUN: %FileCheck -check-prefix=CHECK-F %s < %t/f.txt -// RUN: %FileCheck -check-prefix=CHECK-F-NEG %s < %t/f.txt - -// CHECK-F: Handled f.swift -// CHECK-F: Handled g.swift -// CHECK-F-NEG-NOT: Handled a.swift -// CHECK-F-NEG-NOT: Handled b.swift -// CHECK-F-NEG-NOT: Handled c.swift -// CHECK-F-NEG-NOT: Handled d.swift -// CHECK-F-NEG-NOT: Handled e.swift diff --git a/test/Driver/Dependencies/private-fine.swift b/test/Driver/Dependencies/private-fine.swift deleted file mode 100644 index 341a40248447c..0000000000000 --- a/test/Driver/Dependencies/private-fine.swift +++ /dev/null @@ -1,87 +0,0 @@ -// a ==> b --> c ==> d | e ==> c - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/private-fine/* %t -// RUN: touch -t 201401240005 %t/* - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-INITIAL %s - -// CHECK-INITIAL-NOT: warning -// CHECK-INITIAL: Handled a.swift -// CHECK-INITIAL: Handled b.swift -// CHECK-INITIAL: Handled c.swift -// CHECK-INITIAL: Handled d.swift -// CHECK-INITIAL: Handled e.swift - -// RUN: touch -t 201401240006 %t/a.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift -module-name main -j1 -v > %t/a.txt 2>&1 -// RUN: %FileCheck -check-prefix=CHECK-A %s < %t/a.txt -// RUN: %FileCheck -check-prefix=CHECK-A-NEG %s < %t/a.txt - -// CHECK-A: Handled a.swift -// CHECK-A-DAG: Handled b.swift -// CHECK-A-DAG: Handled c.swift -// CHECK-A-NEG-NOT: Handled d.swift -// CHECK-A-NEG-NOT: Handled e.swift - -// RUN: touch -t 201401240006 %t/b.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift -module-name main -j1 -v > %t/b.txt 2>&1 -// RUN: %FileCheck -check-prefix=CHECK-B %s < %t/b.txt -// RUN: %FileCheck -check-prefix=CHECK-B-NEG %s < %t/b.txt - -// CHECK-B-NEG-NOT: Handled a.swift -// CHECK-B: Handled b.swift -// CHECK-B: Handled c.swift -// CHECK-B-NEG-NOT: Handled d.swift -// CHECK-B-NEG-NOT: Handled e.swift - -// RUN: touch -t 201401240006 %t/c.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift -module-name main -j1 -v > %t/c.txt 2>&1 -// RUN: %FileCheck -check-prefix=CHECK-C %s < %t/c.txt -// RUN: %FileCheck -check-prefix=CHECK-C-NEG %s < %t/c.txt - -// CHECK-C-NEG-NOT: Handled a.swift -// CHECK-C-NEG-NOT: Handled b.swift -// CHECK-C: Handled c.swift -// CHECK-C: Handled d.swift -// CHECK-C-NEG-NOT: Handled e.swift - -// RUN: touch -t 201401240006 %t/d.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift -module-name main -j1 -v > %t/d.txt 2>&1 -// RUN: %FileCheck -check-prefix=CHECK-D %s < %t/d.txt -// RUN: %FileCheck -check-prefix=CHECK-D-NEG %s < %t/d.txt - -// CHECK-D-NEG-NOT: Handled a.swift -// CHECK-D-NEG-NOT: Handled b.swift -// CHECK-D-NEG-NOT: Handled c.swift -// CHECK-D: Handled d.swift -// CHECK-D-NEG-NOT: Handled e.swift - -// RUN: touch -t 201401240006 %t/e.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift -module-name main -j1 -v > %t/e.txt 2>&1 -// RUN: %FileCheck -check-prefix=CHECK-E %s < %t/e.txt -// RUN: %FileCheck -check-prefix=CHECK-E-NEG %s < %t/e.txt - -// CHECK-E-NEG-NOT: Handled a.swift -// CHECK-E-NEG-NOT: Handled b.swift -// CHECK-E: Handled c.swift -// CHECK-E-NEG-NOT: Handled a.swift -// CHECK-E-NEG-NOT: Handled b.swift -// CHECK-E: Handled d.swift -// CHECK-E-NEG-NOT: Handled a.swift -// CHECK-E-NEG-NOT: Handled b.swift -// CHECK-E: Handled e.swift -// CHECK-E-NEG-NOT: Handled a.swift -// CHECK-E-NEG-NOT: Handled b.swift - -// RUN: touch -t 201401240007 %t/a.swift %t/e.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift -module-name main -j1 -v > %t/ae.txt 2>&1 -// RUN: %FileCheck -check-prefix=CHECK-AE %s < %t/ae.txt -// RUN: %FileCheck -check-prefix=CHECK-AE-NEG %s < %t/ae.txt - -// CHECK-AE: Handled a.swift -// CHECK-AE: Handled b.swift -// CHECK-AE: Handled c.swift -// CHECK-AE: Handled d.swift -// CHECK-AE: Handled e.swift -// CHECK-AE-NEG: Handled diff --git a/test/Driver/Dependencies/whole-module-build-record.swift b/test/Driver/Dependencies/whole-module-build-record.swift deleted file mode 100644 index 5423d32296a49..0000000000000 --- a/test/Driver/Dependencies/whole-module-build-record.swift +++ /dev/null @@ -1,20 +0,0 @@ -/// other ==> main - -// RUN: %empty-directory(%t) -// RUN: cp -r %S/Inputs/one-way/* %t -// RUN: touch -t 201401240005 %t/* - -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/fake-build-whole-module.py" -output-file-map %t/output.json -whole-module-optimization ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s -// RUN: %FileCheck -check-prefix=CHECK-RECORD %s < %t/main~buildrecord.swiftdeps - -// CHECK-FIRST-NOT: warning -// CHECK-FIRST: Produced main.o - -// CHECK-RECORD-DAG: "./main.swift": [ -// CHECK-RECORD-DAG: "./other.swift": [ - - -// RUN: touch -t 201401240006 %t/other.swift -// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/../Inputs/fail.py" -output-file-map %t/output.json -whole-module-optimization ./main.swift ./other.swift -module-name main -j1 -v 2>&1 - -// Just don't crash. diff --git a/test/Driver/PrivateDependencies/bindings-build-record.swift b/test/Driver/PrivateDependencies/bindings-build-record.swift index 2db8a0f4164d8..95ffe59d0325f 100644 --- a/test/Driver/PrivateDependencies/bindings-build-record.swift +++ b/test/Driver/PrivateDependencies/bindings-build-record.swift @@ -3,7 +3,7 @@ // RUN: cp -r %S/Inputs/bindings-build-record/* %t // RUN: %{python} %S/Inputs/touch.py 443865900 %t/* -// RUN: cd %t && %swiftc_driver -driver-print-bindings ./main.swift ./other.swift ./yet-another.swift -incremental -enable-direct-intramodule-dependencies -driver-show-incremental -output-file-map %t/output.json 2>&1 |%FileCheck %s -check-prefix=MUST-EXEC +// RUN: cd %t && %swiftc_driver -driver-print-bindings ./main.swift ./other.swift ./yet-another.swift -incremental -driver-show-incremental -output-file-map %t/output.json 2>&1 |%FileCheck %s -check-prefix=MUST-EXEC // MUST-EXEC-NOT: warning // MUST-EXEC: inputs: ["./main.swift"], output: {object: "./main.o", swift-dependencies: "./main.swiftdeps"} @@ -12,7 +12,7 @@ // MUST-EXEC: Disabling incremental build: could not read build record // RUN: echo '{version: "'$(%swiftc_driver_plain -version | head -n1)'", inputs: {"./main.swift": [443865900, 0], "./other.swift": [443865900, 0], "./yet-another.swift": [443865900, 0]}, build_time: [443865901, 0]}' > %t/main~buildrecord.swiftdeps -// RUN: cd %t && %swiftc_driver -driver-print-bindings ./main.swift ./other.swift ./yet-another.swift -incremental -enable-direct-intramodule-dependencies -output-file-map %t/output.json 2>&1 | %FileCheck %s -check-prefix=NO-EXEC +// RUN: cd %t && %swiftc_driver -driver-print-bindings ./main.swift ./other.swift ./yet-another.swift -incremental -output-file-map %t/output.json 2>&1 | %FileCheck %s -check-prefix=NO-EXEC // NO-EXEC: inputs: ["./main.swift"], output: {{[{].*[}]}}, condition: check-dependencies // NO-EXEC: inputs: ["./other.swift"], output: {{[{].*[}]}}, condition: check-dependencies @@ -20,33 +20,33 @@ // RUN: echo '{version: "'$(%swiftc_driver_plain -version | head -n1)'", inputs: {"./main.swift": [443865900, 0], "./other.swift": !private [443865900, 0], "./yet-another.swift": !dirty [443865900, 0]}, build_time: [443865901, 0]}' > %t/main~buildrecord.swiftdeps -// RUN: cd %t && %swiftc_driver -driver-print-bindings ./main.swift ./other.swift ./yet-another.swift -incremental -enable-direct-intramodule-dependencies -output-file-map %t/output.json 2>&1 | %FileCheck %s -check-prefix=BUILD-RECORD +// RUN: cd %t && %swiftc_driver -driver-print-bindings ./main.swift ./other.swift ./yet-another.swift -incremental -output-file-map %t/output.json 2>&1 | %FileCheck %s -check-prefix=BUILD-RECORD // BUILD-RECORD: inputs: ["./main.swift"], output: {{[{].*[}]}}, condition: check-dependencies{{$}} // BUILD-RECORD: inputs: ["./other.swift"], output: {{[{].*[}]}}, condition: run-without-cascading{{$}} // BUILD-RECORD: inputs: ["./yet-another.swift"], output: {{[{].*[}]$}} -// RUN: cd %t && %swiftc_driver -driver-print-bindings ./main.swift ./other.swift ./yet-another.swift ./added.swift -incremental -enable-direct-intramodule-dependencies -output-file-map %t/output.json 2>&1 > %t/added.txt +// RUN: cd %t && %swiftc_driver -driver-print-bindings ./main.swift ./other.swift ./yet-another.swift ./added.swift -incremental -output-file-map %t/output.json 2>&1 > %t/added.txt // RUN: %FileCheck %s -check-prefix=BUILD-RECORD < %t/added.txt // RUN: %FileCheck %s -check-prefix=FILE-ADDED < %t/added.txt // FILE-ADDED: inputs: ["./added.swift"], output: {{[{].*[}]}}, condition: newly-added{{$}} // RUN: %{python} %S/Inputs/touch.py 443865960 %t/main.swift -// RUN: cd %t && %swiftc_driver -driver-print-bindings ./main.swift ./other.swift ./yet-another.swift -incremental -enable-direct-intramodule-dependencies -output-file-map %t/output.json 2>&1 | %FileCheck %s -check-prefix=BUILD-RECORD-PLUS-CHANGE +// RUN: cd %t && %swiftc_driver -driver-print-bindings ./main.swift ./other.swift ./yet-another.swift -incremental -output-file-map %t/output.json 2>&1 | %FileCheck %s -check-prefix=BUILD-RECORD-PLUS-CHANGE // BUILD-RECORD-PLUS-CHANGE: inputs: ["./main.swift"], output: {{[{].*[}]}}, condition: run-without-cascading // BUILD-RECORD-PLUS-CHANGE: inputs: ["./other.swift"], output: {{[{].*[}]}}, condition: run-without-cascading{{$}} // BUILD-RECORD-PLUS-CHANGE: inputs: ["./yet-another.swift"], output: {{[{].*[}]$}} // RUN: %{python} %S/Inputs/touch.py 443865900 %t/* -// RUN: cd %t && %swiftc_driver -driver-print-bindings ./main.swift ./other.swift -incremental -enable-direct-intramodule-dependencies -output-file-map %t/output.json 2>&1 | %FileCheck %s -check-prefix=FILE-REMOVED +// RUN: cd %t && %swiftc_driver -driver-print-bindings ./main.swift ./other.swift -incremental -output-file-map %t/output.json 2>&1 | %FileCheck %s -check-prefix=FILE-REMOVED // FILE-REMOVED: inputs: ["./main.swift"], output: {{[{].*[}]$}} // FILE-REMOVED: inputs: ["./other.swift"], output: {{[{].*[}]$}} // FILE-REMOVED-NOT: yet-another.swift // RUN: echo '{version: "bogus", inputs: {"./main.swift": [443865900, 0], "./other.swift": !private [443865900, 0], "./yet-another.swift": !dirty [443865900, 0]}}' > %t/main~buildrecord.swiftdeps -// RUN: cd %t && %swiftc_driver -driver-print-bindings ./main.swift ./other.swift ./yet-another.swift -incremental -enable-direct-intramodule-dependencies -output-file-map %t/output.json 2>&1 | %FileCheck %s -check-prefix=INVALID-RECORD +// RUN: cd %t && %swiftc_driver -driver-print-bindings ./main.swift ./other.swift ./yet-another.swift -incremental -output-file-map %t/output.json 2>&1 | %FileCheck %s -check-prefix=INVALID-RECORD // INVALID-RECORD-NOT: warning // INVALID-RECORD: inputs: ["./main.swift"], output: {{[{].*[}]$}} diff --git a/test/Driver/PrivateDependencies/chained-additional-kinds-fine.swift b/test/Driver/PrivateDependencies/chained-additional-kinds-fine.swift index 69bb67abdfb9f..73c31b8fd6aa5 100644 --- a/test/Driver/PrivateDependencies/chained-additional-kinds-fine.swift +++ b/test/Driver/PrivateDependencies/chained-additional-kinds-fine.swift @@ -4,23 +4,23 @@ // RUN: cp -r %S/Inputs/chained-additional-kinds-fine/* %t // RUN: touch -t 201401240005 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift ./yet-another.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift ./yet-another.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s // CHECK-FIRST-NOT: warning // CHECK-FIRST: Handled main.swift // CHECK-FIRST: Handled other.swift // CHECK-FIRST: Handled yet-another.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift ./yet-another.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift ./yet-another.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s // CHECK-SECOND-NOT: Handled // RUN: touch -t 201401240006 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift ./yet-another.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift ./yet-another.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s // CHECK-THIRD-DAG: Handled other.swift // CHECK-THIRD-DAG: Handled main.swift // CHECK-THIRD-DAG: Handled yet-another.swift // RUN: touch -t 201401240007 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./other.swift ./main.swift ./yet-another.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./other.swift ./main.swift ./yet-another.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s diff --git a/test/Driver/PrivateDependencies/chained-after-fine.swift b/test/Driver/PrivateDependencies/chained-after-fine.swift index 10765cf4807a7..a03ab284477bb 100644 --- a/test/Driver/PrivateDependencies/chained-after-fine.swift +++ b/test/Driver/PrivateDependencies/chained-after-fine.swift @@ -6,17 +6,17 @@ // RUN: touch -t 201401240005 %t/*.swift // Generate the build record... -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift ./yet-another.swift -module-name main -j1 -v +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift ./yet-another.swift -module-name main -j1 -v // ...then reset the .swiftdeps files. // RUN: cp -r %S/Inputs/chained-after-fine/*.swiftdeps %t -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift ./yet-another.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift ./yet-another.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s // CHECK-FIRST-NOT: warning // CHECK-FIRST-NOT: Handled // RUN: touch -t 201401240006 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./yet-another.swift ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./yet-another.swift ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s // CHECK-THIRD: Handled main.swift // CHECK-THIRD: Handled other.swift diff --git a/test/Driver/PrivateDependencies/chained-fine.swift b/test/Driver/PrivateDependencies/chained-fine.swift index 4da7fac3f60cd..5a0d32815277c 100644 --- a/test/Driver/PrivateDependencies/chained-fine.swift +++ b/test/Driver/PrivateDependencies/chained-fine.swift @@ -4,29 +4,29 @@ // RUN: cp -r %S/Inputs/chained-fine/* %t // RUN: touch -t 201401240005 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift ./yet-another.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift ./yet-another.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s // CHECK-FIRST-NOT: warning // CHECK-FIRST: Handled main.swift // CHECK-FIRST: Handled other.swift // CHECK-FIRST: Handled yet-another.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift ./yet-another.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift ./yet-another.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s // CHECK-SECOND-NOT: Handled // RUN: touch -t 201401240006 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift ./yet-another.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift ./yet-another.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s // CHECK-THIRD-DAG: Handled other.swift // CHECK-THIRD-DAG: Handled main.swift // CHECK-THIRD-DAG: Handled yet-another.swift // RUN: touch -t 201401240007 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./other.swift ./main.swift ./yet-another.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./other.swift ./main.swift ./yet-another.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s // RUN: touch -t 201401240008 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./yet-another.swift ./other.swift ./main.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./yet-another.swift ./other.swift ./main.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s // RUN: touch -t 201401240009 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./other.swift ./yet-another.swift ./main.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./other.swift ./yet-another.swift ./main.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s diff --git a/test/Driver/PrivateDependencies/chained-private-after-fine.swift b/test/Driver/PrivateDependencies/chained-private-after-fine.swift index cd892ea55b4f6..fc80dc29ef392 100644 --- a/test/Driver/PrivateDependencies/chained-private-after-fine.swift +++ b/test/Driver/PrivateDependencies/chained-private-after-fine.swift @@ -6,17 +6,17 @@ // RUN: touch -t 201401240005 %t/*.swift // Generate the build record... -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift ./yet-another.swift -module-name main -j1 -v +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift ./yet-another.swift -module-name main -j1 -v // ...then reset the .swiftdeps files. // RUN: cp -r %S/Inputs/chained-private-after-fine/*.swiftdeps %t -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift ./yet-another.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift ./yet-another.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s // CHECK-FIRST-NOT: warning // CHECK-FIRST-NOT: Handled // RUN: touch -t 201401240006 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./yet-another.swift ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./yet-another.swift ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s // CHECK-SECOND-DAG: Handled other.swift // CHECK-SECOND-DAG: Handled main.swift diff --git a/test/Driver/PrivateDependencies/chained-private-after-multiple-fine.swift b/test/Driver/PrivateDependencies/chained-private-after-multiple-fine.swift index 1a1289d522a24..1d38e5376898c 100644 --- a/test/Driver/PrivateDependencies/chained-private-after-multiple-fine.swift +++ b/test/Driver/PrivateDependencies/chained-private-after-multiple-fine.swift @@ -6,7 +6,7 @@ // RUN: touch -t 201401240005 %t/*.swift // Generate the build record... -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift ./yet-another.swift -module-name main -j1 -v +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift ./yet-another.swift -module-name main -j1 -v @@ -14,13 +14,13 @@ // ...then reset the .swiftdeps files. // RUN: cp -r %S/Inputs/chained-private-after-multiple-fine/*.swiftdeps %t -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift ./yet-another.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift ./yet-another.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s // CHECK-FIRST-NOT: warning // CHECK-FIRST-NOT: Handled // RUN: touch -t 201401240006 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./yet-another.swift ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./yet-another.swift ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s // CHECK-SECOND-DAG: Handled other.swift // CHECK-SECOND-DAG: Handled main.swift diff --git a/test/Driver/PrivateDependencies/chained-private-after-multiple-nominal-members-fine.swift b/test/Driver/PrivateDependencies/chained-private-after-multiple-nominal-members-fine.swift index 149f200e93b7d..9218fccb1c488 100644 --- a/test/Driver/PrivateDependencies/chained-private-after-multiple-nominal-members-fine.swift +++ b/test/Driver/PrivateDependencies/chained-private-after-multiple-nominal-members-fine.swift @@ -6,17 +6,17 @@ // RUN: touch -t 201401240005 %t/*.swift // Generate the build record... -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift ./yet-another.swift -module-name main -j1 -v +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift ./yet-another.swift -module-name main -j1 -v // ...then reset the .swiftdeps files. // RUN: cp -r %S/Inputs/chained-private-after-multiple-nominal-members-fine/*.swiftdeps %t -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift ./yet-another.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift ./yet-another.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s // CHECK-FIRST-NOT: warning // CHECK-FIRST-NOT: Handled // RUN: touch -t 201401240006 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./yet-another.swift ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./yet-another.swift ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s // CHECK-SECOND-DAG: Handled other.swift // CHECK-SECOND-DAG: Handled main.swift diff --git a/test/Driver/PrivateDependencies/chained-private-fine.swift b/test/Driver/PrivateDependencies/chained-private-fine.swift index 4479c437a25a6..7f033e10493e0 100644 --- a/test/Driver/PrivateDependencies/chained-private-fine.swift +++ b/test/Driver/PrivateDependencies/chained-private-fine.swift @@ -4,19 +4,19 @@ // RUN: cp -r %S/Inputs/chained-private-fine/* %t // RUN: touch -t 201401240005 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift ./yet-another.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift ./yet-another.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s // CHECK-FIRST-NOT: warning // CHECK-FIRST: Handled main.swift // CHECK-FIRST: Handled other.swift // CHECK-FIRST: Handled yet-another.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift ./yet-another.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift ./yet-another.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s // CHECK-SECOND-NOT: Handled // RUN: touch -t 201401240006 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift ./yet-another.swift -module-name main -j1 -v >%t/outputToCheck 2>&1 +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift ./yet-another.swift -module-name main -j1 -v >%t/outputToCheck 2>&1 // RUN: %FileCheck -check-prefix=CHECK-THIRD %s < %t/outputToCheck // Driver now schedules jobs in the order the inputs were given, but diff --git a/test/Driver/PrivateDependencies/check-interface-implementation-fine.swift b/test/Driver/PrivateDependencies/check-interface-implementation-fine.swift index ff0067b52b339..642e443b6f21a 100644 --- a/test/Driver/PrivateDependencies/check-interface-implementation-fine.swift +++ b/test/Driver/PrivateDependencies/check-interface-implementation-fine.swift @@ -6,7 +6,7 @@ // RUN: cp -r %S/Inputs/check-interface-implementation-fine/* %t // RUN: touch -t 201401240005 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./a.swift ./c.swift ./bad.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./a.swift ./c.swift ./bad.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s // RUN: %FileCheck -check-prefix=CHECK-RECORD-CLEAN %s < %t/main~buildrecord.swiftdeps // CHECK-FIRST-NOT: warning @@ -20,7 +20,7 @@ // RUN: touch -t 201401240006 %t/a.swift -// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./a.swift ./bad.swift ./c.swift -module-name main -j1 -v -driver-show-incremental > %t/a.txt 2>&1 +// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./a.swift ./bad.swift ./c.swift -module-name main -j1 -v -driver-show-incremental > %t/a.txt 2>&1 // RUN: %FileCheck -check-prefix=CHECK-A %s < %t/a.txt // RUN: %FileCheck -check-prefix=NEGATIVE-A %s < %t/a.txt // RUN: %FileCheck -check-prefix=CHECK-RECORD-A %s < %t/main~buildrecord.swiftdeps @@ -33,7 +33,7 @@ // CHECK-RECORD-A-DAG: "./bad.swift": !private [ // CHECK-RECORD-A-DAG: "./c.swift": !private [ -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./a.swift ./bad.swift ./c.swift -module-name main -j1 -v -driver-show-incremental 2>&1 | %FileCheck -check-prefix CHECK-BC %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./a.swift ./bad.swift ./c.swift -module-name main -j1 -v -driver-show-incremental 2>&1 | %FileCheck -check-prefix CHECK-BC %s // CHECK-BC-NOT: Handled a.swift // CHECK-BC-DAG: Handled bad.swift diff --git a/test/Driver/PrivateDependencies/crash-added-fine.swift b/test/Driver/PrivateDependencies/crash-added-fine.swift index 68f7c08356f74..de1454fdc0b03 100644 --- a/test/Driver/PrivateDependencies/crash-added-fine.swift +++ b/test/Driver/PrivateDependencies/crash-added-fine.swift @@ -4,13 +4,13 @@ // RUN: cp -r %S/Inputs/crash-simple-fine/* %t // RUN: touch -t 201401240005 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-INITIAL %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-INITIAL %s // CHECK-INITIAL-NOT: warning // CHECK-INITIAL: Handled main.swift // CHECK-INITIAL: Handled other.swift -// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift ./crash.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-ADDED %s +// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift ./crash.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-ADDED %s // RUN: %FileCheck -check-prefix=CHECK-RECORD-ADDED %s < %t/main~buildrecord.swiftdeps // CHECK-ADDED-NOT: Handled @@ -26,13 +26,13 @@ // RUN: cp -r %S/Inputs/crash-simple-fine/* %t // RUN: touch -t 201401240005 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-INITIAL %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-INITIAL %s -// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./crash.swift ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-ADDED %s +// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./crash.swift ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-ADDED %s // RUN: %FileCheck -check-prefix=CHECK-RECORD-ADDED %s < %t/main~buildrecord.swiftdeps -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./crash.swift ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIXED %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./crash.swift ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIXED %s // CHECK-FIXED-DAG: Handled crash.swift // CHECK-FIXED-DAG: Handled main.swift diff --git a/test/Driver/PrivateDependencies/crash-new-fine.swift b/test/Driver/PrivateDependencies/crash-new-fine.swift index 4af5cfd376d66..3be528d04921d 100644 --- a/test/Driver/PrivateDependencies/crash-new-fine.swift +++ b/test/Driver/PrivateDependencies/crash-new-fine.swift @@ -6,7 +6,7 @@ // Initially compile all inputs, crash will fail. -// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./crash.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck %s +// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./crash.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck %s // CHECK-NOT: warning // CHECK: Handled main.swift // CHECK: Handled crash.swift @@ -15,7 +15,7 @@ // Put crash.swift first to assure it gets scheduled first. // The others get queued, but not dispatched because crash crashes. -// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./crash.swift ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-BAD-ONLY %s +// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./crash.swift ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-BAD-ONLY %s // CHECK-BAD-ONLY-NOT: warning // CHECK-BAD-ONLY-NOT: Handled @@ -24,7 +24,7 @@ // Make crash succeed and all get compiled, exactly once. -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./crash.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-OKAY %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./crash.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-OKAY %s // CHECK-OKAY: Handled main.swift // CHECK-OKAY: Handled crash.swift // CHECK-OKAY: Handled other.swift @@ -34,12 +34,12 @@ // RUN: touch -t 201401240006 %t/crash.swift // RUN: rm %t/crash.swiftdeps -// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./crash.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck %s +// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./crash.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck %s // And repair crash: // RUN: touch -t 201401240005 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./crash.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-OKAY-2 %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./crash.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-OKAY-2 %s // CHECK-OKAY-2-DAG: Handled crash.swift // CHECK-OKAY-2-DAG: Handled other.swift @@ -51,7 +51,7 @@ // RUN: touch -t 201401240006 %t/main.swift // RUN: rm %t/main.swiftdeps -// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./crash.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-NO-MAIN-SWIFTDEPS %s +// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./crash.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-NO-MAIN-SWIFTDEPS %s // CHECK-NO-MAIN-SWIFTDEPS-NOT: warning // CHECK-NO-MAIN-SWIFTDEPS: Handled main.swift @@ -62,7 +62,7 @@ // Touch all files earlier than last compiled date in the build record. // RUN: touch -t 201401240005 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./crash.swift ./other.swift -module-name main -j1 -v 2>&1 -driver-show-incremental | %FileCheck -check-prefix=CHECK-CURRENT-WITH-CRASH %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./crash.swift ./other.swift -module-name main -j1 -v 2>&1 -driver-show-incremental | %FileCheck -check-prefix=CHECK-CURRENT-WITH-CRASH %s // CHECK-CURRENT-WITH-CRASH: Handled main.swift // CHECK-CURRENT-WITH-CRASH: Handled crash.swift @@ -73,4 +73,4 @@ // RUN: touch -t 201401240006 %t/other.swift // RUN: rm %t/other.swiftdeps -// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./crash.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck %s +// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./crash.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck %s diff --git a/test/Driver/PrivateDependencies/crash-simple-fine.swift b/test/Driver/PrivateDependencies/crash-simple-fine.swift index 5f7420f9fbb30..dd489ef85af63 100644 --- a/test/Driver/PrivateDependencies/crash-simple-fine.swift +++ b/test/Driver/PrivateDependencies/crash-simple-fine.swift @@ -4,7 +4,7 @@ // RUN: cp -r %S/Inputs/crash-simple-fine/* %t // RUN: touch -t 201401240005 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./crash.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./crash.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s // CHECK-FIRST-NOT: warning // CHECK-FIRST: Handled main.swift @@ -12,7 +12,7 @@ // CHECK-FIRST: Handled other.swift // RUN: touch -t 201401240006 %t/crash.swift -// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./crash.swift ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s +// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./crash.swift ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s // CHECK-SECOND: Handled crash.swift // CHECK-SECOND-NOT: Handled main.swift @@ -24,7 +24,7 @@ // CHECK-RECORD-DAG: "./main.swift": !private [ // CHECK-RECORD-DAG: "./other.swift": !private [ -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./crash.swift ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./crash.swift ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s // CHECK-THIRD-DAG: Handled main.swift // CHECK-THIRD-DAG: Handled crash.swift diff --git a/test/Driver/PrivateDependencies/dependencies-preservation-fine.swift b/test/Driver/PrivateDependencies/dependencies-preservation-fine.swift index 7a608cb8b049c..51de96e766272 100644 --- a/test/Driver/PrivateDependencies/dependencies-preservation-fine.swift +++ b/test/Driver/PrivateDependencies/dependencies-preservation-fine.swift @@ -6,7 +6,7 @@ // RUN: cp -r %S/Inputs/one-way-fine/* %t // RUN: %{python} %S/Inputs/touch.py 443865900 %t/* // RUN: echo '{version: "'$(%swiftc_driver_plain -version | head -n1)'", inputs: {"./main.swift": [443865900, 0], "./other.swift": [443865900, 0]}}' > %t/main~buildrecord.swiftdeps -// RUN: cd %t && %swiftc_driver -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -c ./main.swift ./other.swift -module-name main -incremental -enable-direct-intramodule-dependencies -v -driver-show-incremental -output-file-map %t/output.json +// RUN: cd %t && %swiftc_driver -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -c ./main.swift ./other.swift -module-name main -incremental -v -driver-show-incremental -output-file-map %t/output.json // RUN: %FileCheck -check-prefix CHECK-ORIGINAL %s < main~buildrecord.swiftdeps~ // CHECK-ORIGINAL: inputs: {"./main.swift": [443865900, 0], "./other.swift": [443865900, 0]} diff --git a/test/Driver/PrivateDependencies/driver-show-incremental-conflicting-arguments-fine.swift b/test/Driver/PrivateDependencies/driver-show-incremental-conflicting-arguments-fine.swift index abc50bf4b2840..6227443ee293f 100644 --- a/test/Driver/PrivateDependencies/driver-show-incremental-conflicting-arguments-fine.swift +++ b/test/Driver/PrivateDependencies/driver-show-incremental-conflicting-arguments-fine.swift @@ -14,19 +14,19 @@ // RUN: %{python} %S/Inputs/touch.py 443865900 %t/* // RUN: echo '{version: "'$(%swiftc_driver_plain -version | head -n1)'", inputs: {"./main.swift": [443865900, 0], "./other.swift": [443865900, 0]}}' > %t/main~buildrecord.swiftdeps -// RUN: cd %t && %swiftc_driver -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -c ./main.swift ./other.swift -module-name main -incremental -enable-direct-intramodule-dependencies -v -driver-show-incremental -output-file-map %t/output.json | %FileCheck --check-prefix CHECK-INCREMENTAL %s +// RUN: cd %t && %swiftc_driver -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -c ./main.swift ./other.swift -module-name main -incremental -v -driver-show-incremental -output-file-map %t/output.json | %FileCheck --check-prefix CHECK-INCREMENTAL %s // CHECK-INCREMENTAL-NOT: Incremental compilation has been disabled // CHECK-INCREMENTAL: Queuing (initial): {compile: main.o <= main.swift} -// RUN: cd %t && %swiftc_driver -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -c ./main.swift ./other.swift -module-name main -incremental -enable-direct-intramodule-dependencies -v -driver-show-incremental -whole-module-optimization -output-file-map %t/output.json | %FileCheck --check-prefix CHECK-WMO %s +// RUN: cd %t && %swiftc_driver -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -c ./main.swift ./other.swift -module-name main -incremental -v -driver-show-incremental -whole-module-optimization -output-file-map %t/output.json | %FileCheck --check-prefix CHECK-WMO %s // CHECK-WMO: Incremental compilation has been disabled{{.*}}whole module optimization // CHECK-WMO-NOT: Queuing (initial): {compile: main.o <= main.swift} -// RUN: cd %t && %swiftc_driver -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -c ./main.swift ./other.swift -module-name main -incremental -enable-direct-intramodule-dependencies -v -driver-show-incremental -embed-bitcode -output-file-map %t/output.json | %FileCheck --check-prefix CHECK-BITCODE %s +// RUN: cd %t && %swiftc_driver -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -c ./main.swift ./other.swift -module-name main -incremental -v -driver-show-incremental -embed-bitcode -output-file-map %t/output.json | %FileCheck --check-prefix CHECK-BITCODE %s // CHECK-BITCODE: Incremental compilation has been disabled{{.*}}LLVM IR bitcode // CHECK-BITCODE-NOT: Queuing (initial): {compile: main.o <= main.swift} -// RUN: cd %t && %swiftc_driver -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -c ./main.swift ./other.swift -module-name main -incremental -enable-direct-intramodule-dependencies -v -driver-show-incremental -whole-module-optimization -embed-bitcode -output-file-map %t/output.json | %FileCheck --check-prefix CHECK-WMO-AND-BITCODE %s +// RUN: cd %t && %swiftc_driver -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -c ./main.swift ./other.swift -module-name main -incremental -v -driver-show-incremental -whole-module-optimization -embed-bitcode -output-file-map %t/output.json | %FileCheck --check-prefix CHECK-WMO-AND-BITCODE %s // CHECK-WMO-AND-BITCODE: Incremental compilation has been disabled{{.*}}whole module optimization // CHECK-WMO-AND-BITCODE-NOT: Incremental compilation has been disabled // CHECK-WMO-AND-BITCODE-NOT: Queuing (initial): {compile: main.o <= main.swift} diff --git a/test/Driver/PrivateDependencies/driver-show-incremental-inputs-fine.swift b/test/Driver/PrivateDependencies/driver-show-incremental-inputs-fine.swift index 62ecaa7b4aea7..b062753c728b3 100644 --- a/test/Driver/PrivateDependencies/driver-show-incremental-inputs-fine.swift +++ b/test/Driver/PrivateDependencies/driver-show-incremental-inputs-fine.swift @@ -14,11 +14,11 @@ // RUN: %{python} %S/Inputs/touch.py 443865900 %t/* // RUN: echo '{version: "'$(%swiftc_driver_plain -version | head -n1)'", inputs: {"./main.swift": [443865900, 0], "./other.swift": [443865900, 0]}}' > %t/main~buildrecord.swiftdeps -// RUN: cd %t && %swiftc_driver -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -c ./main.swift ./other.swift -module-name main -incremental -enable-direct-intramodule-dependencies -v -driver-show-incremental -output-file-map %t/output.json | %FileCheck --check-prefix CHECK-INCREMENTAL %s +// RUN: cd %t && %swiftc_driver -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -c ./main.swift ./other.swift -module-name main -incremental -v -driver-show-incremental -output-file-map %t/output.json | %FileCheck --check-prefix CHECK-INCREMENTAL %s // CHECK-INCREMENTAL-NOT: Incremental compilation has been disabled // CHECK-INCREMENTAL: Queuing (initial): {compile: main.o <= main.swift} -// RUN: cd %t && %swiftc_driver -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -c ./main.swift -module-name main -incremental -enable-direct-intramodule-dependencies -v -driver-show-incremental -output-file-map %t/output.json | %FileCheck --check-prefix CHECK-INPUTS-MISMATCH %s +// RUN: cd %t && %swiftc_driver -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -c ./main.swift -module-name main -incremental -v -driver-show-incremental -output-file-map %t/output.json | %FileCheck --check-prefix CHECK-INPUTS-MISMATCH %s // CHECK-INPUTS-MISMATCH: Incremental compilation has been disabled{{.*}}inputs // CHECK-INPUTS-MISMATCH: ./other.swift // CHECK-INPUTS-MISMATCH-NOT: Queuing (initial): {compile: main.o <= main.swift} diff --git a/test/Driver/PrivateDependencies/driver-show-incremental-malformed-fine.swift b/test/Driver/PrivateDependencies/driver-show-incremental-malformed-fine.swift index b242ae0ab3989..d7d1bfd62f5fc 100644 --- a/test/Driver/PrivateDependencies/driver-show-incremental-malformed-fine.swift +++ b/test/Driver/PrivateDependencies/driver-show-incremental-malformed-fine.swift @@ -13,24 +13,24 @@ // RUN: %{python} %S/Inputs/touch.py 443865900 %t/* // RUN: echo '{version: "'$(%swiftc_driver_plain -version | head -n1)'", inputs: {"./main.swift": [443865900, 0], "./other.swift": [443865900, 0]}}' > %t/main~buildrecord.swiftdeps -// RUN: cd %t && %swiftc_driver -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -c ./main.swift ./other.swift -module-name main -incremental -enable-direct-intramodule-dependencies -v -driver-show-incremental -output-file-map %t/output.json | %FileCheck --check-prefix CHECK-INCREMENTAL %s +// RUN: cd %t && %swiftc_driver -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -c ./main.swift ./other.swift -module-name main -incremental -v -driver-show-incremental -output-file-map %t/output.json | %FileCheck --check-prefix CHECK-INCREMENTAL %s // CHECK-INCREMENTAL-NOT: Incremental compilation has been enabled // CHECK-INCREMENTAL: Queuing (initial): {compile: main.o <= main.swift} // RUN: rm %t/main~buildrecord.swiftdeps && touch %t/main~buildrecord.swiftdeps -// RUN: cd %t && %swiftc_driver -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -g -c ./main.swift ./other.swift -module-name main -incremental -enable-direct-intramodule-dependencies -v -driver-show-incremental -output-file-map %t/output.json | %FileCheck --check-prefix CHECK-MALFORMED %s +// RUN: cd %t && %swiftc_driver -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -g -c ./main.swift ./other.swift -module-name main -incremental -v -driver-show-incremental -output-file-map %t/output.json | %FileCheck --check-prefix CHECK-MALFORMED %s // RUN: echo 'foo' > %t/main~buildrecord.swiftdeps -// RUN: cd %t && %swiftc_driver -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -g -c ./main.swift ./other.swift -module-name main -incremental -enable-direct-intramodule-dependencies -v -driver-show-incremental -output-file-map %t/output.json | %FileCheck --check-prefix CHECK-MALFORMED %s +// RUN: cd %t && %swiftc_driver -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -g -c ./main.swift ./other.swift -module-name main -incremental -v -driver-show-incremental -output-file-map %t/output.json | %FileCheck --check-prefix CHECK-MALFORMED %s // CHECK-MALFORMED: Incremental compilation has been disabled{{.*}}malformed build record file // CHECK-MALFORMED-NOT: Queuing (initial): {compile: main.o <= main.swift} // RUN: echo '{version, inputs: {"./main.swift": [443865900, 0], "./other.swift": [443865900, 0]}}' > %t/main~buildrecord.swiftdeps -// RUN: cd %t && %swiftc_driver -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -g -c ./main.swift ./other.swift -module-name main -incremental -enable-direct-intramodule-dependencies -v -driver-show-incremental -output-file-map %t/output.json | %FileCheck --check-prefix CHECK-MISSING-KEY %s +// RUN: cd %t && %swiftc_driver -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -g -c ./main.swift ./other.swift -module-name main -incremental -v -driver-show-incremental -output-file-map %t/output.json | %FileCheck --check-prefix CHECK-MISSING-KEY %s // RUN: echo '{version: "'$(%swiftc_driver_plain -version | head -n1)'", inputs}' > %t/main~buildrecord.swiftdeps -// RUN: cd %t && %swiftc_driver -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -g -c ./main.swift ./other.swift -module-name main -incremental -enable-direct-intramodule-dependencies -v -driver-show-incremental -output-file-map %t/output.json | %FileCheck --check-prefix CHECK-MISSING-KEY %s +// RUN: cd %t && %swiftc_driver -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -g -c ./main.swift ./other.swift -module-name main -incremental -v -driver-show-incremental -output-file-map %t/output.json | %FileCheck --check-prefix CHECK-MISSING-KEY %s // CHECK-MISSING-KEY: Incremental compilation has been disabled{{.*}}malformed build record file{{.*}}Malformed value for key // CHECK-MISSING-KEY-NOT: Queuing (initial): {compile: main.o <= main.swift} diff --git a/test/Driver/PrivateDependencies/driver-show-incremental-mutual-fine.swift b/test/Driver/PrivateDependencies/driver-show-incremental-mutual-fine.swift index 7912b3428e450..b1fbc69c737fc 100644 --- a/test/Driver/PrivateDependencies/driver-show-incremental-mutual-fine.swift +++ b/test/Driver/PrivateDependencies/driver-show-incremental-mutual-fine.swift @@ -4,16 +4,16 @@ // RUN: cp -r %S/Inputs/mutual-with-swiftdeps-fine/* %t // RUN: touch -t 201401240005 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -enable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v -driver-show-incremental 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v -driver-show-incremental 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s // CHECK-FIRST-DAG: Handled main.swift // CHECK-FIRST-DAG: Handled other.swift // CHECK-FIRST-DAG: Disabling incremental build: could not read build record -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -enable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v -driver-show-incremental 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v -driver-show-incremental 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s // CHECK-SECOND-NOT: Queuing // RUN: touch -t 201401240006 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -enable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v -driver-show-incremental 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v -driver-show-incremental 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s // CHECK-THIRD: Queuing (initial): {compile: other.o <= other.swift} // CHECK-THIRD: Queuing because of the initial set: {compile: main.o <= main.swift} // CHECK-THIRD-NEXT: interface of top-level name 'a' in other.swift -> interface of source file main.swiftdeps diff --git a/test/Driver/PrivateDependencies/driver-show-incremental-swift-version-fine.swift b/test/Driver/PrivateDependencies/driver-show-incremental-swift-version-fine.swift index da1fe811010db..e200371039e24 100644 --- a/test/Driver/PrivateDependencies/driver-show-incremental-swift-version-fine.swift +++ b/test/Driver/PrivateDependencies/driver-show-incremental-swift-version-fine.swift @@ -14,12 +14,12 @@ // RUN: %{python} %S/Inputs/touch.py 443865900 %t/* // RUN: echo '{version: "'$(%swiftc_driver_plain -version | head -n1)'", inputs: {"./main.swift": [443865900, 0], "./other.swift": [443865900, 0]}}' > %t/main~buildrecord.swiftdeps -// RUN: cd %t && %swiftc_driver -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -c ./main.swift ./other.swift -module-name main -incremental -enable-direct-intramodule-dependencies -v -driver-show-incremental -output-file-map %t/output.json | %FileCheck --check-prefix CHECK-INCREMENTAL %s +// RUN: cd %t && %swiftc_driver -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -c ./main.swift ./other.swift -module-name main -incremental -v -driver-show-incremental -output-file-map %t/output.json | %FileCheck --check-prefix CHECK-INCREMENTAL %s // CHECK-INCREMENTAL-NOT: Incremental compilation has been enabled // CHECK-INCREMENTAL: Queuing (initial): {compile: main.o <= main.swift} // RUN: echo '{version: "bogus", inputs: {"./main.swift": [443865900, 0], "./other.swift": [443865900, 0]}}' > %t/main~buildrecord.swiftdeps -// RUN: cd %t && %swiftc_driver -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -c ./main.swift ./other.swift -module-name main -incremental -enable-direct-intramodule-dependencies -v -driver-show-incremental -output-file-map %t/output.json | %FileCheck --check-prefix CHECK-VERSION-MISMATCH %s +// RUN: cd %t && %swiftc_driver -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -c ./main.swift ./other.swift -module-name main -incremental -v -driver-show-incremental -output-file-map %t/output.json | %FileCheck --check-prefix CHECK-VERSION-MISMATCH %s // CHECK-VERSION-MISMATCH: Incremental compilation has been disabled{{.*}}compiler version mismatch // CHECK-VERSION-MISMATCH: Compiling with: // CHECK-VERSION-MISMATCH: Previously compiled with: bogus diff --git a/test/Driver/PrivateDependencies/embed-bitcode-parallel-fine.swift b/test/Driver/PrivateDependencies/embed-bitcode-parallel-fine.swift index 8cce22c245e04..b6174ca67c0de 100644 --- a/test/Driver/PrivateDependencies/embed-bitcode-parallel-fine.swift +++ b/test/Driver/PrivateDependencies/embed-bitcode-parallel-fine.swift @@ -4,7 +4,7 @@ // RUN: cp -r %S/Inputs/one-way-fine/* %t // RUN: touch -t 201401240005 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/fake-build-for-bitcode.py" -output-file-map %t/output.json -incremental -enable-direct-intramodule-dependencies ./main.swift ./other.swift -embed-bitcode -module-name main -j1 -parseable-output 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/fake-build-for-bitcode.py" -output-file-map %t/output.json -incremental ./main.swift ./other.swift -embed-bitcode -module-name main -j1 -parseable-output 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s // CHECK-FIRST-NOT: warning // CHECK-FIRST: {{^{$}} @@ -57,7 +57,7 @@ // RUN: touch -t 201401240006 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/fake-build-for-bitcode.py" -output-file-map %t/output.json -incremental -enable-direct-intramodule-dependencies ./main.swift ./other.swift -embed-bitcode -module-name main -j2 -parseable-output 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/fake-build-for-bitcode.py" -output-file-map %t/output.json -incremental ./main.swift ./other.swift -embed-bitcode -module-name main -j2 -parseable-output 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s // CHECK-SECOND: "kind": "began" // CHECK-SECOND: "name": "compile" diff --git a/test/Driver/PrivateDependencies/fail-added-fine.swift b/test/Driver/PrivateDependencies/fail-added-fine.swift index 6863769c1502e..a90e1c24f6b0b 100644 --- a/test/Driver/PrivateDependencies/fail-added-fine.swift +++ b/test/Driver/PrivateDependencies/fail-added-fine.swift @@ -4,13 +4,13 @@ // RUN: cp -r %S/Inputs/fail-simple-fine/* %t // RUN: touch -t 201401240005 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-INITIAL %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-INITIAL %s // CHECK-INITIAL-NOT: warning // CHECK-INITIAL: Handled main.swift // CHECK-INITIAL: Handled other.swift -// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift ./bad.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-ADDED %s +// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift ./bad.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-ADDED %s // RUN: %FileCheck -check-prefix=CHECK-RECORD-ADDED %s < %t/main~buildrecord.swiftdeps // CHECK-ADDED-NOT: Handled @@ -26,7 +26,7 @@ // RUN: cp -r %S/Inputs/fail-simple-fine/* %t // RUN: touch -t 201401240005 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-INITIAL %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-INITIAL %s -// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./bad.swift ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-ADDED %s +// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./bad.swift ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-ADDED %s // RUN: %FileCheck -check-prefix=CHECK-RECORD-ADDED %s < %t/main~buildrecord.swiftdeps diff --git a/test/Driver/PrivateDependencies/fail-chained-fine.swift b/test/Driver/PrivateDependencies/fail-chained-fine.swift index cb6266b1a8aaa..58389ffe52a36 100644 --- a/test/Driver/PrivateDependencies/fail-chained-fine.swift +++ b/test/Driver/PrivateDependencies/fail-chained-fine.swift @@ -4,7 +4,7 @@ // RUN: cp -r %S/Inputs/fail-chained-fine/* %t // RUN: touch -t 201401240005 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift ./f.swift ./bad.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift ./f.swift ./bad.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s // RUN: %FileCheck -check-prefix=CHECK-RECORD-CLEAN %s < %t/main~buildrecord.swiftdeps // CHECK-FIRST-NOT: warning @@ -26,7 +26,7 @@ // RUN: touch -t 201401240006 %t/a.swift -// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./a.swift ./bad.swift ./b.swift ./c.swift ./d.swift ./e.swift ./f.swift -module-name main -j1 -v > %t/a.txt 2>&1 +// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./a.swift ./bad.swift ./b.swift ./c.swift ./d.swift ./e.swift ./f.swift -module-name main -j1 -v > %t/a.txt 2>&1 // RUN: %FileCheck -check-prefix=CHECK-A %s < %t/a.txt // RUN: %FileCheck -check-prefix=NEGATIVE-A %s < %t/a.txt // RUN: %FileCheck -check-prefix=CHECK-RECORD-A %s < %t/main~buildrecord.swiftdeps @@ -47,7 +47,7 @@ // CHECK-RECORD-A-DAG: "./f.swift": [ // CHECK-RECORD-A-DAG: "./bad.swift": !private [ -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift ./f.swift ./bad.swift -module-name main -j1 -v > %t/a2.txt 2>&1 +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift ./f.swift ./bad.swift -module-name main -j1 -v > %t/a2.txt 2>&1 // RUN: %FileCheck -check-prefix=CHECK-A2 %s < %t/a2.txt // RUN: %FileCheck -check-prefix=NEGATIVE-A2 %s < %t/a2.txt // RUN: %FileCheck -check-prefix=CHECK-RECORD-CLEAN %s < %t/main~buildrecord.swiftdeps @@ -65,10 +65,10 @@ // RUN: cp -r %S/Inputs/fail-chained-fine/* %t // RUN: touch -t 201401240005 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift ./f.swift ./bad.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift ./f.swift ./bad.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s // RUN: touch -t 201401240006 %t/b.swift -// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift ./f.swift ./bad.swift -module-name main -j1 -v > %t/b.txt 2>&1 +// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift ./f.swift ./bad.swift -module-name main -j1 -v > %t/b.txt 2>&1 // RUN: %FileCheck -check-prefix=CHECK-B %s < %t/b.txt // RUN: %FileCheck -check-prefix=NEGATIVE-B %s < %t/b.txt // RUN: %FileCheck -check-prefix=CHECK-RECORD-B %s < %t/main~buildrecord.swiftdeps @@ -89,7 +89,7 @@ // CHECK-RECORD-B-DAG: "./f.swift": [ // CHECK-RECORD-B-DAG: "./bad.swift": !private [ -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift ./f.swift ./bad.swift -module-name main -j1 -v > %t/b2.txt 2>&1 +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift ./f.swift ./bad.swift -module-name main -j1 -v > %t/b2.txt 2>&1 // RUN: %FileCheck -check-prefix=CHECK-B2 %s < %t/b2.txt // RUN: %FileCheck -check-prefix=NEGATIVE-B2 %s < %t/b2.txt // RUN: %FileCheck -check-prefix=CHECK-RECORD-CLEAN %s < %t/main~buildrecord.swiftdeps @@ -107,10 +107,10 @@ // RUN: cp -r %S/Inputs/fail-chained-fine/* %t // RUN: touch -t 201401240005 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift ./f.swift ./bad.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift ./f.swift ./bad.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s // RUN: touch -t 201401240006 %t/bad.swift -// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./bad.swift ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift ./f.swift -module-name main -j1 -v > %t/bad.txt 2>&1 +// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./bad.swift ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift ./f.swift -module-name main -j1 -v > %t/bad.txt 2>&1 // RUN: %FileCheck -check-prefix=CHECK-BAD %s < %t/bad.txt // RUN: %FileCheck -check-prefix=NEGATIVE-BAD %s < %t/bad.txt // RUN: %FileCheck -check-prefix=CHECK-RECORD-A %s < %t/main~buildrecord.swiftdeps @@ -123,7 +123,7 @@ // NEGATIVE-BAD-NOT: Handled e.swift // NEGATIVE-BAD-NOT: Handled f.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift ./f.swift ./bad.swift -module-name main -j1 -v > %t/bad2.txt 2>&1 +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift ./f.swift ./bad.swift -module-name main -j1 -v > %t/bad2.txt 2>&1 // RUN: %FileCheck -check-prefix=CHECK-A2 %s < %t/bad2.txt // RUN: %FileCheck -check-prefix=NEGATIVE-A2 %s < %t/bad2.txt // RUN: %FileCheck -check-prefix=CHECK-RECORD-CLEAN %s < %t/main~buildrecord.swiftdeps diff --git a/test/Driver/PrivateDependencies/fail-interface-hash-fine.swift b/test/Driver/PrivateDependencies/fail-interface-hash-fine.swift index 1fe550101af33..b6304932bc55f 100644 --- a/test/Driver/PrivateDependencies/fail-interface-hash-fine.swift +++ b/test/Driver/PrivateDependencies/fail-interface-hash-fine.swift @@ -4,7 +4,7 @@ // RUN: cp -r %S/Inputs/fail-interface-hash-fine/* %t // RUN: touch -t 201401240005 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -enable-direct-intramodule-dependencies ./main.swift ./bad.swift ./depends-on-main.swift ./depends-on-bad.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental ./main.swift ./bad.swift ./depends-on-main.swift ./depends-on-bad.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s // CHECK-FIRST-NOT: warning // CHECK-FIRST: Handled main.swift @@ -16,7 +16,7 @@ // RUN: cp -r %S/Inputs/fail-interface-hash-fine/*.swiftdeps %t // RUN: touch -t 201401240006 %t/bad.swift %t/main.swift -// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -enable-direct-intramodule-dependencies ./main.swift ./bad.swift ./depends-on-main.swift ./depends-on-bad.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s +// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental ./main.swift ./bad.swift ./depends-on-main.swift ./depends-on-bad.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s // RUN: %FileCheck -check-prefix=CHECK-RECORD %s < %t/main~buildrecord.swiftdeps // CHECK-SECOND: Handled main.swift @@ -29,7 +29,7 @@ // CHECK-RECORD-DAG: "./depends-on-main.swift": !private [ // CHECK-RECORD-DAG: "./depends-on-bad.swift": [ -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -enable-direct-intramodule-dependencies ./main.swift ./bad.swift ./depends-on-main.swift ./depends-on-bad.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental ./main.swift ./bad.swift ./depends-on-main.swift ./depends-on-bad.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s // CHECK-THIRD-DAG: Handled bad // CHECK-THIRD-DAG: Handled depends-on-bad diff --git a/test/Driver/PrivateDependencies/fail-new-fine.swift b/test/Driver/PrivateDependencies/fail-new-fine.swift index a53fec7298b02..396369f4989be 100644 --- a/test/Driver/PrivateDependencies/fail-new-fine.swift +++ b/test/Driver/PrivateDependencies/fail-new-fine.swift @@ -4,20 +4,20 @@ // RUN: cp -r %S/Inputs/fail-simple-fine/* %t // RUN: touch -t 201401240005 %t/* -// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./bad.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck %s +// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./bad.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck %s // CHECK-NOT: warning // CHECK: Handled main.swift // CHECK: Handled bad.swift // CHECK-NOT: Handled other.swift -// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./bad.swift ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-BAD-ONLY %s +// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./bad.swift ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-BAD-ONLY %s // CHECK-BAD-ONLY-NOT: warning // CHECK-BAD-ONLY-NOT: Handled // CHECK-BAD-ONLY: Handled bad.swift // CHECK-BAD-ONLY-NOT: Handled -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./bad.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-OKAY %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./bad.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-OKAY %s // CHECK-OKAY: Handled main.swift // CHECK-OKAY: Handled bad.swift // CHECK-OKAY: Handled other.swift @@ -25,10 +25,10 @@ // RUN: touch -t 201401240006 %t/bad.swift // RUN: rm %t/bad.swiftdeps -// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./bad.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck %s +// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./bad.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck %s // RUN: touch -t 201401240005 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./bad.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-OKAY-2 %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./bad.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-OKAY-2 %s // CHECK-OKAY-2-DAG: Handled bad.swift // CHECK-OKAY-2-DAG: Handled other.swift @@ -36,10 +36,10 @@ // RUN: touch -t 201401240006 %t/main.swift // RUN: rm %t/main.swiftdeps -// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./bad.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck %s +// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./bad.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck %s // RUN: touch -t 201401240005 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./bad.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-OKAY %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./bad.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-OKAY %s // RUN: touch -t 201401240006 %t/other.swift // RUN: rm %t/other.swiftdeps -// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./bad.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck %s +// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./bad.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck %s diff --git a/test/Driver/PrivateDependencies/fail-simple-fine.swift b/test/Driver/PrivateDependencies/fail-simple-fine.swift index 145fc8bad3341..fa18ba28d17f7 100644 --- a/test/Driver/PrivateDependencies/fail-simple-fine.swift +++ b/test/Driver/PrivateDependencies/fail-simple-fine.swift @@ -4,7 +4,7 @@ // RUN: cp -r %S/Inputs/fail-simple-fine/* %t // RUN: touch -t 201401240005 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./bad.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./bad.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s // CHECK-FIRST-NOT: warning // CHECK-FIRST: Handled main.swift @@ -12,7 +12,7 @@ // CHECK-FIRST: Handled other.swift // RUN: touch -t 201401240006 %t/bad.swift -// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./bad.swift ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s +// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./bad.swift ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s // RUN: %FileCheck -check-prefix=CHECK-RECORD %s < %t/main~buildrecord.swiftdeps // CHECK-SECOND: Handled bad.swift @@ -23,7 +23,7 @@ // CHECK-RECORD-DAG: "./main.swift": !private [ // CHECK-RECORD-DAG: "./other.swift": !private [ -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./bad.swift ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./bad.swift ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s // CHECK-THIRD-DAG: Handled main.swift // CHECK-THIRD-DAG: Handled bad.swift diff --git a/test/Driver/PrivateDependencies/fail-with-bad-deps-fine.swift b/test/Driver/PrivateDependencies/fail-with-bad-deps-fine.swift index 06b2442ffba87..85eea2bb71cf5 100644 --- a/test/Driver/PrivateDependencies/fail-with-bad-deps-fine.swift +++ b/test/Driver/PrivateDependencies/fail-with-bad-deps-fine.swift @@ -4,7 +4,7 @@ // RUN: cp -r %S/Inputs/fail-with-bad-deps-fine/* %t // RUN: touch -t 201401240005 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -enable-direct-intramodule-dependencies ./main.swift ./bad.swift ./depends-on-main.swift ./depends-on-bad.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental ./main.swift ./bad.swift ./depends-on-main.swift ./depends-on-bad.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s // CHECK-FIRST-NOT: warning // CHECK-FIRST: Handled main.swift @@ -15,14 +15,14 @@ // Reset the .swiftdeps files. // RUN: cp -r %S/Inputs/fail-with-bad-deps-fine/*.swiftdeps %t -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -enable-direct-intramodule-dependencies ./main.swift ./bad.swift ./depends-on-main.swift ./depends-on-bad.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-NONE %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental ./main.swift ./bad.swift ./depends-on-main.swift ./depends-on-bad.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-NONE %s // CHECK-NONE-NOT: Handled // Reset the .swiftdeps files. // RUN: cp -r %S/Inputs/fail-with-bad-deps-fine/*.swiftdeps %t // RUN: touch -t 201401240006 %t/bad.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -enable-direct-intramodule-dependencies ./main.swift ./bad.swift ./depends-on-main.swift ./depends-on-bad.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-BUILD-ALL %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental ./main.swift ./bad.swift ./depends-on-main.swift ./depends-on-bad.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-BUILD-ALL %s // CHECK-BUILD-ALL-NOT: warning // CHECK-BUILD-ALL: Handled bad.swift @@ -34,7 +34,7 @@ // RUN: cp -r %S/Inputs/fail-with-bad-deps-fine/*.swiftdeps %t // RUN: touch -t 201401240007 %t/bad.swift %t/main.swift -// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -enable-direct-intramodule-dependencies ./main.swift ./bad.swift ./depends-on-main.swift ./depends-on-bad.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-WITH-FAIL %s +// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies-bad.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental ./main.swift ./bad.swift ./depends-on-main.swift ./depends-on-bad.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-WITH-FAIL %s // RUN: %FileCheck -check-prefix=CHECK-RECORD %s < %t/main~buildrecord.swiftdeps // CHECK-WITH-FAIL: Handled main.swift @@ -47,4 +47,4 @@ // CHECK-RECORD-DAG: "./depends-on-main.swift": !private [ // CHECK-RECORD-DAG: "./depends-on-bad.swift": [ -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -enable-direct-intramodule-dependencies ./bad.swift ./main.swift ./depends-on-main.swift ./depends-on-bad.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-BUILD-ALL %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental ./bad.swift ./main.swift ./depends-on-main.swift ./depends-on-bad.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-BUILD-ALL %s diff --git a/test/Driver/PrivateDependencies/file-added-fine.swift b/test/Driver/PrivateDependencies/file-added-fine.swift index a91e412397dd6..bc37548bb8840 100644 --- a/test/Driver/PrivateDependencies/file-added-fine.swift +++ b/test/Driver/PrivateDependencies/file-added-fine.swift @@ -4,16 +4,16 @@ // RUN: cp -r %S/Inputs/one-way-fine/* %t // RUN: touch -t 201401240005 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s // CHECK-FIRST-NOT: warning // CHECK-FIRST: Handled other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s // CHECK-SECOND-NOT: Handled -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./other.swift ./main.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./other.swift ./main.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s // CHECK-THIRD-NOT: Handled other.swift // CHECK-THIRD: Handled main.swift diff --git a/test/Driver/PrivateDependencies/independent-fine.swift b/test/Driver/PrivateDependencies/independent-fine.swift index 600a619468e7e..e70adbb8ce0c5 100644 --- a/test/Driver/PrivateDependencies/independent-fine.swift +++ b/test/Driver/PrivateDependencies/independent-fine.swift @@ -4,43 +4,43 @@ // RUN: cp -r %S/Inputs/independent-fine/* %t // RUN: touch -t 201401240005 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s // RUN: ls %t/main~buildrecord.swiftdeps // CHECK-FIRST-NOT: warning // CHECK-FIRST: Handled main.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s // CHECK-SECOND-NOT: Handled // RUN: touch -t 201401240006 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s // RUN: touch -t 201401240007 %t/main.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s // RUN: %empty-directory(%t) // RUN: cp -r %S/Inputs/independent-fine/* %t // RUN: touch -t 201401240005 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST-MULTI %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST-MULTI %s // CHECK-FIRST-MULTI: Handled main.swift // CHECK-FIRST-MULTI: Handled other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s // RUN: touch -t 201401240006 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST-MULTI %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST-MULTI %s // RUN: %empty-directory(%t) // RUN: cp -r %S/Inputs/independent-fine/* %t // RUN: touch -t 201401240005 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SINGLE %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SINGLE %s // CHECK-SINGLE: Handled main.swift // RUN: ls %t/main~buildrecord.swiftdeps diff --git a/test/Driver/PrivateDependencies/independent-half-dirty-fine.swift b/test/Driver/PrivateDependencies/independent-half-dirty-fine.swift index 7ebf28ddeb6fb..581bf95409d3d 100644 --- a/test/Driver/PrivateDependencies/independent-half-dirty-fine.swift +++ b/test/Driver/PrivateDependencies/independent-half-dirty-fine.swift @@ -2,7 +2,7 @@ // RUN: cp -r %S/Inputs/independent-fine/* %t // RUN: touch -t 201401240005 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s // CHECK-FIRST-NOT: warning // CHECK-FIRST: Handled main.swift @@ -10,14 +10,14 @@ // RUN: touch -t 201401240005 %t/other.o // RUN: touch -t 201401240006 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s // CHECK-SECOND-NOT: Handled main.swift // CHECK-SECOND: Handled other.swift // CHECK-SECOND-NOT: Handled main.swift // RUN: rm %t/other.swiftdeps -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s // CHECK-THIRD: Handled main.swift // CHECK-THIRD: Handled other.swift diff --git a/test/Driver/PrivateDependencies/independent-parseable-fine.swift b/test/Driver/PrivateDependencies/independent-parseable-fine.swift index b4bc7bad867c5..a711983db85d1 100644 --- a/test/Driver/PrivateDependencies/independent-parseable-fine.swift +++ b/test/Driver/PrivateDependencies/independent-parseable-fine.swift @@ -2,7 +2,7 @@ // RUN: cp -r %S/Inputs/independent-fine/* %t // RUN: touch -t 201401240005 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift -j1 -parseable-output 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift -j1 -parseable-output 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s // CHECK-FIRST-NOT: warning // CHECK-FIRST: {{^{$}} @@ -17,7 +17,7 @@ // CHECK-FIRST: "output": "Handled main.swift{{(\\r)?}}\n" // CHECK-FIRST: {{^}$}} -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift -j1 -parseable-output 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift -j1 -parseable-output 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s // CHECK-SECOND: {{^{$}} // CHECK-SECOND: "kind": "skipped" @@ -26,14 +26,14 @@ // CHECK-SECOND: {{^}$}} // RUN: touch -t 201401240006 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift -j1 -parseable-output 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift -j1 -parseable-output 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s // RUN: %empty-directory(%t) // RUN: cp -r %S/Inputs/independent-fine/* %t // RUN: touch -t 201401240005 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -parseable-output 2>&1 | %FileCheck -check-prefix=CHECK-FIRST-MULTI %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -parseable-output 2>&1 | %FileCheck -check-prefix=CHECK-FIRST-MULTI %s // CHECK-FIRST-MULTI: {{^{$}} // CHECK-FIRST-MULTI: "kind": "began" @@ -59,7 +59,7 @@ // CHECK-FIRST-MULTI: "output": "Handled other.swift{{(\\r)?}}\n" // CHECK-FIRST-MULTI: {{^}$}} -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -parseable-output 2>&1 | %FileCheck -check-prefix=CHECK-SECOND-MULTI %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -parseable-output 2>&1 | %FileCheck -check-prefix=CHECK-SECOND-MULTI %s // CHECK-SECOND-MULTI: {{^{$}} // CHECK-SECOND-MULTI: "kind": "skipped" @@ -74,5 +74,5 @@ // CHECK-SECOND-MULTI: {{^}$}} // RUN: touch -t 201401240006 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -parseable-output 2>&1 | %FileCheck -check-prefix=CHECK-FIRST-MULTI %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -parseable-output 2>&1 | %FileCheck -check-prefix=CHECK-FIRST-MULTI %s diff --git a/test/Driver/PrivateDependencies/malformed-but-valid-yaml-fine.swift b/test/Driver/PrivateDependencies/malformed-but-valid-yaml-fine.swift index 769a8ffe004c1..a18bbd54d9860 100644 --- a/test/Driver/PrivateDependencies/malformed-but-valid-yaml-fine.swift +++ b/test/Driver/PrivateDependencies/malformed-but-valid-yaml-fine.swift @@ -3,24 +3,24 @@ // RUN: touch -t 201401240005 %t/*.swift // Generate the build record... -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v // ...then reset the .swiftdeps files. // RUN: cp -r %S/Inputs/malformed-after-fine/*.swiftdeps %t -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s // CHECK-FIRST-NOT: warning // CHECK-FIRST-NOT: Handled // RUN: touch -t 201401240006 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s // CHECK-SECOND: Handled other.swift // CHECK-SECOND: Handled main.swift // RUN: touch -t 201401240007 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s // CHECK-THIRD: Handled main.swift // CHECK-THIRD: Handled other.swift @@ -30,18 +30,18 @@ // RUN: touch -t 201401240005 %t/*.swift // Generate the build record... -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v // ...then reset the .swiftdeps files. // RUN: cp -r %S/Inputs/malformed-after-fine/*.swiftdeps %t -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s // RUN: touch -t 201401240006 %t/main.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FOURTH %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FOURTH %s // RUN: touch -t 201401240007 %t/main.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FOURTH %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FOURTH %s // CHECK-FOURTH-NOT: Handled other.swift // CHECK-FOURTH: Handled main.swift diff --git a/test/Driver/PrivateDependencies/malformed-fine.swift b/test/Driver/PrivateDependencies/malformed-fine.swift index 3b0355c3a8657..f4308cdcc94ba 100644 --- a/test/Driver/PrivateDependencies/malformed-fine.swift +++ b/test/Driver/PrivateDependencies/malformed-fine.swift @@ -3,24 +3,24 @@ // RUN: touch -t 201401240005 %t/*.swift // Generate the build record... -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v // ...then reset the .swiftdeps files. // RUN: cp -r %S/Inputs/malformed-after-fine/*.swiftdeps %t -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s // CHECK-FIRST-NOT: warning // CHECK-FIRST-NOT: Handled // RUN: touch -t 201401240006 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s // CHECK-SECOND: Handled other.swift // CHECK-SECOND: Handled main.swift // RUN: touch -t 201401240007 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s // CHECK-THIRD: Handled main.swift // CHECK-THIRD: Handled other.swift @@ -30,18 +30,18 @@ // RUN: touch -t 201401240005 %t/*.swift // Generate the build record... -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v // ...then reset the .swiftdeps files. // RUN: cp -r %S/Inputs/malformed-after-fine/*.swiftdeps %t -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s // RUN: touch -t 201401240006 %t/main.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FOURTH %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FOURTH %s // RUN: touch -t 201401240007 %t/main.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FOURTH %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FOURTH %s // CHECK-FOURTH-NOT: Handled other.swift // CHECK-FOURTH: Handled main.swift diff --git a/test/Driver/PrivateDependencies/moduleonly.swift b/test/Driver/PrivateDependencies/moduleonly.swift index e71c4c4192e93..a2c38a2214e76 100644 --- a/test/Driver/PrivateDependencies/moduleonly.swift +++ b/test/Driver/PrivateDependencies/moduleonly.swift @@ -2,7 +2,7 @@ // RUN: cp -r %S/Inputs/moduleonly/* %t // RUN: touch -t 201801230045 %t/*.swift -// RUN: cd %t && %target-build-swift -emit-module -output-file-map ./output.json -incremental -enable-direct-intramodule-dependencies ./foo.swift ./bar.swift ./baz.swift -module-name testmodule -v 2>&1 | %FileCheck -check-prefix=CHECK1 %s +// RUN: cd %t && %target-build-swift -emit-module -output-file-map ./output.json -incremental ./foo.swift ./bar.swift ./baz.swift -module-name testmodule -v 2>&1 | %FileCheck -check-prefix=CHECK1 %s // RUN: test ! -f %t/buildrecord.swiftdeps // RUN: test -f %t/buildrecord.swiftdeps~moduleonly @@ -10,7 +10,7 @@ // CHECK1-DAG: -primary-file ./bar.swift // CHECK1-DAG: -primary-file ./baz.swift -// RUN: cd %t && %target-build-swift -c -emit-module -output-file-map ./output.json -incremental -enable-direct-intramodule-dependencies ./foo.swift ./bar.swift ./baz.swift -module-name testmodule -v 2>&1 | %FileCheck -check-prefix=CHECK2 %s +// RUN: cd %t && %target-build-swift -c -emit-module -output-file-map ./output.json -incremental ./foo.swift ./bar.swift ./baz.swift -module-name testmodule -v 2>&1 | %FileCheck -check-prefix=CHECK2 %s // RUN: test -f %t/buildrecord.swiftdeps // RUN: test -f %t/buildrecord.swiftdeps~moduleonly @@ -18,7 +18,7 @@ // CHECK2-DAG: -primary-file ./bar.swift // CHECK2-DAG: -primary-file ./baz.swift -// RUN: cd %t && %target-build-swift -emit-module -output-file-map ./output.json -incremental -enable-direct-intramodule-dependencies ./foo.swift ./bar.swift ./baz.swift -module-name testmodule -v 2>&1 | %FileCheck -check-prefix=CHECK3 %s +// RUN: cd %t && %target-build-swift -emit-module -output-file-map ./output.json -incremental ./foo.swift ./bar.swift ./baz.swift -module-name testmodule -v 2>&1 | %FileCheck -check-prefix=CHECK3 %s // RUN: test -f %t/buildrecord.swiftdeps~moduleonly // RUN: test -f %t/buildrecord.swiftdeps @@ -27,20 +27,20 @@ // CHECK3-NOT: -primary-file ./baz.swift // RUN: touch -t 201801230123 %t/bar.swift -// RUN: cd %t && %target-build-swift -emit-module -output-file-map ./output.json -incremental -enable-direct-intramodule-dependencies ./foo.swift ./bar.swift ./baz.swift -module-name testmodule -v 2>&1 | %FileCheck -check-prefix=CHECK4 %s +// RUN: cd %t && %target-build-swift -emit-module -output-file-map ./output.json -incremental ./foo.swift ./bar.swift ./baz.swift -module-name testmodule -v 2>&1 | %FileCheck -check-prefix=CHECK4 %s // CHECK4-NOT: -primary-file ./foo.swift // CHECK4-NOT: -primary-file ./baz.swift // CHECK4-DAG: -primary-file ./bar.swift // RUN: touch -t 201801230145 %t/baz.swift -// RUN: cd %t && %target-build-swift -c -emit-module -output-file-map ./output.json -incremental -enable-direct-intramodule-dependencies ./foo.swift ./bar.swift ./baz.swift -module-name testmodule -v 2>&1 | %FileCheck -check-prefix=CHECK5 %s +// RUN: cd %t && %target-build-swift -c -emit-module -output-file-map ./output.json -incremental ./foo.swift ./bar.swift ./baz.swift -module-name testmodule -v 2>&1 | %FileCheck -check-prefix=CHECK5 %s // CHECK5-NOT: -primary-file ./foo.swift // CHECK5-DAG: -primary-file ./bar.swift // CHECK5-DAG: -primary-file ./baz.swift -// RUN: cd %t && %target-build-swift -emit-module -output-file-map ./output.json -incremental -enable-direct-intramodule-dependencies ./foo.swift ./bar.swift ./baz.swift -module-name testmodule -v 2>&1 | %FileCheck -check-prefix=CHECK6 %s +// RUN: cd %t && %target-build-swift -emit-module -output-file-map ./output.json -incremental ./foo.swift ./bar.swift ./baz.swift -module-name testmodule -v 2>&1 | %FileCheck -check-prefix=CHECK6 %s // CHECK6-NOT: -primary-file ./foo.swift // CHECK6-NOT: -primary-file ./bar.swift @@ -52,7 +52,7 @@ // RUN: %empty-directory(%t) // RUN: cp -r %S/Inputs/moduleonly/* %t // RUN: touch -t 201801230045 %t/*.swift -// RUN: cd %t && %target-build-swift -c -g -output-file-map ./output.json -incremental -enable-direct-intramodule-dependencies ./foo.swift ./bar.swift ./baz.swift -module-name testmodule -v 2>&1 +// RUN: cd %t && %target-build-swift -c -g -output-file-map ./output.json -incremental ./foo.swift ./bar.swift ./baz.swift -module-name testmodule -v 2>&1 // RUN: test ! -f %t/buildrecord.swiftdeps~moduleonly // RUN: test -f %t/buildrecord.swiftdeps // RUN: test ! -f %t/foo~partial.swiftmodule @@ -62,7 +62,7 @@ // RUN: %empty-directory(%t) // RUN: cp -r %S/Inputs/moduleonly/* %t // RUN: touch -t 201801230045 %t/*.swift -// RUN: cd %t && %target-build-swift -emit-library -g -output-file-map ./output.json -incremental -enable-direct-intramodule-dependencies ./foo.swift ./bar.swift ./baz.swift -module-name testmodule -v 2>&1 +// RUN: cd %t && %target-build-swift -emit-library -g -output-file-map ./output.json -incremental ./foo.swift ./bar.swift ./baz.swift -module-name testmodule -v 2>&1 // RUN: test ! -f %t/buildrecord.swiftdeps~moduleonly // RUN: test -f %t/buildrecord.swiftdeps // RUN: test -f %t/foo~partial.swiftmodule @@ -74,12 +74,12 @@ // RUN: %empty-directory(%t) // RUN: cp -r %S/Inputs/moduleonly/* %t // RUN: touch -t 201801230045 %t/*.swift -// RUN: cd %t && %target-build-swift -emit-module -output-file-map ./output.json -incremental -enable-direct-intramodule-dependencies ./foo.swift ./bar.swift ./baz.swift -module-name testmodule -v 2>&1 +// RUN: cd %t && %target-build-swift -emit-module -output-file-map ./output.json -incremental ./foo.swift ./bar.swift ./baz.swift -module-name testmodule -v 2>&1 // RUN: cp -f %t/testmodule.swiftmodule %t-moduleonly.swiftmodule // RUN: cp -f %t/testmodule.swiftdoc %t-moduleonly.swiftdoc // RUN: %empty-directory(%t) // RUN: cp -r %S/Inputs/moduleonly/* %t // RUN: touch -t 201801230045 %t/*.swift -// RUN: cd %t && %target-build-swift -c -emit-module -output-file-map ./output.json -incremental -enable-direct-intramodule-dependencies ./foo.swift ./bar.swift ./baz.swift -module-name testmodule -v 2>&1 +// RUN: cd %t && %target-build-swift -c -emit-module -output-file-map ./output.json -incremental ./foo.swift ./bar.swift ./baz.swift -module-name testmodule -v 2>&1 // RUN: diff %t/testmodule.swiftmodule %t-moduleonly.swiftmodule // RUN: diff %t/testmodule.swiftdoc %t-moduleonly.swiftdoc diff --git a/test/Driver/PrivateDependencies/mutual-fine.swift b/test/Driver/PrivateDependencies/mutual-fine.swift index 637d50cad56f8..bd842dd762526 100644 --- a/test/Driver/PrivateDependencies/mutual-fine.swift +++ b/test/Driver/PrivateDependencies/mutual-fine.swift @@ -4,21 +4,21 @@ // RUN: cp -r %S/Inputs/mutual-fine/* %t // RUN: touch -t 201401240005 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -enable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s // CHECK-FIRST-NOT: warning // CHECK-FIRST: Handled main.swift // CHECK-FIRST: Handled other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -enable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s // CHECK-SECOND-NOT: Handled // RUN: touch -t 201401240006 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -enable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s // CHECK-THIRD: Handled main.swift // CHECK-THIRD: Handled other.swift // RUN: touch -t 201401240006 %t/main.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -enable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s diff --git a/test/Driver/PrivateDependencies/mutual-interface-hash-fine.swift b/test/Driver/PrivateDependencies/mutual-interface-hash-fine.swift index 1adf57499098a..c414fde4b52b5 100644 --- a/test/Driver/PrivateDependencies/mutual-interface-hash-fine.swift +++ b/test/Driver/PrivateDependencies/mutual-interface-hash-fine.swift @@ -5,17 +5,17 @@ // RUN: touch -t 201401240005 %t/* // Generate the build record... -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -enable-direct-intramodule-dependencies ./does-change.swift ./does-not-change.swift -module-name main -j1 -v +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental ./does-change.swift ./does-not-change.swift -module-name main -j1 -v // ...then reset the .swiftdeps files. // RUN: cp -r %S/Inputs/mutual-interface-hash-fine/*.swiftdeps %t -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -enable-direct-intramodule-dependencies ./does-change.swift ./does-not-change.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-CLEAN %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental ./does-change.swift ./does-not-change.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-CLEAN %s // CHECK-CLEAN-NOT: Handled // RUN: touch -t 201401240006 %t/does-change.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -enable-direct-intramodule-dependencies ./does-change.swift ./does-not-change.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-CHANGE %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental ./does-change.swift ./does-not-change.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-CHANGE %s // CHECK-CHANGE-DAG: Handled does-change.swift // CHECK-CHANGE-DAG: Handled does-not-change.swift @@ -24,7 +24,7 @@ // RUN: cp -r %S/Inputs/mutual-interface-hash-fine/*.swiftdeps %t // RUN: touch -t 201401240006 %t/does-not-change.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -enable-direct-intramodule-dependencies ./does-change.swift ./does-not-change.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-NO-CHANGE %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental ./does-change.swift ./does-not-change.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-NO-CHANGE %s // CHECK-NO-CHANGE-NOT: Handled // CHECK-NO-CHANGE: Handled does-not-change.swift @@ -36,7 +36,7 @@ // Make sure the files really were dependent on one another. // RUN: touch -t 201401240007 %t/does-not-change.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -enable-direct-intramodule-dependencies -driver-always-rebuild-dependents ./does-change.swift ./does-not-change.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-REBUILD-DEPENDENTS %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./does-change.swift ./does-not-change.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-REBUILD-DEPENDENTS %s // CHECK-REBUILD-DEPENDENTS-DAG: Handled does-not-change.swift // CHECK-REBUILD-DEPENDENTS-DAG: Handled does-change.swift @@ -47,4 +47,4 @@ // RUN: cp -r %S/Inputs/mutual-interface-hash-fine/*.swiftdeps %t // RUN: sed -E -e 's/"[^"]*does-not-change.swift":/& !dirty/' -i.prev %t/main~buildrecord.swiftdeps -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -enable-direct-intramodule-dependencies ./does-change.swift ./does-not-change.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-REBUILD-DEPENDENTS %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental ./does-change.swift ./does-not-change.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-REBUILD-DEPENDENTS %s diff --git a/test/Driver/PrivateDependencies/nominal-members-fine.swift b/test/Driver/PrivateDependencies/nominal-members-fine.swift index ff80d585f4628..dcc84bf85cb45 100644 --- a/test/Driver/PrivateDependencies/nominal-members-fine.swift +++ b/test/Driver/PrivateDependencies/nominal-members-fine.swift @@ -4,7 +4,7 @@ // RUN: cp -r %S/Inputs/nominal-members-fine/* %t // RUN: touch -t 201401240005 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./a.swift ./a-ext.swift ./depends-on-a-foo.swift ./depends-on-a-ext.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-INITIAL %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./a.swift ./a-ext.swift ./depends-on-a-foo.swift ./depends-on-a-ext.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-INITIAL %s // CHECK-INITIAL-NOT: warning // CHECK-INITIAL: Handled a.swift @@ -12,12 +12,12 @@ // CHECK-INITIAL: Handled depends-on-a-foo.swift // CHECK-INITIAL: Handled depends-on-a-ext.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./a.swift ./a-ext.swift ./depends-on-a-foo.swift ./depends-on-a-ext.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-CLEAN %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./a.swift ./a-ext.swift ./depends-on-a-foo.swift ./depends-on-a-ext.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-CLEAN %s // CHECK-CLEAN-NOT: Handled // RUN: touch -t 201401240006 %t/a.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./a.swift ./a-ext.swift ./depends-on-a-foo.swift ./depends-on-a-ext.swift -module-name main -j1 -v > %t/touched-a.txt 2>&1 +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./a.swift ./a-ext.swift ./depends-on-a-foo.swift ./depends-on-a-ext.swift -module-name main -j1 -v > %t/touched-a.txt 2>&1 // RUN: %FileCheck -check-prefix=CHECK-TOUCHED-A %s < %t/touched-a.txt // RUN: %FileCheck -check-prefix=NEGATIVE-TOUCHED-A %s < %t/touched-a.txt @@ -26,11 +26,11 @@ // CHECK-TOUCHED-A-DAG: Handled depends-on-a-ext.swift // NEGATIVE-TOUCHED-A-NOT: Handled a-ext.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./a.swift ./a-ext.swift ./depends-on-a-foo.swift ./depends-on-a-ext.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-CLEAN %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./a.swift ./a-ext.swift ./depends-on-a-foo.swift ./depends-on-a-ext.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-CLEAN %s // RUN: touch -t 201401240007 %t/a-ext.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./a.swift ./a-ext.swift ./depends-on-a-foo.swift ./depends-on-a-ext.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-TOUCHED-EXT %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./a.swift ./a-ext.swift ./depends-on-a-foo.swift ./depends-on-a-ext.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-TOUCHED-EXT %s // CHECK-TOUCHED-EXT-NOT: Handled // CHECK-TOUCHED-EXT: Handled a-ext.swift diff --git a/test/Driver/PrivateDependencies/one-way-depends-before-fine.swift b/test/Driver/PrivateDependencies/one-way-depends-before-fine.swift index 0fa424d18ca3b..c4673f247c963 100644 --- a/test/Driver/PrivateDependencies/one-way-depends-before-fine.swift +++ b/test/Driver/PrivateDependencies/one-way-depends-before-fine.swift @@ -6,24 +6,24 @@ // RUN: touch -t 201401240005 %t/*.swift // Generate the build record... -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v // ...then reset the .swiftdeps files. // RUN: cp -r %S/Inputs/one-way-depends-before-fine/*.swiftdeps %t -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s // CHECK-FIRST-NOT: warning // CHECK-FIRST-NOT: Handled // RUN: touch -t 201401240006 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s // CHECK-SECOND: Handled main.swift // CHECK-SECOND: Handled other.swift // RUN: touch -t 201401240007 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s // CHECK-THIRD-NOT: Handled main.swift // CHECK-THIRD: Handled other.swift @@ -35,22 +35,22 @@ // RUN: touch -t 201401240005 %t/*.swift // Generate the build record... -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v // ...then reset the .swiftdeps files. // RUN: cp -r %S/Inputs/one-way-depends-before-fine/*.swiftdeps %t -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s // RUN: touch -t 201401240006 %t/main.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FOURTH %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FOURTH %s // CHECK-FOURTH-NOT: Handled other.swift // CHECK-FOURTH: Handled main.swift // CHECK-FOURTH-NOT: Handled other.swift // RUN: touch -t 201401240007 %t/main.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FOURTH %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FOURTH %s // RUN: touch -t 201401240008 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s diff --git a/test/Driver/PrivateDependencies/one-way-external-delete-fine.swift b/test/Driver/PrivateDependencies/one-way-external-delete-fine.swift index 2d08806ff7b39..35d75ede9df5a 100644 --- a/test/Driver/PrivateDependencies/one-way-external-delete-fine.swift +++ b/test/Driver/PrivateDependencies/one-way-external-delete-fine.swift @@ -2,13 +2,13 @@ // RUN: cp -r %S/Inputs/one-way-external-fine/* %t // RUN: touch -t 201401240005 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s // CHECK-FIRST-NOT: warning // CHECK-FIRST: Handled main.swift // CHECK-FIRST: Handled other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s // CHECK-SECOND-NOT: Handled @@ -17,7 +17,7 @@ // RUN: touch -t 201401240006 %t/*.o // RUN: touch -t 201401240004 %t/*-external // RUN: rm %t/other1-external -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s // CHECK-THIRD-DAG: Handled other.swift // CHECK-THIRD-DAG: Handled main.swift @@ -27,14 +27,14 @@ // RUN: cp -r %S/Inputs/one-way-external-fine/* %t // RUN: touch -t 201401240005 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s // RUN: touch -t 201401240005 %t/* // RUN: touch -t 201401240006 %t/*.o // RUN: touch -t 201401240004 %t/*-external // RUN: rm %t/main1-external -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FOURTH %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FOURTH %s // CHECK-FOURTH-NOT: Handled other.swift // CHECK-FOURTH: Handled main.swift diff --git a/test/Driver/PrivateDependencies/one-way-external-fine.swift b/test/Driver/PrivateDependencies/one-way-external-fine.swift index 5697d718cd134..b2a99cdf46175 100644 --- a/test/Driver/PrivateDependencies/one-way-external-fine.swift +++ b/test/Driver/PrivateDependencies/one-way-external-fine.swift @@ -8,13 +8,13 @@ // RUN: cp -r %S/Inputs/one-way-external-fine/* %t // RUN: touch -t 201401240005 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s // CHECK-FIRST-NOT: warning // CHECK-FIRST: Handled main.swift // CHECK-FIRST: Handled other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s // CHECK-SECOND-NOT: Handled @@ -23,7 +23,7 @@ // RUN: touch -t 201401240006 %t/*.o // RUN: touch -t 201401240004 %t/*-external // RUN: touch -t 203704010005 %t/other1-external -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s // CHECK-THIRD-DAG: Handled other.swift // CHECK-THIRD-DAG: Handled main.swift @@ -32,14 +32,14 @@ // RUN: touch -t 201401240006 %t/*.o // RUN: touch -t 201401240004 %t/*-external // RUN: touch -t 203704010005 %t/other2-external -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s // RUN: touch -t 201401240005 %t/* // RUN: touch -t 201401240006 %t/*.o // RUN: touch -t 201401240004 %t/*-external // RUN: touch -t 203704010005 %t/main1-external -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FOURTH %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FOURTH %s // CHECK-FOURTH-NOT: Handled other.swift // CHECK-FOURTH: Handled main.swift @@ -49,4 +49,4 @@ // RUN: touch -t 201401240006 %t/*.o // RUN: touch -t 201401240004 %t/*-external // RUN: touch -t 203704010005 %t/main2-external -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FOURTH %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FOURTH %s diff --git a/test/Driver/PrivateDependencies/one-way-fine.swift b/test/Driver/PrivateDependencies/one-way-fine.swift index 1535427e8be20..192d2e0bee633 100644 --- a/test/Driver/PrivateDependencies/one-way-fine.swift +++ b/test/Driver/PrivateDependencies/one-way-fine.swift @@ -4,34 +4,34 @@ // RUN: cp -r %S/Inputs/one-way-fine/* %t // RUN: touch -t 201401240005 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s // CHECK-FIRST-NOT: warning // CHECK-FIRST: Handled main.swift // CHECK-FIRST: Handled other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s // CHECK-SECOND-NOT: Handled // RUN: touch -t 201401240006 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s // CHECK-THIRD: Handled main.swift // CHECK-THIRD: Handled other.swift // RUN: touch -t 201401240006 %t/main.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FOURTH %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FOURTH %s // CHECK-FOURTH-NOT: Handled other.swift // CHECK-FOURTH: Handled main.swift // CHECK-FOURTH-NOT: Handled other.swift // RUN: rm %t/main.o -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FOURTH %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FOURTH %s // RUN: rm %t/other.o -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIFTH %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIFTH %s // CHECK-FIFTH-NOT: Handled main.swift // CHECK-FIFTH: Handled other.swift @@ -41,34 +41,34 @@ // RUN: %empty-directory(%t) // RUN: cp -r %S/Inputs/one-way-fine/* %t // RUN: touch -t 201401240005 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s // Try modifying the inputs /backwards/ in time rather than forwards. // RUN: touch -t 201401240004 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s // RUN: touch -t 201401240004 %t/main.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FOURTH %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FOURTH %s // RUN: %empty-directory(%t) // RUN: cp -r %S/Inputs/one-way-fine/* %t // RUN: touch -t 201401240005 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./other.swift ./main.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-REV-FIRST %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./other.swift ./main.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-REV-FIRST %s // CHECK-REV-FIRST: Handled other.swift // CHECK-REV-FIRST: Handled main.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./other.swift ./main.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-REV-SECOND %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./other.swift ./main.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-REV-SECOND %s // CHECK-REV-SECOND-NOT: Handled // RUN: touch -t 201401240006 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./other.swift ./main.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-REV-FIRST %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./other.swift ./main.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-REV-FIRST %s // RUN: touch -t 201401240006 %t/main.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./other.swift ./main.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-REV-FOURTH %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./other.swift ./main.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-REV-FOURTH %s // CHECK-REV-FOURTH-NOT: Handled other.swift // CHECK-REV-FOURTH: Handled main.swift diff --git a/test/Driver/PrivateDependencies/one-way-merge-module-fine.swift b/test/Driver/PrivateDependencies/one-way-merge-module-fine.swift index 2d4b6aa9556f1..4e1bcb5c4b182 100644 --- a/test/Driver/PrivateDependencies/one-way-merge-module-fine.swift +++ b/test/Driver/PrivateDependencies/one-way-merge-module-fine.swift @@ -4,14 +4,14 @@ // RUN: cp -r %S/Inputs/one-way-fine/* %t // RUN: touch -t 201401240005 %t/* -// RUN: cd %t && %swiftc_driver -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -emit-module-path %t/master.swiftmodule -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s +// RUN: cd %t && %swiftc_driver -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -emit-module-path %t/master.swiftmodule -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s // CHECK-FIRST-NOT: warning // CHECK-FIRST: Handled main.swift // CHECK-FIRST: Handled other.swift // CHECK-FIRST: Produced master.swiftmodule -// RUN: cd %t && %swiftc_driver -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -emit-module-path %t/master.swiftmodule -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s +// RUN: cd %t && %swiftc_driver -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -emit-module-path %t/master.swiftmodule -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s // CHECK-SECOND-NOT: warning // CHECK-SECOND-NOT: Handled diff --git a/test/Driver/PrivateDependencies/one-way-parallel-fine.swift b/test/Driver/PrivateDependencies/one-way-parallel-fine.swift index 2e59b0efb9726..cea71b336bbc1 100644 --- a/test/Driver/PrivateDependencies/one-way-parallel-fine.swift +++ b/test/Driver/PrivateDependencies/one-way-parallel-fine.swift @@ -4,7 +4,7 @@ // RUN: cp -r %S/Inputs/one-way-fine/* %t // RUN: touch -t 201401240005 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -parseable-output 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -parseable-output 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s // CHECK-FIRST-NOT: warning // CHECK-FIRST: {{^{$}} @@ -32,7 +32,7 @@ // CHECK-FIRST: {{^}$}} // RUN: touch -t 201401240006 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j2 -parseable-output 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j2 -parseable-output 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s // CHECK-SECOND: {{^{$}} // CHECK-SECOND: "kind": "began" diff --git a/test/Driver/PrivateDependencies/one-way-parseable-fine.swift b/test/Driver/PrivateDependencies/one-way-parseable-fine.swift index 021efa44a6ea8..36d8bc8ec298a 100644 --- a/test/Driver/PrivateDependencies/one-way-parseable-fine.swift +++ b/test/Driver/PrivateDependencies/one-way-parseable-fine.swift @@ -2,7 +2,7 @@ // RUN: cp -r %S/Inputs/one-way-fine/* %t // RUN: touch -t 201401240005 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -parseable-output 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -parseable-output 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s // CHECK-FIRST-NOT: warning // CHECK-FIRST: {{^{$}} @@ -29,7 +29,7 @@ // CHECK-FIRST: "output": "Handled other.swift{{(\\r)?}}\n" // CHECK-FIRST: {{^}$}} -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -parseable-output 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -parseable-output 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s // CHECK-SECOND: {{^{$}} // CHECK-SECOND: "kind": "skipped" @@ -44,7 +44,7 @@ // CHECK-SECOND: {{^}$}} // RUN: touch -t 201401240006 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -parseable-output 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -parseable-output 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s // CHECK-THIRD: {{^{$}} // CHECK-THIRD: "kind": "began" @@ -71,7 +71,7 @@ // CHECK-THIRD: {{^}$}} // RUN: touch -t 201401240006 %t/main.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -parseable-output 2>&1 | %FileCheck -check-prefix=CHECK-FOURTH %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -parseable-output 2>&1 | %FileCheck -check-prefix=CHECK-FOURTH %s // CHECK-FOURTH: {{^{$}} // CHECK-FOURTH: "kind": "began" diff --git a/test/Driver/PrivateDependencies/one-way-provides-after-fine.swift b/test/Driver/PrivateDependencies/one-way-provides-after-fine.swift index 1672081f69d27..46e43a4a456ed 100644 --- a/test/Driver/PrivateDependencies/one-way-provides-after-fine.swift +++ b/test/Driver/PrivateDependencies/one-way-provides-after-fine.swift @@ -6,42 +6,42 @@ // RUN: touch -t 201401240005 %t/*.swift // Generate the build record... -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v // ...then reset the .swiftdeps files. // RUN: cp -r %S/Inputs/one-way-provides-after-fine/*.swiftdeps %t -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s // CHECK-FIRST-NOT: warning // CHECK-FIRST-NOT: Handled // RUN: touch -t 201401240006 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s // CHECK-SECOND-DAG: Handled other.swift // CHECK-SECOND-DAG: Handled main.swift // RUN: touch -t 201401240007 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s // RUN: %empty-directory(%t) // RUN: cp -r %S/Inputs/one-way-provides-after-fine/* %t // RUN: touch -t 201401240005 %t/*.swift // Generate the build record... -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v // ...then reset the .swiftdeps files. // RUN: cp -r %S/Inputs/one-way-provides-after-fine/*.swiftdeps %t -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s // RUN: touch -t 201401240007 %t/main.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s // RUN: touch -t 201401240008 %t/main.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s // CHECK-THIRD-NOT: Handled other.swift // CHECK-THIRD: Handled main.swift diff --git a/test/Driver/PrivateDependencies/one-way-provides-before-fine.swift b/test/Driver/PrivateDependencies/one-way-provides-before-fine.swift index d9bb773806dec..e7f113b17aadb 100644 --- a/test/Driver/PrivateDependencies/one-way-provides-before-fine.swift +++ b/test/Driver/PrivateDependencies/one-way-provides-before-fine.swift @@ -6,24 +6,24 @@ // RUN: touch -t 201401240005 %t/*.swift // Generate the build record... -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v // ...then reset the .swiftdeps files. // RUN: cp -r %S/Inputs/one-way-provides-before-fine/*.swiftdeps %t -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s // CHECK-FIRST-NOT: warning // CHECK-FIRST-NOT: Handled // RUN: touch -t 201401240006 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-SECOND %s // CHECK-SECOND: Handled main.swift // CHECK-SECOND: Handled other.swift // RUN: touch -t 201401240007 %t/other.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-THIRD %s // CHECK-THIRD-NOT: Handled main.swift // CHECK-THIRD: Handled other.swift @@ -34,18 +34,18 @@ // RUN: touch -t 201401240005 %t/*.swift // Generate the build record... -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v // ...then reset the .swiftdeps files. // RUN: cp -r %S/Inputs/one-way-provides-before-fine/*.swiftdeps %t -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s // RUN: touch -t 201401240006 %t/main.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FOURTH %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FOURTH %s // RUN: touch -t 201401240007 %t/main.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FOURTH %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FOURTH %s // CHECK-FOURTH-NOT: Handled other.swift // CHECK-FOURTH: Handled main.swift diff --git a/test/Driver/PrivateDependencies/one-way-while-editing-fine.swift b/test/Driver/PrivateDependencies/one-way-while-editing-fine.swift index d0a0999b1c3a3..a51755233190f 100644 --- a/test/Driver/PrivateDependencies/one-way-while-editing-fine.swift +++ b/test/Driver/PrivateDependencies/one-way-while-editing-fine.swift @@ -4,7 +4,7 @@ // RUN: cp -r %S/Inputs/one-way-fine/* %t // RUN: touch -t 201401240005 %t/* -// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/modify-non-primary-files.py" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck %s +// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/modify-non-primary-files.py" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck %s // CHECK: Handled main.swift // CHECK: Handled other.swift @@ -12,14 +12,14 @@ // CHECK: error: input file 'other.swift' was modified during the build // CHECK-NOT: error -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-RECOVER %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-RECOVER %s // CHECK-RECOVER: Handled main.swift // CHECK-RECOVER: Handled other.swift // RUN: touch -t 201401240005 %t/* -// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/modify-non-primary-files.py" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./other.swift ./main.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-REVERSED %s +// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/modify-non-primary-files.py" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./other.swift ./main.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-REVERSED %s // CHECK-REVERSED: Handled other.swift // CHECK-REVERSED: Handled main.swift @@ -27,7 +27,7 @@ // CHECK-REVERSED: error: input file 'main.swift' was modified during the build // CHECK-REVERSED-NOT: error -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-REVERSED-RECOVER %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-REVERSED-RECOVER %s // CHECK-REVERSED-RECOVER-NOT: Handled other.swift // CHECK-REVERSED-RECOVER: Handled main.swift diff --git a/test/Driver/PrivateDependencies/only-skip-once.swift b/test/Driver/PrivateDependencies/only-skip-once.swift index 2e08f1645cbd0..ce1c43fee78b0 100644 --- a/test/Driver/PrivateDependencies/only-skip-once.swift +++ b/test/Driver/PrivateDependencies/only-skip-once.swift @@ -4,7 +4,7 @@ // RUN: cp -r %S/Inputs/only-skip-once/* %t // RUN: touch -t 201401240005 %t/* -// RUN: cd %t && %target-swiftc_driver -driver-show-job-lifecycle -output-file-map %t/output-file-map.json -incremental -enable-direct-intramodule-dependencies main.swift file1.swift file2.swift -j1 2>%t/stderr.txt | %FileCheck -check-prefix=CHECK-INITIAL %s +// RUN: cd %t && %target-swiftc_driver -driver-show-job-lifecycle -output-file-map %t/output-file-map.json -incremental main.swift file1.swift file2.swift -j1 2>%t/stderr.txt | %FileCheck -check-prefix=CHECK-INITIAL %s // CHECK-INITIAL: Job finished: {compile: main.o <= main.swift} // CHECK-INITIAL: Job finished: {compile: file1.o <= file1.swift} @@ -12,7 +12,7 @@ // CHECK-INITIAL: Job finished: {link: main <= main.o file1.o file2.o} // RUN: touch -t 201401240006 %t/file2.swift -// RUN: cd %t && %target-swiftc_driver -driver-show-job-lifecycle -output-file-map %t/output-file-map.json -incremental -enable-direct-intramodule-dependencies main.swift file1.swift file2.swift -j1 2>%t/stderr.txt | %FileCheck -check-prefix=CHECK-REBUILD %s +// RUN: cd %t && %target-swiftc_driver -driver-show-job-lifecycle -output-file-map %t/output-file-map.json -incremental main.swift file1.swift file2.swift -j1 2>%t/stderr.txt | %FileCheck -check-prefix=CHECK-REBUILD %s // We should skip the main and file1 rebuilds here, but we should only note skipping them _once_ // CHECK-REBUILD: Job finished: {compile: file2.o <= file2.swift} diff --git a/test/Driver/PrivateDependencies/private-after-fine.swift b/test/Driver/PrivateDependencies/private-after-fine.swift index d58ebd5d5da0f..68af702cc8cc8 100644 --- a/test/Driver/PrivateDependencies/private-after-fine.swift +++ b/test/Driver/PrivateDependencies/private-after-fine.swift @@ -6,18 +6,18 @@ // RUN: touch -t 201401240005 %t/*.swift // Generate the build record... -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift ./f.swift ./g.swift -module-name main -j1 -v +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift ./f.swift ./g.swift -module-name main -j1 -v // ...then reset the .swiftdeps files. // RUN: cp -r %S/Inputs/private-after-fine/*.swiftdeps %t -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift ./f.swift ./g.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-INITIAL %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift ./f.swift ./g.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-INITIAL %s // CHECK-INITIAL-NOT: warning // CHECK-INITIAL-NOT: Handled // RUN: touch -t 201401240006 %t/a.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift ./f.swift ./g.swift -module-name main -j1 -v > %t/a.txt 2>&1 +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift ./f.swift ./g.swift -module-name main -j1 -v > %t/a.txt 2>&1 // RUN: %FileCheck -check-prefix=CHECK-A %s < %t/a.txt // RUN: %FileCheck -check-prefix=CHECK-A-NEG %s < %t/a.txt @@ -35,13 +35,13 @@ // RUN: touch -t 201401240005 %t/*.swift // Generate the build record... -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift ./f.swift ./g.swift -module-name main -j1 -v +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift ./f.swift ./g.swift -module-name main -j1 -v // ...then reset the .swiftdeps files. // RUN: cp -r %S/Inputs/private-after-fine/*.swiftdeps %t // RUN: touch -t 201401240006 %t/f.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift ./f.swift ./g.swift -module-name main -j1 -v > %t/f.txt 2>&1 +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift ./f.swift ./g.swift -module-name main -j1 -v > %t/f.txt 2>&1 // RUN: %FileCheck -check-prefix=CHECK-F %s < %t/f.txt // RUN: %FileCheck -check-prefix=CHECK-F-NEG %s < %t/f.txt diff --git a/test/Driver/PrivateDependencies/private-fine.swift b/test/Driver/PrivateDependencies/private-fine.swift index 301263258215d..3e54514c5c527 100644 --- a/test/Driver/PrivateDependencies/private-fine.swift +++ b/test/Driver/PrivateDependencies/private-fine.swift @@ -4,7 +4,7 @@ // RUN: cp -r %S/Inputs/private-fine/* %t // RUN: touch -t 201401240005 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-INITIAL %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-INITIAL %s // CHECK-INITIAL-NOT: warning // CHECK-INITIAL: Handled a.swift @@ -14,7 +14,7 @@ // CHECK-INITIAL: Handled e.swift // RUN: touch -t 201401240006 %t/a.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift -module-name main -j1 -v > %t/a.txt 2>&1 +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift -module-name main -j1 -v > %t/a.txt 2>&1 // RUN: %FileCheck -check-prefix=CHECK-A %s < %t/a.txt // RUN: %FileCheck -check-prefix=CHECK-A-NEG %s < %t/a.txt @@ -25,7 +25,7 @@ // CHECK-A-NEG-NOT: Handled e.swift // RUN: touch -t 201401240006 %t/b.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift -module-name main -j1 -v > %t/b.txt 2>&1 +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift -module-name main -j1 -v > %t/b.txt 2>&1 // RUN: %FileCheck -check-prefix=CHECK-B %s < %t/b.txt // RUN: %FileCheck -check-prefix=CHECK-B-NEG %s < %t/b.txt @@ -36,7 +36,7 @@ // CHECK-B-NEG-NOT: Handled e.swift // RUN: touch -t 201401240006 %t/c.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift -module-name main -j1 -v > %t/c.txt 2>&1 +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift -module-name main -j1 -v > %t/c.txt 2>&1 // RUN: %FileCheck -check-prefix=CHECK-C %s < %t/c.txt // RUN: %FileCheck -check-prefix=CHECK-C-NEG %s < %t/c.txt @@ -47,7 +47,7 @@ // CHECK-C-NEG-NOT: Handled e.swift // RUN: touch -t 201401240006 %t/d.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift -module-name main -j1 -v > %t/d.txt 2>&1 +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift -module-name main -j1 -v > %t/d.txt 2>&1 // RUN: %FileCheck -check-prefix=CHECK-D %s < %t/d.txt // RUN: %FileCheck -check-prefix=CHECK-D-NEG %s < %t/d.txt @@ -58,7 +58,7 @@ // CHECK-D-NEG-NOT: Handled e.swift // RUN: touch -t 201401240006 %t/e.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift -module-name main -j1 -v > %t/e.txt 2>&1 +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift -module-name main -j1 -v > %t/e.txt 2>&1 // RUN: %FileCheck -check-prefix=CHECK-E %s < %t/e.txt // RUN: %FileCheck -check-prefix=CHECK-E-NEG %s < %t/e.txt @@ -75,7 +75,7 @@ // CHECK-E-NEG-NOT: Handled b.swift // RUN: touch -t 201401240007 %t/a.swift %t/e.swift -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents -enable-direct-intramodule-dependencies ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift -module-name main -j1 -v > %t/ae.txt 2>&1 +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/update-dependencies.py;%swift-dependency-tool" -output-file-map %t/output.json -incremental -driver-always-rebuild-dependents ./a.swift ./b.swift ./c.swift ./d.swift ./e.swift -module-name main -j1 -v > %t/ae.txt 2>&1 // RUN: %FileCheck -check-prefix=CHECK-AE %s < %t/ae.txt // RUN: %FileCheck -check-prefix=CHECK-AE-NEG %s < %t/ae.txt diff --git a/test/Driver/PrivateDependencies/whole-module-build-record.swift b/test/Driver/PrivateDependencies/whole-module-build-record.swift index 91432d723da67..5423d32296a49 100644 --- a/test/Driver/PrivateDependencies/whole-module-build-record.swift +++ b/test/Driver/PrivateDependencies/whole-module-build-record.swift @@ -4,7 +4,7 @@ // RUN: cp -r %S/Inputs/one-way/* %t // RUN: touch -t 201401240005 %t/* -// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/fake-build-whole-module.py" -output-file-map %t/output.json -whole-module-optimization -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s +// RUN: cd %t && %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/Inputs/fake-build-whole-module.py" -output-file-map %t/output.json -whole-module-optimization ./main.swift ./other.swift -module-name main -j1 -v 2>&1 | %FileCheck -check-prefix=CHECK-FIRST %s // RUN: %FileCheck -check-prefix=CHECK-RECORD %s < %t/main~buildrecord.swiftdeps // CHECK-FIRST-NOT: warning @@ -15,6 +15,6 @@ // RUN: touch -t 201401240006 %t/other.swift -// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/../Inputs/fail.py" -output-file-map %t/output.json -whole-module-optimization -enable-direct-intramodule-dependencies ./main.swift ./other.swift -module-name main -j1 -v 2>&1 +// RUN: cd %t && not %swiftc_driver -c -driver-use-frontend-path "%{python.unquoted};%S/../Inputs/fail.py" -output-file-map %t/output.json -whole-module-optimization ./main.swift ./other.swift -module-name main -j1 -v 2>&1 // Just don't crash. diff --git a/test/Frontend/Fingerprints/Inputs/class-fingerprint/definesAB-after.swift b/test/Frontend/Fingerprints/Inputs/class-fingerprint/definesAB-after.swift deleted file mode 100644 index 8070b0fb4f9ee..0000000000000 --- a/test/Frontend/Fingerprints/Inputs/class-fingerprint/definesAB-after.swift +++ /dev/null @@ -1,5 +0,0 @@ -class A { - var x = 17 -} -class B { -} diff --git a/test/Frontend/Fingerprints/Inputs/class-fingerprint/definesAB-before.swift b/test/Frontend/Fingerprints/Inputs/class-fingerprint/definesAB-before.swift deleted file mode 100644 index 878a9dc917cb2..0000000000000 --- a/test/Frontend/Fingerprints/Inputs/class-fingerprint/definesAB-before.swift +++ /dev/null @@ -1,4 +0,0 @@ -class A { -} -class B { -} diff --git a/test/Frontend/Fingerprints/Inputs/class-fingerprint/main.swift b/test/Frontend/Fingerprints/Inputs/class-fingerprint/main.swift deleted file mode 100644 index 8b137891791fe..0000000000000 --- a/test/Frontend/Fingerprints/Inputs/class-fingerprint/main.swift +++ /dev/null @@ -1 +0,0 @@ - diff --git a/test/Frontend/Fingerprints/Inputs/class-fingerprint/ofm.json b/test/Frontend/Fingerprints/Inputs/class-fingerprint/ofm.json deleted file mode 100644 index 42d8972a2c390..0000000000000 --- a/test/Frontend/Fingerprints/Inputs/class-fingerprint/ofm.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "main.swift": { - "object": "./main.o", - "swift-dependencies": "./main.swiftdeps" - }, - "definesAB.swift": { - "object": "./definesAB.o", - "swift-dependencies": "./definesAB.swiftdeps" - }, - "usesA.swift": { - "object": "./usesA.o", - "swift-dependencies": "./usesA.swiftdeps" - }, - "usesB.swift": { - "object": "./usesB.o", - "swift-dependencies": "./usesB.swiftdeps" - }, - "": { - "swift-dependencies": "./main~buildrecord.swiftdeps" - } -} - diff --git a/test/Frontend/Fingerprints/Inputs/class-fingerprint/usesA.swift b/test/Frontend/Fingerprints/Inputs/class-fingerprint/usesA.swift deleted file mode 100644 index d947cb11b9830..0000000000000 --- a/test/Frontend/Fingerprints/Inputs/class-fingerprint/usesA.swift +++ /dev/null @@ -1 +0,0 @@ -let a = A() diff --git a/test/Frontend/Fingerprints/Inputs/class-fingerprint/usesB.swift b/test/Frontend/Fingerprints/Inputs/class-fingerprint/usesB.swift deleted file mode 100644 index ecff1d6a467fc..0000000000000 --- a/test/Frontend/Fingerprints/Inputs/class-fingerprint/usesB.swift +++ /dev/null @@ -1 +0,0 @@ -let b = B() diff --git a/test/Frontend/Fingerprints/Inputs/enum-fingerprint/definesAB-after.swift b/test/Frontend/Fingerprints/Inputs/enum-fingerprint/definesAB-after.swift deleted file mode 100644 index 600087c46ac79..0000000000000 --- a/test/Frontend/Fingerprints/Inputs/enum-fingerprint/definesAB-after.swift +++ /dev/null @@ -1,7 +0,0 @@ -enum A { - case a1 - var pi: Int {3} -} -enum B { - case a1 -} diff --git a/test/Frontend/Fingerprints/Inputs/enum-fingerprint/definesAB-before.swift b/test/Frontend/Fingerprints/Inputs/enum-fingerprint/definesAB-before.swift deleted file mode 100644 index 6fd9bc435e51b..0000000000000 --- a/test/Frontend/Fingerprints/Inputs/enum-fingerprint/definesAB-before.swift +++ /dev/null @@ -1,6 +0,0 @@ -enum A { - case a1 -} -enum B { - case a1 -} diff --git a/test/Frontend/Fingerprints/Inputs/enum-fingerprint/main.swift b/test/Frontend/Fingerprints/Inputs/enum-fingerprint/main.swift deleted file mode 100644 index 8b137891791fe..0000000000000 --- a/test/Frontend/Fingerprints/Inputs/enum-fingerprint/main.swift +++ /dev/null @@ -1 +0,0 @@ - diff --git a/test/Frontend/Fingerprints/Inputs/enum-fingerprint/ofm.json b/test/Frontend/Fingerprints/Inputs/enum-fingerprint/ofm.json deleted file mode 100644 index 42d8972a2c390..0000000000000 --- a/test/Frontend/Fingerprints/Inputs/enum-fingerprint/ofm.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "main.swift": { - "object": "./main.o", - "swift-dependencies": "./main.swiftdeps" - }, - "definesAB.swift": { - "object": "./definesAB.o", - "swift-dependencies": "./definesAB.swiftdeps" - }, - "usesA.swift": { - "object": "./usesA.o", - "swift-dependencies": "./usesA.swiftdeps" - }, - "usesB.swift": { - "object": "./usesB.o", - "swift-dependencies": "./usesB.swiftdeps" - }, - "": { - "swift-dependencies": "./main~buildrecord.swiftdeps" - } -} - diff --git a/test/Frontend/Fingerprints/Inputs/enum-fingerprint/usesA.swift b/test/Frontend/Fingerprints/Inputs/enum-fingerprint/usesA.swift deleted file mode 100644 index 4e498195442e0..0000000000000 --- a/test/Frontend/Fingerprints/Inputs/enum-fingerprint/usesA.swift +++ /dev/null @@ -1 +0,0 @@ -let a = A.a1 diff --git a/test/Frontend/Fingerprints/Inputs/enum-fingerprint/usesB.swift b/test/Frontend/Fingerprints/Inputs/enum-fingerprint/usesB.swift deleted file mode 100644 index 99d8c6f8ce72b..0000000000000 --- a/test/Frontend/Fingerprints/Inputs/enum-fingerprint/usesB.swift +++ /dev/null @@ -1 +0,0 @@ -let b = B.a1 diff --git a/test/Frontend/Fingerprints/Inputs/extension-adds-member/definesAB-after.swift b/test/Frontend/Fingerprints/Inputs/extension-adds-member/definesAB-after.swift deleted file mode 100644 index 1ef4d58a82e7d..0000000000000 --- a/test/Frontend/Fingerprints/Inputs/extension-adds-member/definesAB-after.swift +++ /dev/null @@ -1,9 +0,0 @@ -struct A { -} -struct B { -} -extension A { - var x: Int {17} -} -extension B { -} diff --git a/test/Frontend/Fingerprints/Inputs/extension-adds-member/definesAB-before.swift b/test/Frontend/Fingerprints/Inputs/extension-adds-member/definesAB-before.swift deleted file mode 100644 index 9a8e36dc90d98..0000000000000 --- a/test/Frontend/Fingerprints/Inputs/extension-adds-member/definesAB-before.swift +++ /dev/null @@ -1,8 +0,0 @@ -struct A { -} -struct B { -} -extension A { -} -extension B { -} diff --git a/test/Frontend/Fingerprints/Inputs/extension-adds-member/main.swift b/test/Frontend/Fingerprints/Inputs/extension-adds-member/main.swift deleted file mode 100644 index 8b137891791fe..0000000000000 --- a/test/Frontend/Fingerprints/Inputs/extension-adds-member/main.swift +++ /dev/null @@ -1 +0,0 @@ - diff --git a/test/Frontend/Fingerprints/Inputs/extension-adds-member/ofm.json b/test/Frontend/Fingerprints/Inputs/extension-adds-member/ofm.json deleted file mode 100644 index 42d8972a2c390..0000000000000 --- a/test/Frontend/Fingerprints/Inputs/extension-adds-member/ofm.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "main.swift": { - "object": "./main.o", - "swift-dependencies": "./main.swiftdeps" - }, - "definesAB.swift": { - "object": "./definesAB.o", - "swift-dependencies": "./definesAB.swiftdeps" - }, - "usesA.swift": { - "object": "./usesA.o", - "swift-dependencies": "./usesA.swiftdeps" - }, - "usesB.swift": { - "object": "./usesB.o", - "swift-dependencies": "./usesB.swiftdeps" - }, - "": { - "swift-dependencies": "./main~buildrecord.swiftdeps" - } -} - diff --git a/test/Frontend/Fingerprints/Inputs/extension-adds-member/usesA.swift b/test/Frontend/Fingerprints/Inputs/extension-adds-member/usesA.swift deleted file mode 100644 index d947cb11b9830..0000000000000 --- a/test/Frontend/Fingerprints/Inputs/extension-adds-member/usesA.swift +++ /dev/null @@ -1 +0,0 @@ -let a = A() diff --git a/test/Frontend/Fingerprints/Inputs/extension-adds-member/usesB.swift b/test/Frontend/Fingerprints/Inputs/extension-adds-member/usesB.swift deleted file mode 100644 index ecff1d6a467fc..0000000000000 --- a/test/Frontend/Fingerprints/Inputs/extension-adds-member/usesB.swift +++ /dev/null @@ -1 +0,0 @@ -let b = B() diff --git a/test/Frontend/Fingerprints/Inputs/protocol-fingerprint/definesAB-after.swift b/test/Frontend/Fingerprints/Inputs/protocol-fingerprint/definesAB-after.swift deleted file mode 100644 index 572874907e7f4..0000000000000 --- a/test/Frontend/Fingerprints/Inputs/protocol-fingerprint/definesAB-after.swift +++ /dev/null @@ -1,5 +0,0 @@ -protocol A { - var x: Int {get} -} -protocol B { -} diff --git a/test/Frontend/Fingerprints/Inputs/protocol-fingerprint/definesAB-before.swift b/test/Frontend/Fingerprints/Inputs/protocol-fingerprint/definesAB-before.swift deleted file mode 100644 index 4d9f0e46ac19a..0000000000000 --- a/test/Frontend/Fingerprints/Inputs/protocol-fingerprint/definesAB-before.swift +++ /dev/null @@ -1,4 +0,0 @@ -protocol A { -} -protocol B { -} diff --git a/test/Frontend/Fingerprints/Inputs/protocol-fingerprint/main.swift b/test/Frontend/Fingerprints/Inputs/protocol-fingerprint/main.swift deleted file mode 100644 index 8b137891791fe..0000000000000 --- a/test/Frontend/Fingerprints/Inputs/protocol-fingerprint/main.swift +++ /dev/null @@ -1 +0,0 @@ - diff --git a/test/Frontend/Fingerprints/Inputs/protocol-fingerprint/ofm.json b/test/Frontend/Fingerprints/Inputs/protocol-fingerprint/ofm.json deleted file mode 100644 index 42d8972a2c390..0000000000000 --- a/test/Frontend/Fingerprints/Inputs/protocol-fingerprint/ofm.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "main.swift": { - "object": "./main.o", - "swift-dependencies": "./main.swiftdeps" - }, - "definesAB.swift": { - "object": "./definesAB.o", - "swift-dependencies": "./definesAB.swiftdeps" - }, - "usesA.swift": { - "object": "./usesA.o", - "swift-dependencies": "./usesA.swiftdeps" - }, - "usesB.swift": { - "object": "./usesB.o", - "swift-dependencies": "./usesB.swiftdeps" - }, - "": { - "swift-dependencies": "./main~buildrecord.swiftdeps" - } -} - diff --git a/test/Frontend/Fingerprints/Inputs/protocol-fingerprint/usesA.swift b/test/Frontend/Fingerprints/Inputs/protocol-fingerprint/usesA.swift deleted file mode 100644 index 83c36da794bac..0000000000000 --- a/test/Frontend/Fingerprints/Inputs/protocol-fingerprint/usesA.swift +++ /dev/null @@ -1,3 +0,0 @@ -struct SA: A { - var x = 3 -} diff --git a/test/Frontend/Fingerprints/Inputs/protocol-fingerprint/usesB.swift b/test/Frontend/Fingerprints/Inputs/protocol-fingerprint/usesB.swift deleted file mode 100644 index f3a3076b7ac11..0000000000000 --- a/test/Frontend/Fingerprints/Inputs/protocol-fingerprint/usesB.swift +++ /dev/null @@ -1,2 +0,0 @@ -struct SB: B { -} diff --git a/test/Frontend/Fingerprints/Inputs/struct-fingerprint/definesAB-after.swift b/test/Frontend/Fingerprints/Inputs/struct-fingerprint/definesAB-after.swift deleted file mode 100644 index cd62af38d1cbe..0000000000000 --- a/test/Frontend/Fingerprints/Inputs/struct-fingerprint/definesAB-after.swift +++ /dev/null @@ -1,5 +0,0 @@ -struct A { - var x = 17 -} -struct B { -} diff --git a/test/Frontend/Fingerprints/Inputs/struct-fingerprint/definesAB-before.swift b/test/Frontend/Fingerprints/Inputs/struct-fingerprint/definesAB-before.swift deleted file mode 100644 index c085264d20767..0000000000000 --- a/test/Frontend/Fingerprints/Inputs/struct-fingerprint/definesAB-before.swift +++ /dev/null @@ -1,4 +0,0 @@ -struct A { -} -struct B { -} diff --git a/test/Frontend/Fingerprints/Inputs/struct-fingerprint/main.swift b/test/Frontend/Fingerprints/Inputs/struct-fingerprint/main.swift deleted file mode 100644 index 8b137891791fe..0000000000000 --- a/test/Frontend/Fingerprints/Inputs/struct-fingerprint/main.swift +++ /dev/null @@ -1 +0,0 @@ - diff --git a/test/Frontend/Fingerprints/Inputs/struct-fingerprint/ofm.json b/test/Frontend/Fingerprints/Inputs/struct-fingerprint/ofm.json deleted file mode 100644 index 42d8972a2c390..0000000000000 --- a/test/Frontend/Fingerprints/Inputs/struct-fingerprint/ofm.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "main.swift": { - "object": "./main.o", - "swift-dependencies": "./main.swiftdeps" - }, - "definesAB.swift": { - "object": "./definesAB.o", - "swift-dependencies": "./definesAB.swiftdeps" - }, - "usesA.swift": { - "object": "./usesA.o", - "swift-dependencies": "./usesA.swiftdeps" - }, - "usesB.swift": { - "object": "./usesB.o", - "swift-dependencies": "./usesB.swiftdeps" - }, - "": { - "swift-dependencies": "./main~buildrecord.swiftdeps" - } -} - diff --git a/test/Frontend/Fingerprints/Inputs/struct-fingerprint/usesA.swift b/test/Frontend/Fingerprints/Inputs/struct-fingerprint/usesA.swift deleted file mode 100644 index d947cb11b9830..0000000000000 --- a/test/Frontend/Fingerprints/Inputs/struct-fingerprint/usesA.swift +++ /dev/null @@ -1 +0,0 @@ -let a = A() diff --git a/test/Frontend/Fingerprints/Inputs/struct-fingerprint/usesB.swift b/test/Frontend/Fingerprints/Inputs/struct-fingerprint/usesB.swift deleted file mode 100644 index ecff1d6a467fc..0000000000000 --- a/test/Frontend/Fingerprints/Inputs/struct-fingerprint/usesB.swift +++ /dev/null @@ -1 +0,0 @@ -let b = B() diff --git a/test/Frontend/Fingerprints/class-fingerprint.swift b/test/Frontend/Fingerprints/class-fingerprint.swift deleted file mode 100644 index 6bc7fe2437b69..0000000000000 --- a/test/Frontend/Fingerprints/class-fingerprint.swift +++ /dev/null @@ -1,74 +0,0 @@ - -// Test per-type-body fingerprints for classes -// - -// ============================================================================= -// Without the fingerprints -// ============================================================================= - -// Establish status quo - - -// RUN: %empty-directory(%t) -// RUN: cp %S/Inputs/class-fingerprint/* %t -// RUN: cp %t/definesAB{-before,}.swift - -// Seeing weird failure on CI, so set the mod times -// RUN: touch -t 200101010101 %t/*.swift - -// RUN: cd %t && %target-swiftc_driver -disable-type-fingerprints -enable-batch-mode -j2 -incremental -disable-direct-intramodule-dependencies -driver-show-incremental main.swift definesAB.swift usesA.swift usesB.swift -module-name main -output-file-map ofm.json >&output1 - -// only-run-for-debugging: cp %t/usesB.swiftdeps %t/usesB1.swiftdeps - -// Change one type, but uses of all types get recompiled - -// RUN: cp %t/definesAB{-after,}.swift - -// Seeing weird failure on CI, so ensure that definesAB.swift is newer -// RUN: touch -t 200201010101 %t/* -// RUN: touch -t 200101010101 %t/*.swift -// RUN: touch -t 200301010101 %t/definesAB.swift - -// RUN: cd %t && %target-swiftc_driver -disable-type-fingerprints -enable-batch-mode -j2 -incremental -disable-direct-intramodule-dependencies -driver-show-incremental main.swift definesAB.swift usesA.swift usesB.swift -module-name main -output-file-map ofm.json >&output2 - -// Save for debugging: -// only-run-for-debugging: cp %t/usesB.swiftdeps %t/usesB1.swiftdeps - -// RUN: %FileCheck -check-prefix=CHECK-MAINAB-RECOMPILED %s < %t/output2 - -// CHECK-MAINAB-RECOMPILED: Queuing (initial): {compile: definesAB.o <= definesAB.swift} -// CHECK-MAINAB-RECOMPILED: Queuing because of dependencies discovered later: {compile: usesA.o <= usesA.swift} -// CHECK-MAINAB-RECOMPILED: Queuing because of dependencies discovered later: {compile: usesB.o <= usesB.swift} - -// ============================================================================= -// With the fingerprints -// ============================================================================= - -// Establish status quo - -// RUN: %empty-directory(%t) -// RUN: cp %S/Inputs/class-fingerprint/* %t -// RUN: cp %t/definesAB{-before,}.swift - -// Seeing weird failure on CI, so set the mod times -// RUN: touch -t 200101010101 %t/*.swift - -// RUN: cd %t && %target-swiftc_driver -enable-batch-mode -j2 -incremental -disable-direct-intramodule-dependencies -driver-show-incremental main.swift definesAB.swift usesA.swift usesB.swift -module-name main -output-file-map ofm.json >&output3 - -// only-run-for-debugging: cp %t/usesB.swiftdeps %t/usesB3.swiftdeps - - -// Change one type, only uses of that type get recompiled - -// RUN: cp %t/definesAB{-after,}.swift - -// Seeing weird failure on CI, so ensure that definesAB.swift is newer -// RUN: touch -t 200201010101 %t/* -// RUN: touch -t 200101010101 %t/*.swift -// RUN: touch -t 200301010101 %t/definesAB.swift - -// RUN: cd %t && %target-swiftc_driver -enable-batch-mode -j2 -incremental -disable-direct-intramodule-dependencies -driver-show-incremental main.swift definesAB.swift usesA.swift usesB.swift -module-name main -output-file-map ofm.json >&output4 - -// only-run-for-debugging: cp %t/usesB.swiftdeps %t/usesB4.swiftdeps - -// RUN: %FileCheck -check-prefix=CHECK-MAINAB-RECOMPILED %s < %t/output4 diff --git a/test/Frontend/Fingerprints/enum-fingerprint.swift b/test/Frontend/Fingerprints/enum-fingerprint.swift deleted file mode 100644 index cb4e6bbf03b59..0000000000000 --- a/test/Frontend/Fingerprints/enum-fingerprint.swift +++ /dev/null @@ -1,74 +0,0 @@ - -// Test per-type-body fingerprints for enums -// - -// ============================================================================= -// Without the fingerprints -// ============================================================================= - -// Establish status quo - - -// RUN: %empty-directory(%t) -// RUN: cp %S/Inputs/enum-fingerprint/* %t -// RUN: cp %t/definesAB{-before,}.swift - -// Seeing weird failure on CI, so set the mod times -// RUN: touch -t 200101010101 %t/*.swift - -// RUN: cd %t && %target-swiftc_driver -disable-type-fingerprints -enable-batch-mode -j2 -incremental -disable-direct-intramodule-dependencies -driver-show-incremental main.swift definesAB.swift usesA.swift usesB.swift -module-name main -output-file-map ofm.json >&output1 - -// only-run-for-debugging: cp %t/usesB.swiftdeps %t/usesB1.swiftdeps - -// Change one type, but uses of all types get recompiled - -// RUN: cp %t/definesAB{-after,}.swift - -// Seeing weird failure on CI, so ensure that definesAB.swift is newer -// RUN: touch -t 200201010101 %t/* -// RUN: touch -t 200101010101 %t/*.swift -// RUN: touch -t 200301010101 %t/definesAB.swift - -// RUN: cd %t && %target-swiftc_driver -disable-type-fingerprints -enable-batch-mode -j2 -incremental -disable-direct-intramodule-dependencies -driver-show-incremental main.swift definesAB.swift usesA.swift usesB.swift -module-name main -output-file-map ofm.json >&output2 - -// Save for debugging: -// only-run-for-debugging: cp %t/usesB.swiftdeps %t/usesB1.swiftdeps - -// RUN: %FileCheck -check-prefix=CHECK-MAINAB-RECOMPILED %s < %t/output2 - -// CHECK-MAINAB-RECOMPILED: Queuing (initial): {compile: definesAB.o <= definesAB.swift} -// CHECK-MAINAB-RECOMPILED: Queuing because of dependencies discovered later: {compile: usesA.o <= usesA.swift} -// CHECK-MAINAB-RECOMPILED: Queuing because of dependencies discovered later: {compile: usesB.o <= usesB.swift} - -// ============================================================================= -// With the fingerprints -// ============================================================================= - -// Establish status quo - -// RUN: %empty-directory(%t) -// RUN: cp %S/Inputs/enum-fingerprint/* %t -// RUN: cp %t/definesAB{-before,}.swift - -// Seeing weird failure on CI, so set the mod times -// RUN: touch -t 200101010101 %t/*.swift - -// RUN: cd %t && %target-swiftc_driver -enable-batch-mode -j2 -incremental -disable-direct-intramodule-dependencies -driver-show-incremental main.swift definesAB.swift usesA.swift usesB.swift -module-name main -output-file-map ofm.json >&output3 - -// only-run-for-debugging: cp %t/usesB.swiftdeps %t/usesB3.swiftdeps - - -// Change one type, only uses of that type get recompiled - -// RUN: cp %t/definesAB{-after,}.swift - -// Seeing weird failure on CI, so ensure that definesAB.swift is newer -// RUN: touch -t 200201010101 %t/* -// RUN: touch -t 200101010101 %t/*.swift -// RUN: touch -t 200301010101 %t/definesAB.swift - -// RUN: cd %t && %target-swiftc_driver -enable-batch-mode -j2 -incremental -disable-direct-intramodule-dependencies -driver-show-incremental main.swift definesAB.swift usesA.swift usesB.swift -module-name main -output-file-map ofm.json >&output4 - -// only-run-for-debugging: cp %t/usesB.swiftdeps %t/usesB4.swiftdeps - -// RUN: %FileCheck -check-prefix=CHECK-MAINAB-RECOMPILED %s < %t/output4 diff --git a/test/Frontend/Fingerprints/extension-adds-member.swift b/test/Frontend/Fingerprints/extension-adds-member.swift deleted file mode 100644 index a880a3a2d5939..0000000000000 --- a/test/Frontend/Fingerprints/extension-adds-member.swift +++ /dev/null @@ -1,83 +0,0 @@ - -// Test per-type-body fingerprints using simple extensions -// -// If the parser is allowed to use a body fingerprint for an extension -// this test will fail because usesA.swift won't be recompiled for the -// last step. - - -// ============================================================================= -// Without the fingerprints -// ============================================================================= - -// Establish status quo - - -// RUN: %empty-directory(%t) -// RUN: cp %S/Inputs/extension-adds-member/* %t -// RUN: cp %t/definesAB{-before,}.swift - -// Seeing weird failure on CI, so set the mod times -// RUN: touch -t 200101010101 %t/*.swift - - -// RUN: cd %t && %target-swiftc_driver -disable-type-fingerprints -enable-batch-mode -j2 -incremental -disable-direct-intramodule-dependencies -driver-show-incremental main.swift definesAB.swift usesA.swift usesB.swift -module-name main -output-file-map ofm.json >& %t/output1 - - -// Change one type, but uses of all types get recompiled - -// RUN: cp %t/definesAB{-after,}.swift - -// Seeing weird failure on CI, so ensure that definesAB.swift is newer -// RUN: touch -t 200201010101 %t/* -// RUN: touch -t 200101010101 %t/*.swift -// RUN: touch -t 200301010101 %t/definesAB.swift - -// RUN: cd %t && %target-swiftc_driver -disable-type-fingerprints -enable-batch-mode -j2 -incremental -disable-direct-intramodule-dependencies -driver-show-incremental main.swift definesAB.swift usesA.swift usesB.swift -module-name main -output-file-map ofm.json >& %t/output2 - - -// This test checks for the status quo; it would be OK to be more conservative - -// RUN: %FileCheck -check-prefix=CHECK-RECOMPILED-WO %s < %t/output2 -// CHECK-RECOMPILED-WO: {compile: definesAB.o <= definesAB.swift} -// CHECK-RECOMPILED-WO: {compile: usesA.o <= usesA.swift} -// CHECK-RECOMPILED-WO: {compile: usesB.o <= usesB.swift} - -// RUN: %FileCheck -check-prefix=CHECK-NOT-RECOMPILED-WO %s < %t/output2 -// CHECK-NOT-RECOMPILED-WO-NOT: {compile: main.o <= main.swift} - - -// ============================================================================= -// With the fingerprints -// ============================================================================= - -// Establish status quo - -// RUN: %empty-directory(%t) -// RUN: cp %S/Inputs/extension-adds-member/* %t -// RUN: cp %t/definesAB{-before,}.swift - -// Seeing weird failure on CI, so set the mod times -// RUN: touch -t 200101010101 %t/*.swift - -// RUN: cd %t && %target-swiftc_driver -enable-batch-mode -j2 -incremental -disable-direct-intramodule-dependencies -driver-show-incremental main.swift definesAB.swift usesA.swift usesB.swift -module-name main -output-file-map ofm.json >& %t/output3 - -// Change one type, only uses of that type get recompiled - -// RUN: cp %t/definesAB{-after,}.swift - -// Seeing weird failure on CI, so ensure that definesAB.swift is newer -// RUN: touch -t 200201010101 %t/* -// RUN: touch -t 200101010101 %t/*.swift -// RUN: touch -t 200301010101 %t/definesAB.swift - -// RUN: cd %t && %target-swiftc_driver -enable-batch-mode -j2 -incremental -disable-direct-intramodule-dependencies -driver-show-incremental main.swift definesAB.swift usesA.swift usesB.swift -module-name main -output-file-map ofm.json >& %t/output4 - -// RUN: %FileCheck -check-prefix=CHECK-RECOMPILED-W %s < %t/output4 -// RUN: %FileCheck -check-prefix=CHECK-NOT-RECOMPILED-W %s < %t/output4 - -// CHECK-RECOMPILED-W: {compile: definesAB.o <= definesAB.swift} -// CHECK-RECOMPILED-W: {compile: usesA.o <= usesA.swift} - - -// CHECK-NOT-RECOMPILED-W-NOT: {compile: main.o <= main.swift} diff --git a/test/Frontend/Fingerprints/protocol-fingerprint.swift b/test/Frontend/Fingerprints/protocol-fingerprint.swift deleted file mode 100644 index 22bdfb4d90c7b..0000000000000 --- a/test/Frontend/Fingerprints/protocol-fingerprint.swift +++ /dev/null @@ -1,74 +0,0 @@ - -// Test per-type-body fingerprints: the protocol case. -// - -// ============================================================================= -// Without the fingerprints -// ============================================================================= - -// Establish status quo - - -// RUN: %empty-directory(%t) -// RUN: cp %S/Inputs/protocol-fingerprint/* %t -// RUN: cp %t/definesAB{-before,}.swift - -// Seeing weird failure on CI, so set the mod times -// RUN: touch -t 200101010101 %t/*.swift - -// RUN: cd %t && %target-swiftc_driver -disable-type-fingerprints -enable-batch-mode -j2 -incremental -disable-direct-intramodule-dependencies -driver-show-incremental main.swift definesAB.swift usesA.swift usesB.swift -module-name main -output-file-map ofm.json >&output1 - -// only-run-for-debugging: cp %t/usesB.swiftdeps %t/usesB1.swiftdeps - -// Change one type, but uses of all types get recompiled - -// RUN: cp %t/definesAB{-after,}.swift - -// Seeing weird failure on CI, so ensure that definesAB.swift is newer -// RUN: touch -t 200201010101 %t/* -// RUN: touch -t 200101010101 %t/*.swift -// RUN: touch -t 200301010101 %t/definesAB.swift - -// RUN: cd %t && %target-swiftc_driver -disable-type-fingerprints -enable-batch-mode -j2 -incremental -disable-direct-intramodule-dependencies -driver-show-incremental main.swift definesAB.swift usesA.swift usesB.swift -module-name main -output-file-map ofm.json >&output2 - -// Save for debugging: -// only-run-for-debugging: cp %t/usesB.swiftdeps %t/usesB1.swiftdeps - -// RUN: %FileCheck -check-prefix=CHECK-MAINAB-RECOMPILED %s < %t/output2 - -// CHECK-MAINAB-RECOMPILED: Queuing (initial): {compile: definesAB.o <= definesAB.swift} -// CHECK-MAINAB-RECOMPILED: Queuing because of dependencies discovered later: {compile: usesA.o <= usesA.swift} -// CHECK-MAINAB-RECOMPILED: Queuing because of dependencies discovered later: {compile: usesB.o <= usesB.swift} - -// ============================================================================= -// With the fingerprints -// ============================================================================= - -// Establish status quo - -// RUN: %empty-directory(%t) -// RUN: cp %S/Inputs/protocol-fingerprint/* %t -// RUN: cp %t/definesAB{-before,}.swift - -// Seeing weird failure on CI, so set the mod times -// RUN: touch -t 200101010101 %t/*.swift - -// RUN: cd %t && %target-swiftc_driver -enable-batch-mode -j2 -incremental -disable-direct-intramodule-dependencies -driver-show-incremental main.swift definesAB.swift usesA.swift usesB.swift -module-name main -output-file-map ofm.json >&output3 - -// only-run-for-debugging: cp %t/usesB.swiftdeps %t/usesB3.swiftdeps - - -// Change one type, only uses of that type get recompiled - -// RUN: cp %t/definesAB{-after,}.swift - -// Seeing weird failure on CI, so ensure that definesAB.swift is newer -// RUN: touch -t 200201010101 %t/* -// RUN: touch -t 200101010101 %t/*.swift -// RUN: touch -t 200301010101 %t/definesAB.swift - -// RUN: cd %t && %target-swiftc_driver -enable-batch-mode -j2 -incremental -disable-direct-intramodule-dependencies -driver-show-incremental main.swift definesAB.swift usesA.swift usesB.swift -module-name main -output-file-map ofm.json >&output4 - -// only-run-for-debugging: cp %t/usesB.swiftdeps %t/usesB4.swiftdeps - -// RUN: %FileCheck -check-prefix=CHECK-MAINAB-RECOMPILED %s < %t/output4 diff --git a/test/Frontend/Fingerprints/struct-fingerprint.swift b/test/Frontend/Fingerprints/struct-fingerprint.swift deleted file mode 100644 index af8b582818299..0000000000000 --- a/test/Frontend/Fingerprints/struct-fingerprint.swift +++ /dev/null @@ -1,74 +0,0 @@ - -// Test per-type-body fingerprints for structs -// - -// ============================================================================= -// Without the fingerprints -// ============================================================================= - -// Establish status quo - - -// RUN: %empty-directory(%t) -// RUN: cp %S/Inputs/struct-fingerprint/* %t -// RUN: cp %t/definesAB{-before,}.swift - -// Seeing weird failure on CI, so set the mod times -// RUN: touch -t 200101010101 %t/*.swift - -// RUN: cd %t && %target-swiftc_driver -disable-type-fingerprints -enable-batch-mode -j2 -incremental -disable-direct-intramodule-dependencies -driver-show-incremental main.swift definesAB.swift usesA.swift usesB.swift -module-name main -output-file-map ofm.json >&output1 - -// only-run-for-debugging: cp %t/usesB.swiftdeps %t/usesB1.swiftdeps - -// Change one type, but uses of all types get recompiled - -// RUN: cp %t/definesAB{-after,}.swift - -// Seeing weird failure on CI, so ensure that definesAB.swift is newer -// RUN: touch -t 200201010101 %t/* -// RUN: touch -t 200101010101 %t/*.swift -// RUN: touch -t 200301010101 %t/definesAB.swift - -// RUN: cd %t && %target-swiftc_driver -disable-type-fingerprints -enable-batch-mode -j2 -incremental -disable-direct-intramodule-dependencies -driver-show-incremental main.swift definesAB.swift usesA.swift usesB.swift -module-name main -output-file-map ofm.json >&output2 - -// Save for debugging: -// only-run-for-debugging: cp %t/usesB.swiftdeps %t/usesB1.swiftdeps - -// RUN: %FileCheck -check-prefix=CHECK-MAINAB-RECOMPILED %s < %t/output2 - -// CHECK-MAINAB-RECOMPILED: Queuing (initial): {compile: definesAB.o <= definesAB.swift} -// CHECK-MAINAB-RECOMPILED: Queuing because of dependencies discovered later: {compile: usesA.o <= usesA.swift} -// CHECK-MAINAB-RECOMPILED: Queuing because of dependencies discovered later: {compile: usesB.o <= usesB.swift} - -// ============================================================================= -// With the fingerprints -// ============================================================================= - -// Establish status quo - -// RUN: %empty-directory(%t) -// RUN: cp %S/Inputs/struct-fingerprint/* %t -// RUN: cp %t/definesAB{-before,}.swift - -// Seeing weird failure on CI, so set the mod times -// RUN: touch -t 200101010101 %t/*.swift - -// RUN: cd %t && %target-swiftc_driver -enable-batch-mode -j2 -incremental -disable-direct-intramodule-dependencies -driver-show-incremental main.swift definesAB.swift usesA.swift usesB.swift -module-name main -output-file-map ofm.json >&output3 - -// only-run-for-debugging: cp %t/usesB.swiftdeps %t/usesB3.swiftdeps - - -// Change one type, only uses of that type get recompiled - -// RUN: cp %t/definesAB{-after,}.swift - -// Seeing weird failure on CI, so ensure that definesAB.swift is newer -// RUN: touch -t 200201010101 %t/* -// RUN: touch -t 200101010101 %t/*.swift -// RUN: touch -t 200301010101 %t/definesAB.swift - -// RUN: cd %t && %target-swiftc_driver -enable-batch-mode -j2 -incremental -disable-direct-intramodule-dependencies -driver-show-incremental main.swift definesAB.swift usesA.swift usesB.swift -module-name main -output-file-map ofm.json >&output4 - -// only-run-for-debugging: cp %t/usesB.swiftdeps %t/usesB4.swiftdeps - -// RUN: %FileCheck -check-prefix=CHECK-MAINAB-RECOMPILED %s < %t/output4 diff --git a/test/Incremental/Dependencies/Inputs/InterestingType.swift b/test/Incremental/Dependencies/Inputs/InterestingType.swift deleted file mode 100644 index 25defb0e434b6..0000000000000 --- a/test/Incremental/Dependencies/Inputs/InterestingType.swift +++ /dev/null @@ -1,23 +0,0 @@ -protocol IntMaker {} -extension IntMaker { - func make() -> Int { return 0 } -} - -protocol DoubleMaker {} -extension DoubleMaker { - func make() -> Double { return 0 } -} - - -#if OLD -typealias InterestingType = Int -typealias InterestingProto = IntMaker - -#elseif NEW -typealias InterestingType = Double -typealias InterestingProto = DoubleMaker - -#else -typealias InterestingType = ErrorMustSetOLDOrNew - -#endif diff --git a/test/Incremental/Dependencies/private-function-fine.swift b/test/Incremental/Dependencies/private-function-fine.swift deleted file mode 100644 index 81d2594b9a02a..0000000000000 --- a/test/Incremental/Dependencies/private-function-fine.swift +++ /dev/null @@ -1,19 +0,0 @@ -// REQUIRES: shell -// Also uses awk: -// XFAIL OS=windows - -// RUN: %target-swift-frontend -emit-silgen -primary-file %s %S/Inputs/InterestingType.swift -DOLD -disable-direct-intramodule-dependencies -emit-reference-dependencies-path %t.swiftdeps -module-name main | %FileCheck %s -check-prefix=CHECK-OLD -// RUN: %S/../../Inputs/process_fine_grained_swiftdeps.sh %swift-dependency-tool %t.swiftdeps %t-processed.swiftdeps -// RUN: %FileCheck -check-prefix=CHECK-DEPS %s < %t-processed.swiftdeps - -// RUN: %target-swift-frontend -emit-silgen -primary-file %s %S/Inputs/InterestingType.swift -DNEW -disable-direct-intramodule-dependencies -emit-reference-dependencies-path %t.swiftdeps -module-name main | %FileCheck %s -check-prefix=CHECK-NEW -// RUN: %S/../../Inputs/process_fine_grained_swiftdeps.sh %swift-dependency-tool %t.swiftdeps %t-processed.swiftdeps -// RUN: %FileCheck -check-prefix=CHECK-DEPS %s < %t-processed.swiftdeps - -private func testParamType(_: InterestingType) {} - -// CHECK-OLD: sil_global hidden @$s4main1x{{[^ ]+}} : ${{(@[a-zA-Z_]+ )?}}(Int) -> () -// CHECK-NEW: sil_global hidden @$s4main1x{{[^ ]+}} : ${{(@[a-zA-Z_]+ )?}}(Double) -> () -internal var x = testParamType - -// CHECK-DEPS: topLevel interface '' InterestingType false diff --git a/test/Incremental/Dependencies/private-function-return-type-fine.swift b/test/Incremental/Dependencies/private-function-return-type-fine.swift deleted file mode 100644 index 70efbdb644918..0000000000000 --- a/test/Incremental/Dependencies/private-function-return-type-fine.swift +++ /dev/null @@ -1,19 +0,0 @@ -// REQUIRES: shell -// Also uses awk: -// XFAIL OS=windows - -// RUN: %target-swift-frontend -emit-silgen -primary-file %s %S/Inputs/InterestingType.swift -DOLD -disable-direct-intramodule-dependencies -emit-reference-dependencies-path %t.swiftdeps -module-name main | %FileCheck %s -check-prefix=CHECK-OLD -// RUN: %S/../../Inputs/process_fine_grained_swiftdeps.sh %swift-dependency-tool %t.swiftdeps %t-processed.swiftdeps -// RUN: %FileCheck -check-prefix=CHECK-DEPS %s < %t-processed.swiftdeps - -// RUN: %target-swift-frontend -emit-silgen -primary-file %s %S/Inputs/InterestingType.swift -DNEW -disable-direct-intramodule-dependencies -emit-reference-dependencies-path %t.swiftdeps -module-name main | %FileCheck %s -check-prefix=CHECK-NEW -// RUN: %S/../../Inputs/process_fine_grained_swiftdeps.sh %swift-dependency-tool %t.swiftdeps %t-processed.swiftdeps -// RUN: %FileCheck -check-prefix=CHECK-DEPS %s < %t-processed.swiftdeps - -private func testReturnType() -> InterestingType { fatalError() } - -// CHECK-OLD: sil_global @$s4main1x{{[^ ]+}} : $Int -// CHECK-NEW: sil_global @$s4main1x{{[^ ]+}} : $Double -public var x = testReturnType() + 0 - -// CHECK-DEPS: topLevel interface '' InterestingType false diff --git a/test/Incremental/Dependencies/private-protocol-conformer-ext-fine.swift b/test/Incremental/Dependencies/private-protocol-conformer-ext-fine.swift deleted file mode 100644 index 49330bda51a75..0000000000000 --- a/test/Incremental/Dependencies/private-protocol-conformer-ext-fine.swift +++ /dev/null @@ -1,24 +0,0 @@ -// REQUIRES: shell -// Also uses awk: -// XFAIL OS=windows - -// RUN: %target-swift-frontend -emit-silgen -primary-file %s %S/Inputs/InterestingType.swift -DOLD -emit-reference-dependencies-path %t.swiftdeps -module-name main | %FileCheck %s -check-prefix=CHECK-OLD -// RUN: %S/../../Inputs/process_fine_grained_swiftdeps.sh %swift-dependency-tool %t.swiftdeps %t-processed.swiftdeps -// RUN: %FileCheck -check-prefix=CHECK-DEPS %s < %t-processed.swiftdeps - -// RUN: %target-swift-frontend -emit-silgen -primary-file %s %S/Inputs/InterestingType.swift -DNEW -emit-reference-dependencies-path %t.swiftdeps -module-name main | %FileCheck %s -check-prefix=CHECK-NEW -// RUN: %S/../../Inputs/process_fine_grained_swiftdeps.sh %swift-dependency-tool %t.swiftdeps %t-processed.swiftdeps -// RUN: %FileCheck -check-prefix=CHECK-DEPS %s < %t-processed.swiftdeps - -private struct Test {} -extension Test : InterestingProto {} - -// CHECK-OLD: sil_global @$s4main1x{{[^ ]+}} : $Int -// CHECK-NEW: sil_global @$s4main1x{{[^ ]+}} : $Double -public var x = Test().make() + 0 - -// CHECK-DEPS-DAG: topLevel interface '' InterestingProto false - -// CHECK-DEPS-DAG: member interface 4main{{8IntMaker|11DoubleMaker}}P make false - -// CHECK-DEPS-DAG: nominal interface 4main{{8IntMaker|11DoubleMaker}}P '' false diff --git a/test/Incremental/Dependencies/private-protocol-conformer-fine.swift b/test/Incremental/Dependencies/private-protocol-conformer-fine.swift deleted file mode 100644 index 53341cbd708db..0000000000000 --- a/test/Incremental/Dependencies/private-protocol-conformer-fine.swift +++ /dev/null @@ -1,23 +0,0 @@ -// REQUIRES: shell -// Also uses awk: -// XFAIL OS=windows - -// RUN: %target-swift-frontend -emit-silgen -primary-file %s %S/Inputs/InterestingType.swift -DOLD -disable-direct-intramodule-dependencies -emit-reference-dependencies-path %t.swiftdeps -module-name main | %FileCheck %s -check-prefix=CHECK-OLD -// RUN: %S/../../Inputs/process_fine_grained_swiftdeps.sh %swift-dependency-tool %t.swiftdeps %t-processed.swiftdeps -// RUN: %FileCheck -check-prefix=CHECK-DEPS %s < %t-processed.swiftdeps - -// RUN: %target-swift-frontend -emit-silgen -primary-file %s %S/Inputs/InterestingType.swift -DNEW -disable-direct-intramodule-dependencies -emit-reference-dependencies-path %t.swiftdeps -module-name main | %FileCheck %s -check-prefix=CHECK-NEW -// RUN: %S/../../Inputs/process_fine_grained_swiftdeps.sh %swift-dependency-tool %t.swiftdeps %t-processed.swiftdeps -// RUN: %FileCheck -check-prefix=CHECK-DEPS %s < %t-processed.swiftdeps - -private struct Test : InterestingProto {} - -// CHECK-OLD: sil_global @$s4main1x{{[^ ]+}} : $Int -// CHECK-NEW: sil_global @$s4main1x{{[^ ]+}} : $Double -public var x = Test().make() + 0 - -// CHECK-DEPS-DAG: topLevel interface '' InterestingProto false - -// CHECK-DEPS-DAG: member interface 4main{{8IntMaker|11DoubleMaker}}P make false - -// CHECK-DEPS-DAG: nominal interface 4main{{8IntMaker|11DoubleMaker}}P '' false diff --git a/test/Incremental/Dependencies/private-struct-member-fine.swift b/test/Incremental/Dependencies/private-struct-member-fine.swift deleted file mode 100644 index 51bf1a8008d3f..0000000000000 --- a/test/Incremental/Dependencies/private-struct-member-fine.swift +++ /dev/null @@ -1,21 +0,0 @@ -// REQUIRES: shell -// Also uses awk: -// XFAIL OS=windows - -// RUN: %target-swift-frontend -emit-silgen -primary-file %s %S/Inputs/InterestingType.swift -DOLD -disable-direct-intramodule-dependencies -emit-reference-dependencies-path %t.swiftdeps -module-name main | %FileCheck %s -check-prefix=CHECK-OLD -// RUN: %S/../../Inputs/process_fine_grained_swiftdeps.sh %swift-dependency-tool %t.swiftdeps %t-processed.swiftdeps -// RUN: %FileCheck -check-prefix=CHECK-DEPS %s < %t-processed.swiftdeps - -// RUN: %target-swift-frontend -emit-silgen -primary-file %s %S/Inputs/InterestingType.swift -DNEW -disable-direct-intramodule-dependencies -emit-reference-dependencies-path %t.swiftdeps -module-name main | %FileCheck %s -check-prefix=CHECK-NEW -// RUN: %S/../../Inputs/process_fine_grained_swiftdeps.sh %swift-dependency-tool %t.swiftdeps %t-processed.swiftdeps -// RUN: %FileCheck -check-prefix=CHECK-DEPS %s < %t-processed.swiftdeps - -private struct Wrapper { - static func test() -> InterestingType { fatalError() } -} - -// CHECK-OLD: sil_global @$s4main1x{{[^ ]+}} : $Int -// CHECK-NEW: sil_global @$s4main1x{{[^ ]+}} : $Double -public var x = Wrapper.test() + 0 - -/// CHECK-DEPS: topLevel interface '' InterestingType false diff --git a/test/Incremental/Dependencies/private-subscript-fine.swift b/test/Incremental/Dependencies/private-subscript-fine.swift deleted file mode 100644 index 61ab508d1e7bd..0000000000000 --- a/test/Incremental/Dependencies/private-subscript-fine.swift +++ /dev/null @@ -1,21 +0,0 @@ -// REQUIRES: shell -// Also uses awk: -// XFAIL OS=windows - -// RUN: %target-swift-frontend -emit-silgen -primary-file %s %S/Inputs/InterestingType.swift -DOLD -disable-direct-intramodule-dependencies -emit-reference-dependencies-path %t.swiftdeps -module-name main | %FileCheck %s -check-prefix=CHECK-OLD -// RUN: %S/../../Inputs/process_fine_grained_swiftdeps.sh %swift-dependency-tool %t.swiftdeps %t-processed.swiftdeps -// RUN: %FileCheck -check-prefix=CHECK-DEPS %s < %t-processed.swiftdeps - -// RUN: %target-swift-frontend -emit-silgen -primary-file %s %S/Inputs/InterestingType.swift -DNEW -disable-direct-intramodule-dependencies -emit-reference-dependencies-path %t.swiftdeps -module-name main | %FileCheck %s -check-prefix=CHECK-NEW -// RUN: %S/../../Inputs/process_fine_grained_swiftdeps.sh %swift-dependency-tool %t.swiftdeps %t-processed.swiftdeps -// RUN: %FileCheck -check-prefix=CHECK-DEPS %s < %t-processed.swiftdeps - -struct Wrapper { - fileprivate subscript() -> InterestingType { fatalError() } -} - -// CHECK-OLD: sil_global @$s4main1x{{[^ ]+}} : $Int -// CHECK-NEW: sil_global @$s4main1x{{[^ ]+}} : $Double -public var x = Wrapper()[] + 0 - -// CHECK-DEPS: topLevel interface '' InterestingType false diff --git a/test/Incremental/Dependencies/private-typealias-fine.swift b/test/Incremental/Dependencies/private-typealias-fine.swift deleted file mode 100644 index 3b4491ea33677..0000000000000 --- a/test/Incremental/Dependencies/private-typealias-fine.swift +++ /dev/null @@ -1,21 +0,0 @@ -// REQUIRES: shell -// Also uses awk: -// XFAIL OS=windows - -// RUN: %target-swift-frontend -emit-silgen -primary-file %s %S/Inputs/InterestingType.swift -DOLD -disable-direct-intramodule-dependencies -emit-reference-dependencies-path %t.swiftdeps -module-name main | %FileCheck %s -check-prefix=CHECK-OLD -// RUN: %S/../../Inputs/process_fine_grained_swiftdeps.sh %swift-dependency-tool %t.swiftdeps %t-processed.swiftdeps -// RUN: %FileCheck -check-prefix=CHECK-DEPS %s < %t-processed.swiftdeps - -// RUN: %target-swift-frontend -emit-silgen -primary-file %s %S/Inputs/InterestingType.swift -DNEW -disable-direct-intramodule-dependencies -emit-reference-dependencies-path %t.swiftdeps -module-name main | %FileCheck %s -check-prefix=CHECK-NEW -// RUN: %S/../../Inputs/process_fine_grained_swiftdeps.sh %swift-dependency-tool %t.swiftdeps %t-processed.swiftdeps -// RUN: %FileCheck -check-prefix=CHECK-DEPS %s < %t-processed.swiftdeps - -private struct Wrapper { - static func test() -> InterestingType { fatalError() } -} - -// CHECK-OLD: sil_global @$s4main1x{{[^ ]+}} : $Int -// CHECK-NEW: sil_global @$s4main1x{{[^ ]+}} : $Double -public var x = Wrapper.test() + 0 - -// CHECK-DEPS: topLevel interface '' InterestingType false diff --git a/test/Incremental/Dependencies/private-var-fine.swift b/test/Incremental/Dependencies/private-var-fine.swift deleted file mode 100644 index d5d0901800d2b..0000000000000 --- a/test/Incremental/Dependencies/private-var-fine.swift +++ /dev/null @@ -1,20 +0,0 @@ -// REQUIRES: shell -// Also uses awk: -// XFAIL OS=windows - -// RUN: %target-swift-frontend -emit-silgen -primary-file %s %S/Inputs/InterestingType.swift -DOLD -emit-reference-dependencies-path %t.swiftdeps -module-name main -disable-direct-intramodule-dependencies | %FileCheck %s -check-prefix=CHECK-OLD - -// RUN: %S/../../Inputs/process_fine_grained_swiftdeps.sh %swift-dependency-tool %t.swiftdeps %t-processed.swiftdeps - -// RUN: %FileCheck -check-prefix=CHECK-DEPS %s < %t-processed.swiftdeps - -// RUN: %target-swift-frontend -emit-silgen -primary-file %s %S/Inputs/InterestingType.swift -DNEW -emit-reference-dependencies-path %t.swiftdeps -module-name main -disable-direct-intramodule-dependencies | %FileCheck %s -check-prefix=CHECK-NEW -// RUN: %FileCheck -check-prefix=CHECK-DEPS %s < %t-processed.swiftdeps - -private var privateVar: InterestingType { fatalError() } - -// CHECK-OLD: sil_global @$s4main1x{{[^ ]+}} : $Int -// CHECK-NEW: sil_global @$s4main1x{{[^ ]+}} : $Double -public var x = privateVar + 0 - -// CHECK-DEPS: topLevel interface '' InterestingType false diff --git a/test/Incremental/Dependencies/reference-dependencies-consistency-fine.swift b/test/Incremental/Dependencies/reference-dependencies-consistency-fine.swift deleted file mode 100644 index fbe79d58a7190..0000000000000 --- a/test/Incremental/Dependencies/reference-dependencies-consistency-fine.swift +++ /dev/null @@ -1,19 +0,0 @@ -// Some types, such as StringLiteralType, used to be cached in the TypeChecker. -// Consequently, the second primary file (in batch mode) to use that type would -// hit in the cache and no dependency would be recorded. -// This test ensures that this bug stays fixed. -// -// RUN: %empty-directory(%t) -// -// Create two identical inputs, each needing StringLiteralType: -// -// RUN: echo 'fileprivate var v: String { return "\(x)" }; fileprivate let x = "a"' >%t/1.swift -// RUN: echo 'fileprivate var v: String { return "\(x)" }; fileprivate let x = "a"' >%t/2.swift -// -// RUN: %target-swift-frontend -typecheck -disable-direct-intramodule-dependencies -primary-file %t/1.swift -primary-file %t/2.swift -emit-reference-dependencies-path %t/1.swiftdeps -emit-reference-dependencies-path %t/2.swiftdeps -// -// Sequence numbers can vary -// RUN: sed -e 's/[0-9][0-9]*/N/g' -e 's/N, //g' -e '/^ *$/d' <%t/1.swiftdeps | sort >%t/1-processed.swiftdeps -// RUN: sed -e 's/[0-9][0-9]*/N/g' -e 's/N, //g' -e '/^ *$/d' <%t/2.swiftdeps | sort >%t/2-processed.swiftdeps - -// RUN: cmp -s %t/1-processed.swiftdeps %t/2-processed.swiftdeps diff --git a/test/Incremental/Dependencies/reference-dependencies-dynamic-lookup-fine.swift b/test/Incremental/Dependencies/reference-dependencies-dynamic-lookup-fine.swift deleted file mode 100644 index 092b0e2f1e56b..0000000000000 --- a/test/Incremental/Dependencies/reference-dependencies-dynamic-lookup-fine.swift +++ /dev/null @@ -1,73 +0,0 @@ -// REQUIRES: shell -// Also uses awk: -// XFAIL OS=windows - -// RUN: %empty-directory(%t) -// RUN: cp %s %t/main.swift -// RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) -typecheck -primary-file %t/main.swift -disable-direct-intramodule-dependencies -emit-reference-dependencies-path - > %t.swiftdeps - -// Check that the output is deterministic. -// RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) -typecheck -primary-file %t/main.swift -disable-direct-intramodule-dependencies -emit-reference-dependencies-path - > %t-2.swiftdeps -// RUN: %S/../../Inputs/process_fine_grained_swiftdeps.sh %swift-dependency-tool %t.swiftdeps %t-processed.swiftdeps -// RUN: %S/../../Inputs/process_fine_grained_swiftdeps.sh %swift-dependency-tool %t-2.swiftdeps %t-2-processed.swiftdeps -// RUN: diff %t-processed.swiftdeps %t-2-processed.swiftdeps - -// RUN: %FileCheck %s < %t-processed.swiftdeps -// RUN: %FileCheck -check-prefix=NEGATIVE %s < %t-processed.swiftdeps -// RUN: %FileCheck -check-prefix=DUPLICATE %s < %t-processed.swiftdeps - - -// REQUIRES: objc_interop - -import Foundation - -@objc @objcMembers class Base : NSObject { - // CHECK-DAG: dynamicLookup implementation '' foo true - // CHECK-DAG: dynamicLookup interface '' foo true - func foo() {} - - // CHECK-DAG: dynamicLookup implementation '' bar true - // CHECK-DAG: dynamicLookup interface '' bar true - - // DUPLICATE-NOT: dynamicLookup implementation '' bar true - // DUPLICATE: dynamicLookup implementation '' bar true - // DUPLICATE-NOT: dynamicLookup implementation '' bar true - // DUPLICATE-NOT: dynamicLookup interface '' bar true - // DUPLICATE: dynamicLookup interface '' bar true - // DUPLICATE-NOT: dynamicLookup interface '' bar true - func bar(_ x: Int, y: Int) {} - func bar(_ str: String) {} - - // CHECK-DAG: dynamicLookup implementation '' prop true - // CHECK-DAG: dynamicLookup interface '' prop true - var prop: String? - - // CHECK-DAG: dynamicLookup implementation '' unusedProp true - // CHECK-DAG: dynamicLookup interface '' unusedProp true - var unusedProp: Int = 0 - - - // CHECK-DAG: dynamicLookup implementation '' classFunc true - // CHECK-DAG: dynamicLookup interface '' classFunc true - class func classFunc() {} -} - -func getAnyObject() -> AnyObject? { return nil } - -func testDynamicLookup(_ obj: AnyObject) { - // CHECK-DAG: dynamicLookup interface '' description false - _ = obj.description - // CHECK-DAG: dynamicLookup interface '' method false - _ = obj.method(5, with: 5.0 as Double) - - // TODO: unable to resolve ambiguity - // C/HECK-DAG: dynamicLookup interface '' subscript false - // _ = obj[2] as Any - // _ = obj[2] as Any! -} - -// CHECK-DAG: dynamicLookup interface '' counter false -let globalUse = getAnyObject()?.counter - -// NEGATIVE-NOT: dynamicLookup interface '' cat1Method false -// NEGATIVE-NOT: dynamicLookup interface '' unusedProp false diff --git a/test/Incremental/Dependencies/reference-dependencies-errors.swift b/test/Incremental/Dependencies/reference-dependencies-errors.swift deleted file mode 100644 index b7f6e82ab34cc..0000000000000 --- a/test/Incremental/Dependencies/reference-dependencies-errors.swift +++ /dev/null @@ -1,9 +0,0 @@ -// RUN: %empty-directory(%t) -// RUN: cp %s %t/main.swift -// RUN: not %target-swift-frontend -typecheck -disable-direct-intramodule-dependencies -primary-file %t/main.swift -emit-reference-dependencies-path - > %t.swiftdeps - -associatedtype Baz -case bar -deinit {} -extension Foo {} -init() {} diff --git a/test/Incremental/Dependencies/reference-dependencies-fine.swift b/test/Incremental/Dependencies/reference-dependencies-fine.swift deleted file mode 100644 index 81de9852e34d9..0000000000000 --- a/test/Incremental/Dependencies/reference-dependencies-fine.swift +++ /dev/null @@ -1,547 +0,0 @@ -// REQUIRES: shell -// Also uses awk: -// XFAIL OS=windows - -// RUN: %empty-directory(%t) -// RUN: cp %s %t/main.swift - -// Need -fine-grained-dependency-include-intrafile to be invarient wrt type-body-fingerprints enabled/disabled -// RUN: %target-swift-frontend -fine-grained-dependency-include-intrafile -typecheck -disable-direct-intramodule-dependencies -primary-file %t/main.swift %S/../Inputs/reference-dependencies-helper.swift -emit-reference-dependencies-path - > %t.swiftdeps -// Check that the output is deterministic. -// RUN: %target-swift-frontend -fine-grained-dependency-include-intrafile -typecheck -disable-direct-intramodule-dependencies -primary-file %t/main.swift %S/../Inputs/reference-dependencies-helper.swift -emit-reference-dependencies-path - > %t-2.swiftdeps - -// Merge each entry onto one line and sort to overcome order differences -// RUN: %S/../../Inputs/process_fine_grained_swiftdeps.sh %swift-dependency-tool %t.swiftdeps %t-processed.swiftdeps -// RUN: %S/../../Inputs/process_fine_grained_swiftdeps.sh %swift-dependency-tool %t-2.swiftdeps %t-2-processed.swiftdeps -// RUN: diff %t-processed.swiftdeps %t-2-processed.swiftdeps - -// RUN: %FileCheck -check-prefix=NEGATIVE %s < %t-processed.swiftdeps -// RUN: %FileCheck %s -check-prefix=CHECK-TOPLEVEL < %t-processed.swiftdeps -// RUN: %FileCheck %s -check-prefix=CHECK-MEMBER < %t-processed.swiftdeps -// RUN: %FileCheck %s -check-prefix=CHECK-NOMINAL < %t-processed.swiftdeps -// RUN: %FileCheck %s -check-prefix=CHECK-NOMINAL-2 < %t-processed.swiftdeps -// RUN: %FileCheck %s -check-prefix=CHECK-POTENTIALMEMBER < %t-processed.swiftdeps - - -// CHECK-TOPLEVEL-DAG: topLevel interface '' IntWrapper true -// CHECK-TOPLEVEL-DAG: topLevel interface '' '==' true -// CHECK-TOPLEVEL-DAG: topLevel interface '' '<' true -// CHECK-TOPLEVEL-DAG: topLevel interface '' '***' true -// CHECK-TOPLEVEL-DAG: topLevel interface '' ^^^ true -// CHECK-TOPLEVEL-DAG: topLevel interface '' Subclass true -// CHECK-TOPLEVEL-DAG: topLevel interface '' MyArray true -// CHECK-TOPLEVEL-DAG: topLevel interface '' someGlobal true -// CHECK-TOPLEVEL-DAG: topLevel interface '' ExpressibleByExtraFloatLiteral true -// CHECK-TOPLEVEL-DAG: topLevel interface '' ThreeTilde true -// CHECK-TOPLEVEL-DAG: topLevel interface '' overloadedOnProto true -// CHECK-TOPLEVEL-DAG: topLevel interface '' FourTilde true -// CHECK-TOPLEVEL-DAG: topLevel interface '' FourTildeImpl true -// CHECK-TOPLEVEL-DAG: topLevel interface '' FiveTildeImpl true -// CHECK-TOPLEVEL-DAG: topLevel interface '' topLevelComputedProperty true -// CHECK-TOPLEVEL-DAG: topLevel interface '' lookUpManyTopLevelNames true -// CHECK-TOPLEVEL-DAG: topLevel interface '' testOperators true -// CHECK-TOPLEVEL-DAG: topLevel interface '' TopLevelForMemberLookup true -// CHECK-TOPLEVEL-DAG: topLevel interface '' lookUpMembers true -// CHECK-TOPLEVEL-DAG: topLevel interface '' publicUseOfMember true -// CHECK-TOPLEVEL-DAG: topLevel interface '' Outer true -// CHECK-TOPLEVEL-DAG: topLevel interface '' eof true -// CHECK-TOPLEVEL-DAG: topLevel interface '' '~~~' true -// CHECK-TOPLEVEL-DAG: topLevel interface '' '~~~~' true -// CHECK-TOPLEVEL-DAG: topLevel interface '' '~~~~~' true - -// CHECK-TOPLEVEL-DAG: topLevel implementation '' IntWrapper true -// CHECK-TOPLEVEL-DAG: topLevel implementation '' '==' true -// CHECK-TOPLEVEL-DAG: topLevel implementation '' '<' true -// CHECK-TOPLEVEL-DAG: topLevel implementation '' '***' true -// CHECK-TOPLEVEL-DAG: topLevel implementation '' ^^^ true -// CHECK-TOPLEVEL-DAG: topLevel implementation '' Subclass true -// CHECK-TOPLEVEL-DAG: topLevel implementation '' MyArray true -// CHECK-TOPLEVEL-DAG: topLevel implementation '' someGlobal true -// CHECK-TOPLEVEL-DAG: topLevel implementation '' ExpressibleByExtraFloatLiteral true -// CHECK-TOPLEVEL-DAG: topLevel implementation '' ThreeTilde true -// CHECK-TOPLEVEL-DAG: topLevel implementation '' overloadedOnProto true -// CHECK-TOPLEVEL-DAG: topLevel implementation '' FourTilde true -// CHECK-TOPLEVEL-DAG: topLevel implementation '' FourTildeImpl true -// CHECK-TOPLEVEL-DAG: topLevel implementation '' FiveTildeImpl true -// CHECK-TOPLEVEL-DAG: topLevel implementation '' topLevelComputedProperty true -// CHECK-TOPLEVEL-DAG: topLevel implementation '' lookUpManyTopLevelNames true -// CHECK-TOPLEVEL-DAG: topLevel implementation '' testOperators true -// CHECK-TOPLEVEL-DAG: topLevel implementation '' TopLevelForMemberLookup true -// CHECK-TOPLEVEL-DAG: topLevel implementation '' lookUpMembers true -// CHECK-TOPLEVEL-DAG: topLevel implementation '' publicUseOfMember true -// CHECK-TOPLEVEL-DAG: topLevel implementation '' Outer true -// CHECK-TOPLEVEL-DAG: topLevel implementation '' eof true -// CHECK-TOPLEVEL-DAG: topLevel implementation '' '~~~' true -// CHECK-TOPLEVEL-DAG: topLevel implementation '' '~~~~' true -// CHECK-TOPLEVEL-DAG: topLevel implementation '' '~~~~~' true - - -// CHECK-NOMINAL-DAG: nominal interface 4main10IntWrapperV '' true -// CHECK-NOMINAL-DAG: nominal interface 4main10IntWrapperV16InnerForNoReasonV '' true -// CHECK-NOMINAL-DAG: nominal interface 4main8SubclassC '' true -// CHECK-NOMINAL-DAG: nominal interface Sb4mainE11InnerToBoolV '' true -// CHECK-NOMINAL-DAG: nominal interface 4main9Sentinel1V '' true -// CHECK-NOMINAL-DAG: nominal interface 4main9Sentinel2V '' true - -// CHECK-NOMINAL-DAG: nominal implementation 4main10IntWrapperV '' true -// CHECK-NOMINAL-DAG: nominal implementation 4main10IntWrapperV16InnerForNoReasonV '' true -// CHECK-NOMINAL-DAG: nominal implementation 4main8SubclassC '' true -// CHECK-NOMINAL-DAG: nominal implementation Sb4mainE11InnerToBoolV '' true -// CHECK-NOMINAL-DAG: nominal implementation 4main9Sentinel1V '' true -// CHECK-NOMINAL-DAG: nominal implementation 4main9Sentinel2V '' true - - -// CHECK-POTENTIALMEMBER-DAG: potentialMember interface 4main10IntWrapperV '' true -// CHECK-POTENTIALMEMBER-DAG: potentialMember interface 4main10IntWrapperV16InnerForNoReasonV '' true -// CHECK-POTENTIALMEMBER-DAG: potentialMember interface 4main8SubclassC '' true -// CHECK-POTENTIALMEMBER-DAG: potentialMember interface s25ExpressibleByArrayLiteralP '' true -// CHECK-POTENTIALMEMBER-DAG: potentialMember interface Sb '' true -// CHECK-POTENTIALMEMBER-DAG: potentialMember interface Sb4mainE11InnerToBoolV '' true -// CHECK-POTENTIALMEMBER-DAG: potentialMember interface 4main9Sentinel1V '' true -// CHECK-POTENTIALMEMBER-DAG: potentialMember interface 4main9Sentinel2V '' true - -// CHECK-POTENTIALMEMBER-DAG: potentialMember implementation 4main10IntWrapperV '' true -// CHECK-POTENTIALMEMBER-DAG: potentialMember implementation 4main10IntWrapperV16InnerForNoReasonV '' true -// CHECK-POTENTIALMEMBER-DAG: potentialMember implementation 4main8SubclassC '' true -// CHECK-POTENTIALMEMBER-DAG: potentialMember implementation s25ExpressibleByArrayLiteralP '' true -// CHECK-POTENTIALMEMBER-DAG: potentialMember implementation Sb '' true -// CHECK-POTENTIALMEMBER-DAG: potentialMember implementation Sb4mainE11InnerToBoolV '' true -// CHECK-POTENTIALMEMBER-DAG: potentialMember implementation 4main9Sentinel1V '' true -// CHECK-POTENTIALMEMBER-DAG: potentialMember implementation 4main9Sentinel2V '' true - - -// CHECK-MEMBER-DAG: member interface s25ExpressibleByArrayLiteralP useless true -// CHECK-MEMBER-DAG: member interface s25ExpressibleByArrayLiteralP useless2 true -// CHECK-MEMBER-DAG: member interface Sb InnerToBool true -// CHECK-MEMBER-DAG: member interface {{.*[0-9]}}FourTildeImplV '~~~~' true -// CHECK-MEMBER-DAG: member interface {{.*[0-9]}}FiveTildeImplV '~~~~~' true - -// CHECK-MEMBER-DAG: member implementation s25ExpressibleByArrayLiteralP useless true -// CHECK-MEMBER-DAG: member implementation s25ExpressibleByArrayLiteralP useless2 true -// CHECK-MEMBER-DAG: member implementation Sb InnerToBool true -// CHECK-MEMBER-DAG: member implementation {{.*[0-9]}}FourTildeImplV '~~~~' true -// CHECK-MEMBER-DAG: member implementation {{.*[0-9]}}FiveTildeImplV '~~~~~' true - - -// CHECK-TOPLEVEL-DAG: topLevel interface '' Comparable false - -struct IntWrapper: Comparable { - // CHECK-TOPLEVEL-DAG: topLevel interface '' Int false - var value: Int - - struct InnerForNoReason {} - - // CHECK-TOPLEVEL-DAG: topLevel interface '' TypeReferencedOnlyBySubscript false - subscript(_: TypeReferencedOnlyBySubscript) -> Void { return () } - - // CHECK-TOPLEVEL-DAG: topLevel interface '' TypeReferencedOnlyByPrivateSubscript false - private subscript(_: TypeReferencedOnlyByPrivateSubscript) -> Void { return () } -} - -// CHECK-TOPLEVEL-DAG: topLevel interface '' Bool false -func ==(lhs: IntWrapper, rhs: IntWrapper) -> Bool { - return lhs.value == rhs.value -} - -func <(lhs: IntWrapper, rhs: IntWrapper) -> Bool { - return lhs.value < rhs.value -} - -// Test operator lookup without a use of the same operator. -// This is declared in the other file. -prefix func ***(lhs: IntWrapper) {} - -// This is provided as an operator but not implemented here. -prefix operator ^^^ - -// CHECK-TOPLEVEL-DAG: topLevel interface '' ClassFromOtherFile false -class Subclass : ClassFromOtherFile {} - -// CHECK-TOPLEVEL-DAG: topLevel interface '' Array false -typealias MyArray = Array - -// CHECK-TOPLEVEL-DAG: topLevel interface '' ExpressibleByArrayLiteral false -extension ExpressibleByArrayLiteral { - func useless() {} -} - -// CHECK-TOPLEVEL-DAG: topLevel interface '' OtherFileElementType false -extension ExpressibleByArrayLiteral where ArrayLiteralElement == OtherFileElementType { - func useless2() {} -} - -// CHECK-TOPLEVEL-DAG: topLevel interface '' IntegerLiteralType false -let someGlobal = 42 - -extension Bool { - struct InnerToBool {} -} - -// CHECK-TOPLEVEL-DAG: topLevel interface '' ExpressibleByOtherFileAliasForFloatLiteral false -protocol ExpressibleByExtraFloatLiteral - : ExpressibleByOtherFileAliasForFloatLiteral { -} -// CHECK-TOPLEVEL-DAG: topLevel interface '' ExpressibleByUnicodeScalarLiteral false -private protocol ExpressibleByExtraCharLiteral : ExpressibleByUnicodeScalarLiteral { -} - -prefix operator ~~~ -protocol ThreeTilde { - prefix static func ~~~(lhs: Self) -} - -private struct ThreeTildeTypeImpl : ThreeTilde { -} - -func overloadedOnProto(_: T) {} -func overloadedOnProto(_: T) {} - -private prefix func ~~~(_: ThreeTildeTypeImpl) {} - -prefix operator ~~~~ -protocol FourTilde { - prefix static func ~~~~(arg: Self) -} -struct FourTildeImpl : FourTilde {} -extension FourTildeImpl { - prefix static func ~~~~(arg: FourTildeImpl) {} -} - -// ~~~~~ is declared in the other file. -struct FiveTildeImpl {} -extension FiveTildeImpl { - prefix static func ~~~~~(arg: FiveTildeImpl) {} -} - -var topLevelComputedProperty: Bool { - return true -} - -func lookUpManyTopLevelNames() { - // CHECK-TOPLEVEL-DAG: topLevel interface '' Dictionary false - let _: Dictionary = [1:1] - - // CHECK-TOPLEVEL-DAG: topLevel interface '' UInt false - // CHECK-TOPLEVEL-DAG: topLevel interface '' '+' false - let _: UInt = [1, 2].reduce(0, +) - - // CHECK-TOPLEVEL-DAG: topLevel interface '' '-' false - let _: UInt = 3 - 2 - 1 - - // CHECK-TOPLEVEL-DAG: topLevel interface '' AliasFromOtherFile false - let _: AliasFromOtherFile = 1 - - // CHECK-TOPLEVEL-DAG: topLevel interface '' funcFromOtherFile false - funcFromOtherFile() - - // "CInt" is not used as a top-level name here. - // CHECK-TOPLEVEL-DAG: topLevel interface '' StringLiteralType false - // NEGATIVE-NOT: "CInt" - _ = "abc" - - // NEGATIVE-NOT: - "max" - print(Int.max) - - // NEGATIVE-NOT: - "Stride" - let _: Int.Stride = 0 - - // CHECK-TOPLEVEL-DAG: topLevel interface '' OtherFileOuterType false - _ = OtherFileOuterType.InnerType.sharedConstant - _ = OtherFileOuterType.InnerType() - - // CHECK-TOPLEVEL-DAG: topLevel interface '' OtherFileAliasForSecret false - _ = OtherFileAliasForSecret.constant - - // CHECK-TOPLEVEL-DAG: topLevel interface '' otherFileUse false - // CHECK-TOPLEVEL-DAG: topLevel interface '' otherFileGetImpl false - otherFileUse(otherFileGetImpl()) - - // CHECK-TOPLEVEL-DAG: topLevel interface '' otherFileUseGeneric false - // CHECK-TOPLEVEL-DAG: topLevel interface '' otherFileGetImpl2 false - otherFileUseGeneric(otherFileGetImpl2()) - - // CHECK-TOPLEVEL-DAG: topLevel interface '' getOtherFileIntArray false - for _ in getOtherFileIntArray() {} - - // CHECK-TOPLEVEL-DAG: topLevel interface '' getOtherFileEnum false - switch getOtherFileEnum() { - case .Value: - break - default: - break - } - - _ = .Value as OtherFileEnumWrapper.Enum - let _: OtherFileEnumWrapper.Enum = .Value - _ = OtherFileEnumWrapper.Enum.Value - - _ = { (_: PrivateTopLevelStruct.ValueType) -> PrivateTopLevelStruct2.ValueType? in - return nil - } - - typealias X = OtherFileEnumWrapper.Enum - - let value: Any = .Value as X - switch value { - case is OtherFileEnumWrapper.Enum: - break - default: - break - } - - // CHECK-TOPLEVEL-DAG: topLevel interface '' '~=' false - switch 42 { - case 50: - break - default: - break - } - - for _: OtherFileEnumWrapper.Enum in EmptyIterator() {} - - // CHECK-TOPLEVEL-DAG: topLevel interface '' otherFileGetNonImpl false - overloadedOnProto(otherFileGetNonImpl()) -} - -func testOperators(generic: T, specific: Flyswatter) { - // CHECK-TOPLEVEL-DAG: topLevel interface '' '****' false - // CHECK-TOPLEVEL-DAG: topLevel interface '' '*****' false - // CHECK-TOPLEVEL-DAG: topLevel interface '' '******' false - ****generic - generic*****0 - 0******generic - - ****specific - specific*****0 - 0******specific -} - -// CHECK-NOMINAL-DAG: nominal interface 4main23TopLevelForMemberLookupV '' true -// CHECK-NOMINAL-DAG: nominal implementation 4main23TopLevelForMemberLookupV '' true - -struct TopLevelForMemberLookup { - static func m1() {} - static func m2() {} - static func m3() {} -} - -func lookUpMembers() { - TopLevelForMemberLookup.m1() - TopLevelForMemberLookup.m3() -} -public let publicUseOfMember: () = TopLevelForMemberLookup.m2() - -struct Outer { - struct Inner { - func method() { - // CHECK-TOPLEVEL-DAG: topLevel interface '' CUnsignedInt false - let _: CUnsignedInt = 5 - } - } -} - -// CHECK-TOPLEVEL-DAG: topLevel interface '' privateFunc true -// CHECK-TOPLEVEL-DAG: topLevel implementation '' privateFunc true -private func privateFunc() {} - -// CHECK-TOPLEVEL-DAG: topLevel interface '' topLevel1 false -var use1 = topLevel1() -// CHECK-TOPLEVEL-DAG: topLevel interface '' topLevel2 false -var use2 = { topLevel2() } -// CHECK-TOPLEVEL-DAG: topLevel interface '' topLevel3 false -var use3 = { ({ topLevel3() })() } -// CHECK-TOPLEVEL-DAG: topLevel interface '' topLevel4 false -// CHECK-TOPLEVEL-DAG: topLevel interface '' TopLevelProto1 false -struct Use4 : TopLevelProto1 { - var use4 = topLevel4() -} - -// CHECK-TOPLEVEL-DAG: topLevel interface '' '*' false -_ = 42 * 30 - -// FIXME: Incorrectly marked non-private dependencies -// CHECK-TOPLEVEL-DAG: topLevel interface '' topLevel6 false -_ = topLevel6() -// CHECK-TOPLEVEL-DAG: topLevel interface '' topLevel7 false -private var use7 = topLevel7() -// CHECK-TOPLEVEL-DAG: topLevel interface '' topLevel8 false -var use8: Int = topLevel8() -// CHECK-TOPLEVEL-DAG: topLevel interface '' topLevel9 false -var use9 = { () -> Int in return topLevel9() } - - -// CHECK-TOPLEVEL-DAG: topLevel interface '' TopLevelTy1 false -func useTy1(_ x: TopLevelTy1) {} -// CHECK-TOPLEVEL-DAG: topLevel interface '' TopLevelTy2 false -func useTy2() -> TopLevelTy2 {} -// CHECK-TOPLEVEL-DAG: topLevel interface '' TopLevelTy3 false -// CHECK-TOPLEVEL-DAG: topLevel interface '' TopLevelProto2 false -extension Use4 : TopLevelProto2 { - var useTy3: TopLevelTy3? { return nil } -} - -// CHECK-TOPLEVEL-DAG: topLevel interface '' TopLevelStruct false -// CHECK-TOPLEVEL-DAG: topLevel interface '' TopLevelStruct2 false -let useTy4 = { (_: TopLevelStruct.ValueType) -> TopLevelStruct2.ValueType? in - return nil -} -// CHECK-TOPLEVEL-DAG: topLevel interface '' TopLevelStruct3 false -// CHECK-TOPLEVEL-DAG: topLevel interface '' TopLevelStruct4 false -typealias useTy5 = TopLevelStruct3.ValueType -let useTy6: TopLevelStruct4.ValueType = 0 - -struct StructForDeclaringProperties { - // CHECK-TOPLEVEL-DAG: topLevel interface '' TopLevelStruct5 false - var prop: TopLevelStruct5.ValueType { return 0 } -} - -// CHECK-TOPLEVEL-DAG: topLevel interface '' privateTopLevel1 false -func private1(_ a: Int = privateTopLevel1()) {} -// CHECK-TOPLEVEL-DAG: topLevel interface '' privateTopLevel2 false -// CHECK-TOPLEVEL-DAG: topLevel interface '' PrivateProto1 false -private struct Private2 : PrivateProto1 { - var private2 = privateTopLevel2() -} -// CHECK-TOPLEVEL-DAG: topLevel interface '' privateTopLevel3 false -func outerPrivate3() { - let _ = { privateTopLevel3() } -} - -// CHECK-TOPLEVEL-DAG: topLevel interface '' PrivateTopLevelTy1 false -private extension Use4 { - var privateTy1: PrivateTopLevelTy1? { return nil } -} -// CHECK-TOPLEVEL-DAG: topLevel interface '' PrivateTopLevelTy2 false -// CHECK-TOPLEVEL-DAG: topLevel interface '' PrivateProto2 false -extension Private2 : PrivateProto2 { - // FIXME: This test is supposed to check that we get this behavior /without/ - // marking the property private, just from the base type. - private var privateTy2: PrivateTopLevelTy2? { return nil } -} -// CHECK-TOPLEVEL-DAG: topLevel interface '' PrivateTopLevelTy3 false -func outerPrivateTy3() { - func inner(_ a: PrivateTopLevelTy3?) {} - inner(nil) -} -// CHECK-TOPLEVEL-DAG: topLevel interface '' PrivateTopLevelStruct3 false -private typealias PrivateTy4 = PrivateTopLevelStruct3.ValueType -// CHECK-TOPLEVEL-DAG: topLevel interface '' PrivateTopLevelStruct4 false -private func privateTy5(_ x: PrivateTopLevelStruct4.ValueType) -> PrivateTopLevelStruct4.ValueType { - return x -} - -// Deliberately empty. -private struct PrivateTy6 {} -// CHECK-TOPLEVEL-DAG: topLevel interface '' PrivateProto3 false -extension PrivateTy6 : PrivateProto3 {} - -// CHECK-TOPLEVEL-DAG: topLevel interface '' ProtoReferencedOnlyInGeneric false -func genericTest(_: T) {} -// CHECK-TOPLEVEL-DAG: topLevel interface '' ProtoReferencedOnlyInPrivateGeneric false -private func privateGenericTest(_: T) {} - -struct PrivateStoredProperty { - // CHECK-TOPLEVEL-DAG: topLevel interface '' TypeReferencedOnlyByPrivateVar false - private var value: TypeReferencedOnlyByPrivateVar -} -class PrivateStoredPropertyRef { - // CHECK-TOPLEVEL-DAG: topLevel interface '' TypeReferencedOnlyByPrivateClassVar false - private var value: TypeReferencedOnlyByPrivateClassVar? -} - -struct Sentinel1 {} - -private protocol ExtensionProto {} -extension OtherFileTypeToBeExtended : ExtensionProto { - private func foo() {} -} -private extension OtherFileTypeToBeExtended { - var bar: Bool { return false } -} - -struct Sentinel2 {} - - - -// CHECK-MEMBER-DAG: member interface 4main10IntWrapperV Int false -// CHECK-POTENTIALMEMBER-DAG: potentialMember interface SL '' false -// CHECK-POTENTIALMEMBER-DAG: potentialMember interface 4main18ClassFromOtherFileC '' false -// CHECK-MEMBER-DAG: member interface Si max false -// CHECK-POTENTIALMEMBER-DAG: potentialMember interface s25ExpressibleByFloatLiteralP '' false -// CHECK-POTENTIALMEMBER-DAG: potentialMember interface s33ExpressibleByUnicodeScalarLiteralP '' false -// CHECK-MEMBER-DAG: member interface Sx Stride false -// CHECK-MEMBER-DAG: member interface Sa reduce false -// CHECK-POTENTIALMEMBER-DAG: potentialMember interface 4main17OtherFileIntArrayV '' false -// CHECK-MEMBER-DAG: member interface 4main18OtherFileOuterTypeV InnerType false -// CHECK-MEMBER-DAG: member interface 4main18OtherFileOuterTypeV05InnerE0V init false -// CHECK-MEMBER-DAG: member interface 4main18OtherFileOuterTypeV05InnerE0V sharedConstant false -// CHECK-MEMBER-DAG: member interface 4main26OtherFileSecretTypeWrapperV0dE0V constant false -// CHECK-POTENTIALMEMBER-DAG: potentialMember interface 4main25OtherFileProtoImplementorV '' false -// CHECK-POTENTIALMEMBER-DAG: potentialMember interface 4main26OtherFileProtoImplementor2V '' false -// CHECK-MEMBER-DAG: member interface s15EmptyCollectionV8IteratorV init false -// CHECK-MEMBER-DAG: member interface 4main13OtherFileEnumO Value false -// CHECK-MEMBER-DAG: member interface 4main20OtherFileEnumWrapperV Enum false - -// CHECK-MEMBER-DAG: member interface 4main14TopLevelStructV ValueType false -// CHECK-MEMBER-DAG: member interface 4main15TopLevelStruct2V ValueType false -// CHECK-MEMBER-DAG: member interface 4main15TopLevelStruct3V ValueType false -// CHECK-MEMBER-DAG: member interface 4main15TopLevelStruct4V ValueType false -// CHECK-MEMBER-DAG: member interface 4main15TopLevelStruct5V ValueType false -// CHECK-MEMBER-DAG: member interface 4main21PrivateTopLevelStructV ValueType false -// CHECK-MEMBER-DAG: member interface 4main22PrivateTopLevelStruct2V ValueType false -// CHECK-MEMBER-DAG: member interface 4main22PrivateTopLevelStruct3V ValueType false -// CHECK-MEMBER-DAG: member interface 4main22PrivateTopLevelStruct4V ValueType false - -// CHECK-POTENTIALMEMBER-DAG: potentialMember interface 4main14TopLevelProto1P '' false -// CHECK-POTENTIALMEMBER-DAG: potentialMember interface 4main14TopLevelProto2P '' false -// CHECK-POTENTIALMEMBER-DAG: potentialMember interface 4main13PrivateProto1P '' false -// CHECK-POTENTIALMEMBER-DAG: potentialMember interface 4main13PrivateProto2P '' false -// CHECK-POTENTIALMEMBER-DAG: potentialMember interface 4main13PrivateProto3P '' false - -// CHECK-NOMINAL-2-DAG: nominal interface Sa '' false -// CHECK-NOMINAL-2-DAG: nominal interface Sb '' true -// CHECK-NOMINAL-2-DAG: nominal implementation Sb '' true -// CHECK-NOMINAL-2-DAG: nominal interface 4main18ClassFromOtherFileC '' false -// CHECK-NOMINAL-2-DAG: nominal interface SL '' false -// CHECK-NOMINAL-2-DAG: nominal interface s25ExpressibleByFloatLiteralP '' false -// CHECK-NOMINAL-2-DAG: nominal interface s33ExpressibleByUnicodeScalarLiteralP '' false -// CHECK-NOMINAL-2-DAG: nominal interface 4main18OtherFileOuterTypeV05InnerE0V '' false -// CHECK-NOMINAL-2-DAG: nominal interface Si '' false -// CHECK-NOMINAL-2-DAG: nominal interface 4main13OtherFileEnumO '' false -// CHECK-NOMINAL-2-DAG: nominal interface 4main20OtherFileEnumWrapperV '' false -// CHECK-NOMINAL-2-DAG: nominal interface 4main17OtherFileIntArrayV '' false -// CHECK-NOMINAL-2-DAG: nominal interface 4main18OtherFileOuterTypeV '' false -// CHECK-NOMINAL-2-DAG: nominal interface 4main25OtherFileProtoImplementorV '' false -// CHECK-NOMINAL-2-DAG: nominal interface 4main26OtherFileProtoImplementor2V '' false -// CHECK-NOMINAL-2-DAG: nominal interface 4main13PrivateProto1P '' false -// CHECK-NOMINAL-2-DAG: nominal interface 4main13PrivateProto2P '' false -// CHECK-NOMINAL-2-DAG: nominal interface 4main13PrivateProto3P '' false -// CHECK-NOMINAL-2-DAG: nominal interface 4main21PrivateTopLevelStructV '' false -// CHECK-NOMINAL-2-DAG: nominal interface 4main22PrivateTopLevelStruct2V '' false -// CHECK-NOMINAL-2-DAG: nominal interface 4main22PrivateTopLevelStruct3V '' false -// CHECK-NOMINAL-2-DAG: nominal interface 4main22PrivateTopLevelStruct4V '' false -// CHECK-NOMINAL-2-DAG: nominal interface 4main26OtherFileSecretTypeWrapperV0dE0V '' false -// CHECK-NOMINAL-2-DAG: nominal interface Sx '' false -// CHECK-NOMINAL-2-DAG: nominal interface 4main14TopLevelProto1P '' false -// CHECK-NOMINAL-2-DAG: nominal interface 4main14TopLevelProto2P '' false -// CHECK-NOMINAL-2-DAG: nominal interface 4main14TopLevelStructV '' false -// CHECK-NOMINAL-2-DAG: nominal interface 4main15TopLevelStruct2V '' false -// CHECK-NOMINAL-2-DAG: nominal interface 4main15TopLevelStruct3V '' false -// CHECK-NOMINAL-2-DAG: nominal interface 4main15TopLevelStruct4V '' false -// CHECK-NOMINAL-2-DAG: nominal interface 4main15TopLevelStruct5V '' false - -// String is not used anywhere in this file, though a string literal is. -// NEGATIVE-NOT: "String" -// These are used by the other file in this module, but not by this one. -// NEGATIVE-NOT: "ExpressibleByFloatLiteral" -// NEGATIVE-NOT: "Int16" -// NEGATIVE-NOT: "OtherFileProto" -// NEGATIVE-NOT: "OtherFileProtoImplementor" -// NEGATIVE-NOT: "OtherFileProto2" -// NEGATIVE-NOT: "OtherFileProtoImplementor2" - -// OtherFileSecretTypeWrapper is never used directly in this file. -// NEGATIVE-NOT: "OtherFileSecretTypeWrapper" -// NEGATIVE-NOT: "4main26OtherFileSecretTypeWrapperV" - -let eof: () = () diff --git a/test/Incremental/Dependencies/reference-dependencies-members-fine.swift b/test/Incremental/Dependencies/reference-dependencies-members-fine.swift deleted file mode 100644 index 27a25ead26d7b..0000000000000 --- a/test/Incremental/Dependencies/reference-dependencies-members-fine.swift +++ /dev/null @@ -1,67 +0,0 @@ -// REQUIRES: shell -// Also uses awk: -// XFAIL OS=windows - -// RUN: %empty-directory(%t) -// RUN: cp %s %t/main.swift - -// Need -fine-grained-dependency-include-intrafile to be invarient wrt type-body-fingerprints enabled/disabled -// RUN: %target-swift-frontend -fine-grained-dependency-include-intrafile -typecheck -primary-file %t/main.swift %S/../Inputs/reference-dependencies-members-helper.swift -disable-direct-intramodule-dependencies -emit-reference-dependencies-path - > %t.swiftdeps - -// RUN: %target-swift-frontend -fine-grained-dependency-include-intrafile -typecheck -primary-file %t/main.swift %S/../Inputs/reference-dependencies-members-helper.swift -disable-direct-intramodule-dependencies -emit-reference-dependencies-path - > %t-2.swiftdeps -// RUN: %S/../../Inputs/process_fine_grained_swiftdeps.sh %swift-dependency-tool %t.swiftdeps %t-processed.swiftdeps -// RUN: %S/../../Inputs/process_fine_grained_swiftdeps.sh %swift-dependency-tool %t-2.swiftdeps %t-2-processed.swiftdeps - -// RUN: diff %t-processed.swiftdeps %t-2-processed.swiftdeps - -// RUN: %FileCheck -check-prefix=PROVIDES-NOMINAL %s < %t-processed.swiftdeps -// RUN: %FileCheck -check-prefix=PROVIDES-NOMINAL-2 %s < %t-processed.swiftdeps -// RUN: %FileCheck -check-prefix=PROVIDES-MEMBER %s < %t-processed.swiftdeps -// RUN: %FileCheck -check-prefix=PROVIDES-MEMBER-NEGATIVE %s < %t-processed.swiftdeps -// RUN: %FileCheck -check-prefix=DEPENDS-NOMINAL %s < %t-processed.swiftdeps -// RUN: %FileCheck -check-prefix=DEPENDS-MEMBER %s < %t-processed.swiftdeps - -// PROVIDES-NOMINAL-DAG: nominal implementation 4main4BaseC '' true -// PROVIDES-NOMINAL-DAG: nominal interface 4main4BaseC '' true -class Base { - // PROVIDES-MEMBER-DAG: potentialMember implementation 4main4BaseC '' true - // PROVIDES-MEMBER-DAG: potentialMember interface 4main4BaseC '' true - // PROVIDES-MEMBER-NEGATIVE-NOT: member {{.*}} 4main4BaseC {{[^']]+}} true - func foo() {} -} - -// PROVIDES-NOMINAL-DAG: nominal implementation 4main3SubC '' true -// PROVIDES-NOMINAL-DAG: nominal interface 4main3SubC '' true -// DEPENDS-NOMINAL-DAG: nominal interface 4main9OtherBaseC '' false -class Sub : OtherBase { - // PROVIDES-MEMBER-DAG: potentialMember implementation 4main3SubC '' true - // PROVIDES-MEMBER-NEGATIVE-NOT: {{potentialM|m}}}}ember implementation 4main3SubC {{.+}} true - // DEPENDS-MEMBER-DAG: potentialMember interface 4main9OtherBaseC '' false - // DEPENDS-MEMBER-DAG: member interface 4main9OtherBaseC foo false - // DEPENDS-MEMBER-DAG: member interface 4main9OtherBaseC init false - func foo() {} -} - -// PROVIDES-NOMINAL-DAG: nominal implementation 4main9SomeProtoP '' true -// PROVIDES-NOMINAL-DAG: nominal interface 4main9SomeProtoP '' true -// PROVIDES-MEMBER-DAG: potentialMember interface 4main9SomeProtoP '' true -protocol SomeProto {} - -// PROVIDES-NOMINAL-DAG: nominal implementation 4main10OtherClassC '' true -// PROVIDES-NOMINAL-2-DAG: nominal interface 4main10OtherClassC '' true -// PROVIDES-MEMBER-DAG: potentialMember interface 4main10OtherClassC '' true -// DEPENDS-MEMBER-DAG: potentialMember interface 4main10OtherClassC '' true -extension OtherClass : SomeProto {} - -// PROVIDES-NOMINAL-DAG: nominal implementation 4main11OtherStructV '' true -// PROVIDES-NOMINAL-DAG: nominal interface 4main11OtherStructV '' true -extension OtherStruct { - // PROVIDES-MEMBER-DAG: potentialMember interface 4main11OtherStructV '' true - // PROVIDES-MEMBER-DAG: member interface 4main11OtherStructV foo true - // PROVIDES-MEMBER-DAG: member interface 4main11OtherStructV bar true - // PROVIDES-MEMBER-DAG: member interface 4main11OtherStructV baz true - // DEPENDS-MEMBER-DAG: potentialMember interface 4main11OtherStructV '' true - func foo() {} - var bar: () { return () } - private func baz() {} -} diff --git a/test/Incremental/PrivateDependencies/private-function-fine.swift b/test/Incremental/PrivateDependencies/private-function-fine.swift index 701993af63a37..e72ab6f29cc53 100644 --- a/test/Incremental/PrivateDependencies/private-function-fine.swift +++ b/test/Incremental/PrivateDependencies/private-function-fine.swift @@ -2,11 +2,11 @@ // Also uses awk: // XFAIL OS=windows -// RUN: %target-swift-frontend -emit-silgen -primary-file %s %S/Inputs/InterestingType.swift -DOLD -emit-reference-dependencies-path %t.swiftdeps -module-name main -enable-direct-intramodule-dependencies | %FileCheck %s -check-prefix=CHECK-OLD +// RUN: %target-swift-frontend -emit-silgen -primary-file %s %S/Inputs/InterestingType.swift -DOLD -emit-reference-dependencies-path %t.swiftdeps -module-name main | %FileCheck %s -check-prefix=CHECK-OLD // RUN: %S/../../Inputs/process_fine_grained_swiftdeps.sh %swift-dependency-tool %t.swiftdeps %t-processed.swiftdeps // RUN: %FileCheck -check-prefix=CHECK-DEPS %s < %t-processed.swiftdeps -// RUN: %target-swift-frontend -emit-silgen -primary-file %s %S/Inputs/InterestingType.swift -DNEW -emit-reference-dependencies-path %t.swiftdeps -module-name main -enable-direct-intramodule-dependencies | %FileCheck %s -check-prefix=CHECK-NEW +// RUN: %target-swift-frontend -emit-silgen -primary-file %s %S/Inputs/InterestingType.swift -DNEW -emit-reference-dependencies-path %t.swiftdeps -module-name main | %FileCheck %s -check-prefix=CHECK-NEW // RUN: %S/../../Inputs/process_fine_grained_swiftdeps.sh %swift-dependency-tool %t.swiftdeps %t-processed.swiftdeps // RUN: %FileCheck -check-prefix=CHECK-DEPS %s < %t-processed.swiftdeps diff --git a/test/Incremental/PrivateDependencies/private-function-return-type-fine.swift b/test/Incremental/PrivateDependencies/private-function-return-type-fine.swift index b519f71d2972b..f9ffb1d4f3c90 100644 --- a/test/Incremental/PrivateDependencies/private-function-return-type-fine.swift +++ b/test/Incremental/PrivateDependencies/private-function-return-type-fine.swift @@ -2,11 +2,11 @@ // Also uses awk: // XFAIL OS=windows -// RUN: %target-swift-frontend -emit-silgen -primary-file %s %S/Inputs/InterestingType.swift -DOLD -emit-reference-dependencies-path %t.swiftdeps -module-name main -enable-direct-intramodule-dependencies | %FileCheck %s -check-prefix=CHECK-OLD +// RUN: %target-swift-frontend -emit-silgen -primary-file %s %S/Inputs/InterestingType.swift -DOLD -emit-reference-dependencies-path %t.swiftdeps -module-name main | %FileCheck %s -check-prefix=CHECK-OLD // RUN: %S/../../Inputs/process_fine_grained_swiftdeps.sh %swift-dependency-tool %t.swiftdeps %t-processed.swiftdeps // RUN: %FileCheck -check-prefix=CHECK-DEPS %s < %t-processed.swiftdeps -// RUN: %target-swift-frontend -emit-silgen -primary-file %s %S/Inputs/InterestingType.swift -DNEW -emit-reference-dependencies-path %t.swiftdeps -module-name main -enable-direct-intramodule-dependencies | %FileCheck %s -check-prefix=CHECK-NEW +// RUN: %target-swift-frontend -emit-silgen -primary-file %s %S/Inputs/InterestingType.swift -DNEW -emit-reference-dependencies-path %t.swiftdeps -module-name main | %FileCheck %s -check-prefix=CHECK-NEW // RUN: %S/../../Inputs/process_fine_grained_swiftdeps.sh %swift-dependency-tool %t.swiftdeps %t-processed.swiftdeps // RUN: %FileCheck -check-prefix=CHECK-DEPS %s < %t-processed.swiftdeps diff --git a/test/Incremental/PrivateDependencies/private-protocol-conformer-ext-fine.swift b/test/Incremental/PrivateDependencies/private-protocol-conformer-ext-fine.swift index 5a8ad95c8ea38..49330bda51a75 100644 --- a/test/Incremental/PrivateDependencies/private-protocol-conformer-ext-fine.swift +++ b/test/Incremental/PrivateDependencies/private-protocol-conformer-ext-fine.swift @@ -2,11 +2,11 @@ // Also uses awk: // XFAIL OS=windows -// RUN: %target-swift-frontend -emit-silgen -primary-file %s %S/Inputs/InterestingType.swift -DOLD -emit-reference-dependencies-path %t.swiftdeps -module-name main -enable-direct-intramodule-dependencies | %FileCheck %s -check-prefix=CHECK-OLD +// RUN: %target-swift-frontend -emit-silgen -primary-file %s %S/Inputs/InterestingType.swift -DOLD -emit-reference-dependencies-path %t.swiftdeps -module-name main | %FileCheck %s -check-prefix=CHECK-OLD // RUN: %S/../../Inputs/process_fine_grained_swiftdeps.sh %swift-dependency-tool %t.swiftdeps %t-processed.swiftdeps // RUN: %FileCheck -check-prefix=CHECK-DEPS %s < %t-processed.swiftdeps -// RUN: %target-swift-frontend -emit-silgen -primary-file %s %S/Inputs/InterestingType.swift -DNEW -emit-reference-dependencies-path %t.swiftdeps -module-name main -enable-direct-intramodule-dependencies | %FileCheck %s -check-prefix=CHECK-NEW +// RUN: %target-swift-frontend -emit-silgen -primary-file %s %S/Inputs/InterestingType.swift -DNEW -emit-reference-dependencies-path %t.swiftdeps -module-name main | %FileCheck %s -check-prefix=CHECK-NEW // RUN: %S/../../Inputs/process_fine_grained_swiftdeps.sh %swift-dependency-tool %t.swiftdeps %t-processed.swiftdeps // RUN: %FileCheck -check-prefix=CHECK-DEPS %s < %t-processed.swiftdeps diff --git a/test/Incremental/PrivateDependencies/private-protocol-conformer-fine.swift b/test/Incremental/PrivateDependencies/private-protocol-conformer-fine.swift index 7b417286438a3..9642793aee895 100644 --- a/test/Incremental/PrivateDependencies/private-protocol-conformer-fine.swift +++ b/test/Incremental/PrivateDependencies/private-protocol-conformer-fine.swift @@ -2,11 +2,11 @@ // Also uses awk: // XFAIL OS=windows -// RUN: %target-swift-frontend -emit-silgen -primary-file %s %S/Inputs/InterestingType.swift -DOLD -emit-reference-dependencies-path %t.swiftdeps -module-name main -enable-direct-intramodule-dependencies | %FileCheck %s -check-prefix=CHECK-OLD +// RUN: %target-swift-frontend -emit-silgen -primary-file %s %S/Inputs/InterestingType.swift -DOLD -emit-reference-dependencies-path %t.swiftdeps -module-name main | %FileCheck %s -check-prefix=CHECK-OLD // RUN: %S/../../Inputs/process_fine_grained_swiftdeps.sh %swift-dependency-tool %t.swiftdeps %t-processed.swiftdeps // RUN: %FileCheck -check-prefix=CHECK-DEPS %s < %t-processed.swiftdeps -// RUN: %target-swift-frontend -emit-silgen -primary-file %s %S/Inputs/InterestingType.swift -DNEW -emit-reference-dependencies-path %t.swiftdeps -module-name main -enable-direct-intramodule-dependencies | %FileCheck %s -check-prefix=CHECK-NEW +// RUN: %target-swift-frontend -emit-silgen -primary-file %s %S/Inputs/InterestingType.swift -DNEW -emit-reference-dependencies-path %t.swiftdeps -module-name main | %FileCheck %s -check-prefix=CHECK-NEW // RUN: %S/../../Inputs/process_fine_grained_swiftdeps.sh %swift-dependency-tool %t.swiftdeps %t-processed.swiftdeps // RUN: %FileCheck -check-prefix=CHECK-DEPS %s < %t-processed.swiftdeps diff --git a/test/Incremental/PrivateDependencies/private-struct-member-fine.swift b/test/Incremental/PrivateDependencies/private-struct-member-fine.swift index 0f29734faa0a5..629d5e4ed3b10 100644 --- a/test/Incremental/PrivateDependencies/private-struct-member-fine.swift +++ b/test/Incremental/PrivateDependencies/private-struct-member-fine.swift @@ -2,11 +2,11 @@ // Also uses awk: // XFAIL OS=windows -// RUN: %target-swift-frontend -emit-silgen -primary-file %s %S/Inputs/InterestingType.swift -DOLD -emit-reference-dependencies-path %t.swiftdeps -module-name main -enable-direct-intramodule-dependencies | %FileCheck %s -check-prefix=CHECK-OLD +// RUN: %target-swift-frontend -emit-silgen -primary-file %s %S/Inputs/InterestingType.swift -DOLD -emit-reference-dependencies-path %t.swiftdeps -module-name main | %FileCheck %s -check-prefix=CHECK-OLD // RUN: %S/../../Inputs/process_fine_grained_swiftdeps.sh %swift-dependency-tool %t.swiftdeps %t-processed.swiftdeps // RUN: %FileCheck -check-prefix=CHECK-DEPS %s < %t-processed.swiftdeps -// RUN: %target-swift-frontend -emit-silgen -primary-file %s %S/Inputs/InterestingType.swift -DNEW -emit-reference-dependencies-path %t.swiftdeps -module-name main -enable-direct-intramodule-dependencies | %FileCheck %s -check-prefix=CHECK-NEW +// RUN: %target-swift-frontend -emit-silgen -primary-file %s %S/Inputs/InterestingType.swift -DNEW -emit-reference-dependencies-path %t.swiftdeps -module-name main | %FileCheck %s -check-prefix=CHECK-NEW // RUN: %S/../../Inputs/process_fine_grained_swiftdeps.sh %swift-dependency-tool %t.swiftdeps %t-processed.swiftdeps // RUN: %FileCheck -check-prefix=CHECK-DEPS %s < %t-processed.swiftdeps diff --git a/test/Incremental/PrivateDependencies/private-subscript-fine.swift b/test/Incremental/PrivateDependencies/private-subscript-fine.swift index d33ec6232d1e1..8907034198080 100644 --- a/test/Incremental/PrivateDependencies/private-subscript-fine.swift +++ b/test/Incremental/PrivateDependencies/private-subscript-fine.swift @@ -2,11 +2,11 @@ // Also uses awk: // XFAIL OS=windows -// RUN: %target-swift-frontend -emit-silgen -primary-file %s %S/Inputs/InterestingType.swift -DOLD -emit-reference-dependencies-path %t.swiftdeps -module-name main -enable-direct-intramodule-dependencies | %FileCheck %s -check-prefix=CHECK-OLD +// RUN: %target-swift-frontend -emit-silgen -primary-file %s %S/Inputs/InterestingType.swift -DOLD -emit-reference-dependencies-path %t.swiftdeps -module-name main | %FileCheck %s -check-prefix=CHECK-OLD // RUN: %S/../../Inputs/process_fine_grained_swiftdeps.sh %swift-dependency-tool %t.swiftdeps %t-processed.swiftdeps // RUN: %FileCheck -check-prefix=CHECK-DEPS %s < %t-processed.swiftdeps -// RUN: %target-swift-frontend -emit-silgen -primary-file %s %S/Inputs/InterestingType.swift -DNEW -emit-reference-dependencies-path %t.swiftdeps -module-name main -enable-direct-intramodule-dependencies | %FileCheck %s -check-prefix=CHECK-NEW +// RUN: %target-swift-frontend -emit-silgen -primary-file %s %S/Inputs/InterestingType.swift -DNEW -emit-reference-dependencies-path %t.swiftdeps -module-name main | %FileCheck %s -check-prefix=CHECK-NEW // RUN: %S/../../Inputs/process_fine_grained_swiftdeps.sh %swift-dependency-tool %t.swiftdeps %t-processed.swiftdeps // RUN: %FileCheck -check-prefix=CHECK-DEPS %s < %t-processed.swiftdeps diff --git a/test/Incremental/PrivateDependencies/private-typealias-fine.swift b/test/Incremental/PrivateDependencies/private-typealias-fine.swift index 20cabd8eb0464..b9e27e265b69f 100644 --- a/test/Incremental/PrivateDependencies/private-typealias-fine.swift +++ b/test/Incremental/PrivateDependencies/private-typealias-fine.swift @@ -2,11 +2,11 @@ // Also uses awk: // XFAIL OS=windows -// RUN: %target-swift-frontend -emit-silgen -primary-file %s %S/Inputs/InterestingType.swift -DOLD -emit-reference-dependencies-path %t.swiftdeps -module-name main -enable-direct-intramodule-dependencies | %FileCheck %s -check-prefix=CHECK-OLD +// RUN: %target-swift-frontend -emit-silgen -primary-file %s %S/Inputs/InterestingType.swift -DOLD -emit-reference-dependencies-path %t.swiftdeps -module-name main | %FileCheck %s -check-prefix=CHECK-OLD // RUN: %S/../../Inputs/process_fine_grained_swiftdeps.sh %swift-dependency-tool %t.swiftdeps %t-processed.swiftdeps // RUN: %FileCheck -check-prefix=CHECK-DEPS %s < %t-processed.swiftdeps -// RUN: %target-swift-frontend -emit-silgen -primary-file %s %S/Inputs/InterestingType.swift -DNEW -emit-reference-dependencies-path %t.swiftdeps -module-name main -enable-direct-intramodule-dependencies | %FileCheck %s -check-prefix=CHECK-NEW +// RUN: %target-swift-frontend -emit-silgen -primary-file %s %S/Inputs/InterestingType.swift -DNEW -emit-reference-dependencies-path %t.swiftdeps -module-name main | %FileCheck %s -check-prefix=CHECK-NEW // RUN: %S/../../Inputs/process_fine_grained_swiftdeps.sh %swift-dependency-tool %t.swiftdeps %t-processed.swiftdeps // RUN: %FileCheck -check-prefix=CHECK-DEPS %s < %t-processed.swiftdeps diff --git a/test/Incremental/PrivateDependencies/private-var-fine.swift b/test/Incremental/PrivateDependencies/private-var-fine.swift index 3a849b4c1267a..89aafb9452132 100644 --- a/test/Incremental/PrivateDependencies/private-var-fine.swift +++ b/test/Incremental/PrivateDependencies/private-var-fine.swift @@ -2,13 +2,13 @@ // Also uses awk: // XFAIL OS=windows -// RUN: %target-swift-frontend -emit-silgen -primary-file %s %S/Inputs/InterestingType.swift -DOLD -emit-reference-dependencies-path %t.swiftdeps -module-name main -enable-direct-intramodule-dependencies | %FileCheck %s -check-prefix=CHECK-OLD +// RUN: %target-swift-frontend -emit-silgen -primary-file %s %S/Inputs/InterestingType.swift -DOLD -emit-reference-dependencies-path %t.swiftdeps -module-name main | %FileCheck %s -check-prefix=CHECK-OLD // RUN: %S/../../Inputs/process_fine_grained_swiftdeps.sh %swift-dependency-tool %t.swiftdeps %t-processed.swiftdeps // RUN: %FileCheck -check-prefix=CHECK-DEPS %s < %t-processed.swiftdeps -// RUN: %target-swift-frontend -emit-silgen -primary-file %s %S/Inputs/InterestingType.swift -DNEW -emit-reference-dependencies-path %t.swiftdeps -module-name main -enable-direct-intramodule-dependencies | %FileCheck %s -check-prefix=CHECK-NEW +// RUN: %target-swift-frontend -emit-silgen -primary-file %s %S/Inputs/InterestingType.swift -DNEW -emit-reference-dependencies-path %t.swiftdeps -module-name main | %FileCheck %s -check-prefix=CHECK-NEW // RUN: %FileCheck -check-prefix=CHECK-DEPS %s < %t-processed.swiftdeps private var privateVar: InterestingType { fatalError() } diff --git a/test/Incremental/PrivateDependencies/reference-dependencies-consistency-fine.swift b/test/Incremental/PrivateDependencies/reference-dependencies-consistency-fine.swift index 93c9dae3e34c8..669e7753143de 100644 --- a/test/Incremental/PrivateDependencies/reference-dependencies-consistency-fine.swift +++ b/test/Incremental/PrivateDependencies/reference-dependencies-consistency-fine.swift @@ -10,7 +10,7 @@ // RUN: echo 'fileprivate var v: String { return "\(x)" }; fileprivate let x = "a"' >%t/1.swift // RUN: echo 'fileprivate var v: String { return "\(x)" }; fileprivate let x = "a"' >%t/2.swift // -// RUN: %target-swift-frontend -typecheck -primary-file %t/1.swift -primary-file %t/2.swift -emit-reference-dependencies-path %t/1.swiftdeps -emit-reference-dependencies-path %t/2.swiftdeps -enable-direct-intramodule-dependencies +// RUN: %target-swift-frontend -typecheck -primary-file %t/1.swift -primary-file %t/2.swift -emit-reference-dependencies-path %t/1.swiftdeps -emit-reference-dependencies-path %t/2.swiftdeps // // Sequence numbers can vary // RUN: sed -e 's/[0-9][0-9]*/N/g' -e 's/N, //g' -e '/^ *$/d' <%t/1.swiftdeps | sort >%t/1-processed.swiftdeps diff --git a/test/Incremental/PrivateDependencies/reference-dependencies-dynamic-lookup-fine.swift b/test/Incremental/PrivateDependencies/reference-dependencies-dynamic-lookup-fine.swift index c4c42c752ecf7..3c0c74e79c9eb 100644 --- a/test/Incremental/PrivateDependencies/reference-dependencies-dynamic-lookup-fine.swift +++ b/test/Incremental/PrivateDependencies/reference-dependencies-dynamic-lookup-fine.swift @@ -4,10 +4,10 @@ // RUN: %empty-directory(%t) // RUN: cp %s %t/main.swift -// RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) -typecheck -primary-file %t/main.swift -emit-reference-dependencies-path - -enable-direct-intramodule-dependencies > %t.swiftdeps +// RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) -typecheck -primary-file %t/main.swift -emit-reference-dependencies-path - > %t.swiftdeps // Check that the output is deterministic. -// RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) -typecheck -primary-file %t/main.swift -emit-reference-dependencies-path - -enable-direct-intramodule-dependencies > %t-2.swiftdeps +// RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) -typecheck -primary-file %t/main.swift -emit-reference-dependencies-path - > %t-2.swiftdeps // RUN: %S/../../Inputs/process_fine_grained_swiftdeps.sh %swift-dependency-tool %t.swiftdeps %t-processed.swiftdeps // RUN: %S/../../Inputs/process_fine_grained_swiftdeps.sh %swift-dependency-tool %t-2.swiftdeps %t-2-processed.swiftdeps // RUN: diff %t-processed.swiftdeps %t-2-processed.swiftdeps diff --git a/test/Incremental/PrivateDependencies/reference-dependencies-errors.swift b/test/Incremental/PrivateDependencies/reference-dependencies-errors.swift index fcf80f6129fde..72dc06066331f 100644 --- a/test/Incremental/PrivateDependencies/reference-dependencies-errors.swift +++ b/test/Incremental/PrivateDependencies/reference-dependencies-errors.swift @@ -1,6 +1,6 @@ // RUN: %empty-directory(%t) // RUN: cp %s %t/main.swift -// RUN: not %target-swift-frontend -typecheck -primary-file %t/main.swift -emit-reference-dependencies-path - -enable-direct-intramodule-dependencies > %t.swiftdeps +// RUN: not %target-swift-frontend -typecheck -primary-file %t/main.swift -emit-reference-dependencies-path - > %t.swiftdeps associatedtype Baz case bar diff --git a/test/Incremental/PrivateDependencies/reference-dependencies-fine.swift b/test/Incremental/PrivateDependencies/reference-dependencies-fine.swift index eb05e967c9c4f..3c76ee51fa7a1 100644 --- a/test/Incremental/PrivateDependencies/reference-dependencies-fine.swift +++ b/test/Incremental/PrivateDependencies/reference-dependencies-fine.swift @@ -6,9 +6,9 @@ // RUN: cp %s %t/main.swift // Need -fine-grained-dependency-include-intrafile to be invarient wrt type-body-fingerprints enabled/disabled -// RUN: %target-swift-frontend -fine-grained-dependency-include-intrafile -typecheck -primary-file %t/main.swift %S/../Inputs/reference-dependencies-helper.swift -emit-reference-dependencies-path - -enable-direct-intramodule-dependencies > %t.swiftdeps +// RUN: %target-swift-frontend -fine-grained-dependency-include-intrafile -typecheck -primary-file %t/main.swift %S/../Inputs/reference-dependencies-helper.swift -emit-reference-dependencies-path - > %t.swiftdeps // Check that the output is deterministic. -// RUN: %target-swift-frontend -fine-grained-dependency-include-intrafile -typecheck -primary-file %t/main.swift %S/../Inputs/reference-dependencies-helper.swift -emit-reference-dependencies-path - -enable-direct-intramodule-dependencies > %t-2.swiftdeps +// RUN: %target-swift-frontend -fine-grained-dependency-include-intrafile -typecheck -primary-file %t/main.swift %S/../Inputs/reference-dependencies-helper.swift -emit-reference-dependencies-path - > %t-2.swiftdeps // Merge each entry onto one line and sort to overcome order differences // RUN: %S/../../Inputs/process_fine_grained_swiftdeps.sh %swift-dependency-tool %t.swiftdeps %t-processed.swiftdeps diff --git a/test/Incremental/PrivateDependencies/reference-dependencies-members-fine.swift b/test/Incremental/PrivateDependencies/reference-dependencies-members-fine.swift index 84e8f31141749..01e06c2dc6cb7 100644 --- a/test/Incremental/PrivateDependencies/reference-dependencies-members-fine.swift +++ b/test/Incremental/PrivateDependencies/reference-dependencies-members-fine.swift @@ -6,9 +6,9 @@ // RUN: cp %s %t/main.swift // Need -fine-grained-dependency-include-intrafile to be invarient wrt type-body-fingerprints enabled/disabled -// RUN: %target-swift-frontend -fine-grained-dependency-include-intrafile -typecheck -primary-file %t/main.swift %S/../Inputs/reference-dependencies-members-helper.swift -emit-reference-dependencies-path - -enable-direct-intramodule-dependencies > %t.swiftdeps +// RUN: %target-swift-frontend -fine-grained-dependency-include-intrafile -typecheck -primary-file %t/main.swift %S/../Inputs/reference-dependencies-members-helper.swift -emit-reference-dependencies-path - > %t.swiftdeps -// RUN: %target-swift-frontend -fine-grained-dependency-include-intrafile -typecheck -primary-file %t/main.swift %S/../Inputs/reference-dependencies-members-helper.swift -emit-reference-dependencies-path - -enable-direct-intramodule-dependencies > %t-2.swiftdeps +// RUN: %target-swift-frontend -fine-grained-dependency-include-intrafile -typecheck -primary-file %t/main.swift %S/../Inputs/reference-dependencies-members-helper.swift -emit-reference-dependencies-path - > %t-2.swiftdeps // RUN: %S/../../Inputs/process_fine_grained_swiftdeps.sh %swift-dependency-tool %t.swiftdeps %t-processed.swiftdeps // RUN: %S/../../Inputs/process_fine_grained_swiftdeps.sh %swift-dependency-tool %t-2.swiftdeps %t-2-processed.swiftdeps diff --git a/test/Incremental/Verifier/multi-file-private/main.swift b/test/Incremental/Verifier/multi-file-private/main.swift index 7c99c41979e90..613e9530e80e8 100644 --- a/test/Incremental/Verifier/multi-file-private/main.swift +++ b/test/Incremental/Verifier/multi-file-private/main.swift @@ -1,7 +1,7 @@ // RUN: %empty-directory(%t) // RUN: %{python} %S/../gen-output-file-map.py -o %t %S/Inputs -r %t.resp -// RUN: cd %t && %target-swiftc_driver -c -output-file-map %t/output.json -incremental -module-name main -enable-direct-intramodule-dependencies -verify-incremental-dependencies @%t.resp -// RUN: cd %t && %target-swiftc_driver -c -output-file-map %t/output.json -incremental -enable-batch-mode -module-name main -enable-direct-intramodule-dependencies -verify-incremental-dependencies @%t.resp +// RUN: cd %t && %target-swiftc_driver -c -output-file-map %t/output.json -incremental -module-name main -verify-incremental-dependencies @%t.resp +// RUN: cd %t && %target-swiftc_driver -c -output-file-map %t/output.json -incremental -enable-batch-mode -module-name main -verify-incremental-dependencies @%t.resp // N.B. These tests are meant to continue to expand to more and more input files // as more kinds of cross-type dependencies are discovered. This will naturally diff --git a/test/Incremental/Verifier/multi-file/Inputs/Base.swift b/test/Incremental/Verifier/multi-file/Inputs/Base.swift deleted file mode 100644 index d58f36b2ec9a1..0000000000000 --- a/test/Incremental/Verifier/multi-file/Inputs/Base.swift +++ /dev/null @@ -1,39 +0,0 @@ -open class OpenBase {} // expected-provides {{OpenBase}} -// expected-cascading-member {{main.OpenBase.init}} -// expected-private-member {{main.OpenBase.deinit}} - -public class PublicBase {} // expected-provides {{PublicBase}} -// expected-cascading-member {{main.PublicBase.init}} -// expected-private-member {{main.PublicBase.deinit}} - -internal class InternalBase {} // expected-provides {{InternalBase}} -// expected-cascading-member {{main.InternalBase.init}} -// expected-private-member {{main.InternalBase.deinit}} - -fileprivate class FilePrivateBase {} // expected-provides {{FilePrivateBase}} -// expected-cascading-member {{main.FilePrivateBase.init}} -// expected-private-member {{main.FilePrivateBase.deinit}} - -private class PrivateBase {} // expected-provides {{PrivateBase}} -// expected-cascading-member {{main.PrivateBase.init}} -// expected-private-member {{main.PrivateBase.deinit}} - -final fileprivate class FilePrivateSubclass: FilePrivateBase {} // expected-provides {{FilePrivateSubclass}} expected-private-superclass {{main.FilePrivateBase}} -// expected-cascading-member {{main.FilePrivateSubclass.init}} -// expected-private-member {{main.FilePrivateSubclass.deinit}} - -final private class PrivateSubclass: PrivateBase {} // expected-provides {{PrivateSubclass}} expected-private-superclass {{main.PrivateBase}} -// expected-cascading-member {{main.PrivateSubclass.init}} -// expected-private-member {{main.PrivateSubclass.deinit}} - -public protocol PublicBaseProtocol {} // expected-provides {{PublicBaseProtocol}} - -internal protocol InternalBaseProtocol {} // expected-provides {{InternalBaseProtocol}} - -fileprivate protocol FilePrivateBaseProtocol {} // expected-provides {{FilePrivateBaseProtocol}} - -private protocol PrivateBaseProtocol {} // expected-provides {{PrivateBaseProtocol}} - -fileprivate protocol FilePrivateProtocol: FilePrivateBaseProtocol {} // expected-provides {{FilePrivateProtocol}} expected-private-conformance {{main.FilePrivateBaseProtocol}} - -private protocol PrivateProtocol: PrivateBaseProtocol {} // expected-provides {{PrivateProtocol}} expected-private-conformance {{main.PrivateBaseProtocol}} diff --git a/test/Incremental/Verifier/multi-file/Inputs/Derived.swift b/test/Incremental/Verifier/multi-file/Inputs/Derived.swift deleted file mode 100644 index 681779673e085..0000000000000 --- a/test/Incremental/Verifier/multi-file/Inputs/Derived.swift +++ /dev/null @@ -1,30 +0,0 @@ -final public class OpenSubclass: OpenBase {} // expected-provides {{OpenSubclass}} expected-cascading-superclass {{main.OpenBase}} -// expected-provides {{OpenBase}} -// expected-cascading-member {{main.OpenBase.init}} -// expected-private-member {{main.OpenBase.deinit}} -// expected-cascading-member {{main.OpenSubclass.init}} -// expected-private-member {{main.OpenSubclass.deinit}} - -final public class PublicSubclass: PublicBase {} // expected-provides {{PublicSubclass}} expected-cascading-superclass {{main.PublicBase}} -// expected-provides {{PublicBase}} -// expected-cascading-member {{main.PublicBase.init}} -// expected-private-member {{main.PublicBase.deinit}} -// expected-cascading-member {{main.PublicSubclass.init}} -// expected-private-member {{main.PublicSubclass.deinit}} - -final internal class InternalSubclass: InternalBase {} // expected-provides {{InternalSubclass}} expected-cascading-superclass {{main.InternalBase}} -// expected-provides {{InternalBase}} -// expected-cascading-member {{main.InternalBase.init}} -// expected-private-member {{main.InternalBase.deinit}} -// expected-cascading-member {{main.InternalSubclass.init}} -// expected-private-member {{main.InternalSubclass.deinit}} - -public protocol PublicProtocol: PublicBaseProtocol {} -// expected-provides {{PublicProtocol}} -// expected-provides {{PublicBaseProtocol}} -// expected-cascading-conformance {{main.PublicBaseProtocol}} - -internal protocol InternalProtocol: InternalBaseProtocol {} -// expected-provides {{InternalProtocol}} -// expected-provides {{InternalBaseProtocol}} -// expected-cascading-conformance {{main.InternalBaseProtocol}} diff --git a/test/Incremental/Verifier/multi-file/Inputs/Inner.swift b/test/Incremental/Verifier/multi-file/Inputs/Inner.swift deleted file mode 100644 index 88bfc015a4fd8..0000000000000 --- a/test/Incremental/Verifier/multi-file/Inputs/Inner.swift +++ /dev/null @@ -1,14 +0,0 @@ -// expected-provides{{Inner}} -// expected-cascading-member{{main.Inner.init}} -public struct Inner {} - -// expected-provides{{Foo}} -public typealias Foo = () -> (Inner) - -// expected-provides{{blah}} -public func blah(foo: Foo) {} - -// expected-provides{{defaultFoo}} -public var defaultFoo: Foo = { - return Inner() -} diff --git a/test/Incremental/Verifier/multi-file/Inputs/UsesInner.swift b/test/Incremental/Verifier/multi-file/Inputs/UsesInner.swift deleted file mode 100644 index 3a1c5ab4d8ad9..0000000000000 --- a/test/Incremental/Verifier/multi-file/Inputs/UsesInner.swift +++ /dev/null @@ -1,14 +0,0 @@ -// FIXME: This dependency ONLY occurs with private dependencies. Otherwise we -// rely on the interface hash changing to cause this file to be rebuilt, which -// will *not* work with type fingerprints enabled. -// See rdar://63984581 -// fixme-provides{{Inner}} - -// expected-provides{{defaultFoo}} -// expected-provides{{blah}} -// expected-provides{{Optional}} -// expected-provides{{Foo}} -// expected-provides{{??}} -public func blah(foo: Optional) { - blah(foo: foo ?? defaultFoo) -} diff --git a/test/Incremental/Verifier/multi-file/main.swift b/test/Incremental/Verifier/multi-file/main.swift deleted file mode 100644 index 24904da530e38..0000000000000 --- a/test/Incremental/Verifier/multi-file/main.swift +++ /dev/null @@ -1,8 +0,0 @@ -// RUN: %empty-directory(%t) -// RUN: %{python} %S/../gen-output-file-map.py -o %t %S/Inputs -r %t.resp -// RUN: cd %t && %target-swiftc_driver -c -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -module-name main -verify-incremental-dependencies @%t.resp -// RUN: cd %t && %target-swiftc_driver -c -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -enable-batch-mode -module-name main -verify-incremental-dependencies @%t.resp - -// N.B. These tests are meant to continue to expand to more and more input files -// as more kinds of cross-type dependencies are discovered. This will naturally -// increase the chance that input ordering bugs will be surfaced by batch mode. diff --git a/test/Incremental/Verifier/single-file-private/AnyObject.swift b/test/Incremental/Verifier/single-file-private/AnyObject.swift index ff93b85405252..ae7f180f53377 100644 --- a/test/Incremental/Verifier/single-file-private/AnyObject.swift +++ b/test/Incremental/Verifier/single-file-private/AnyObject.swift @@ -9,7 +9,7 @@ // RUN: %empty-directory(%t) // RUN: %{python} %S/../gen-output-file-map.py -o %t %S -// RUN: cd %t && %target-swiftc_driver -typecheck -output-file-map %t/output.json -incremental -module-name main -enable-direct-intramodule-dependencies -verify-incremental-dependencies %s +// RUN: cd %t && %target-swiftc_driver -typecheck -output-file-map %t/output.json -incremental -module-name main -verify-incremental-dependencies %s import Foundation diff --git a/test/Incremental/Verifier/single-file-private/Conformances.swift b/test/Incremental/Verifier/single-file-private/Conformances.swift index 0e7260878b25f..31359e1c1650f 100644 --- a/test/Incremental/Verifier/single-file-private/Conformances.swift +++ b/test/Incremental/Verifier/single-file-private/Conformances.swift @@ -1,6 +1,6 @@ // RUN: %empty-directory(%t) // RUN: %{python} %S/../gen-output-file-map.py -o %t %S -// RUN: cd %t && %target-swiftc_driver -typecheck -output-file-map %t/output.json -incremental -module-name main -enable-direct-intramodule-dependencies -verify-incremental-dependencies %s +// RUN: cd %t && %target-swiftc_driver -typecheck -output-file-map %t/output.json -incremental -module-name main -verify-incremental-dependencies %s public protocol PublicProtocol { } // expected-provides {{PublicProtocol}} internal protocol InternalProtocol { } // expected-provides {{InternalProtocol}} diff --git a/test/Incremental/Verifier/single-file/Conformances.swift b/test/Incremental/Verifier/single-file/Conformances.swift deleted file mode 100644 index 6da7ff91ffb13..0000000000000 --- a/test/Incremental/Verifier/single-file/Conformances.swift +++ /dev/null @@ -1,28 +0,0 @@ -// RUN: %empty-directory(%t) -// RUN: %{python} %S/../gen-output-file-map.py -o %t %S -// RUN: cd %t && %target-swiftc_driver -typecheck -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -module-name main -verify-incremental-dependencies %s - -public protocol PublicProtocol { } // expected-provides {{PublicProtocol}} -internal protocol InternalProtocol { } // expected-provides {{InternalProtocol}} -fileprivate protocol FilePrivateProtocol { } // expected-provides {{FilePrivateProtocol}} -private protocol PrivateProtocol { } // expected-provides {{PrivateProtocol}} - -public struct PublicConformance { } // expected-provides {{PublicConformance}} -// expected-cascading-member {{main.PublicConformance.init}} - -// expected-cascading-conformance {{main.PublicConformance}} -extension PublicConformance: PublicProtocol { } -extension PublicConformance: InternalProtocol { } -extension PublicConformance: FilePrivateProtocol { } -extension PublicConformance: PrivateProtocol { } - - -private struct PrivateConformance { } // expected-provides {{PrivateConformance}} -// expected-cascading-member {{main.PrivateConformance.init}} - -// expected-cascading-conformance {{main.PrivateConformance}} -extension PrivateConformance: PublicProtocol { } // expected-cascading-conformance {{main.PublicProtocol}} -extension PrivateConformance: InternalProtocol { } // expected-cascading-conformance {{main.InternalProtocol}} -extension PrivateConformance: FilePrivateProtocol { } // expected-cascading-conformance {{main.FilePrivateProtocol}} -extension PrivateConformance: PrivateProtocol { } // expected-cascading-conformance {{main.PrivateProtocol}} - diff --git a/test/Incremental/superfluous-cascade.swift b/test/Incremental/superfluous-cascade.swift index a7abedafcdf88..06d3f677d4c40 100644 --- a/test/Incremental/superfluous-cascade.swift +++ b/test/Incremental/superfluous-cascade.swift @@ -1,31 +1,3 @@ -// ============================================================================= -// Without private dependencies -// ============================================================================= - -// Establish status quo - -// RUN: %empty-directory(%t) -// RUN: cp %S/Inputs/superfluous-cascade/* %t -// RUN: cp %t/definesPoint{-before,}.swift -// RUN: touch -t 200101010101 %t/*.swift - -// RUN: cd %t && %target-swiftc_driver -enable-batch-mode -j2 -incremental -disable-direct-intramodule-dependencies -driver-show-incremental main.swift definesPoint.swift usesPoint.swift usesDisplay.swift -module-name main -output-file-map ofm.json >&output1 - -// Change one type - the cascading edge causes us to rebuild everything but main - -// RUN: cp %t/definesPoint{-after,}.swift -// RUN: touch -t 200201010101 %t/* -// RUN: touch -t 200101010101 %t/*.swift -// RUN: touch -t 200301010101 %t/definesPoint.swift - -// RUN: cd %t && %target-swiftc_driver -enable-batch-mode -j2 -incremental -disable-direct-intramodule-dependencies -driver-show-incremental main.swift definesPoint.swift usesPoint.swift usesDisplay.swift -module-name main -output-file-map ofm.json >&output2 - -// RUN: %FileCheck -check-prefix=CHECK-STATUS-QUO-RECOMPILED %s < %t/output2 - -// CHECK-STATUS-QUO-RECOMPILED: Queuing because of dependencies discovered later: {compile: usesPoint.o <= usesPoint.swift} -// CHECK-STATUS-QUO-RECOMPILED: Queuing because of dependencies discovered later: {compile: usesDisplay.o <= usesDisplay.swift} - - // ============================================================================= // With private dependencies // ============================================================================= @@ -37,7 +9,7 @@ // RUN: cp %t/definesPoint{-before,}.swift // RUN: touch -t 200101010101 %t/*.swift -// RUN: cd %t && %target-swiftc_driver -enable-batch-mode -j2 -incremental -driver-show-incremental main.swift definesPoint.swift usesPoint.swift usesDisplay.swift -module-name main -output-file-map ofm.json -enable-direct-intramodule-dependencies >&output3 +// RUN: cd %t && %target-swiftc_driver -enable-batch-mode -j2 -incremental -driver-show-incremental main.swift definesPoint.swift usesPoint.swift usesDisplay.swift -module-name main -output-file-map ofm.json >&output3 // Change one type - now only the user of that type rebuilds @@ -46,7 +18,7 @@ // RUN: touch -t 200101010101 %t/*.swift // RUN: touch -t 200301010101 %t/definesPoint.swift -// RUN: cd %t && %target-swiftc_driver -enable-batch-mode -j2 -incremental -driver-show-incremental main.swift definesPoint.swift usesPoint.swift usesDisplay.swift -module-name main -output-file-map ofm.json -enable-direct-intramodule-dependencies >&output4 +// RUN: cd %t && %target-swiftc_driver -enable-batch-mode -j2 -incremental -driver-show-incremental main.swift definesPoint.swift usesPoint.swift usesDisplay.swift -module-name main -output-file-map ofm.json >&output4 // RUN: %FileCheck -check-prefix=CHECK-PRIVATE-RECOMPILED %s --dump-input=always < %t/output4 From 1b7c71382023ca7a5e0af3e8bdfc68ba969c36d8 Mon Sep 17 00:00:00 2001 From: Robert Widmann Date: Fri, 24 Jul 2020 16:36:16 -0700 Subject: [PATCH 21/31] [NFC] Only Register Primaries As Dependency Sources Now that the top-level source file is the only dependency source that matters, the only case that matters is when request evaluation enters a primary file. For non-primaries, there will be no corresponding swiftdeps file to emit references into, so we're just wasting time and memory keeping track of anything that happens there. This is only possible after we removed cascading dependencies because unqualified lookups had to be charged to the files they originated in. Now, we charge those lookups to the primary that initiated the request. --- include/swift/AST/EvaluatorDependencies.h | 4 +- .../Verifier/single-file/AnyObject.swift | 73 ------------------- 2 files changed, 2 insertions(+), 75 deletions(-) delete mode 100644 test/Incremental/Verifier/single-file/AnyObject.swift diff --git a/include/swift/AST/EvaluatorDependencies.h b/include/swift/AST/EvaluatorDependencies.h index 85d131987c92a..3ae969247d7de 100644 --- a/include/swift/AST/EvaluatorDependencies.h +++ b/include/swift/AST/EvaluatorDependencies.h @@ -33,7 +33,7 @@ namespace detail { template using void_t = void; } // namespace detail -// A \c DependencySource is currently defined to be a parent source file. +// A \c DependencySource is currently defined to be a primary source file. // // The \c SourceFile instance is an artifact of the current dependency system, // and should be scrapped if possible. It currently encodes the idea that @@ -281,7 +281,7 @@ struct DependencyRecorder { auto Source = Req.readDependencySource(coll); // If there is no source to introduce, bail. This can occur if // a request originates in the context of a module. - if (Source.isNull()) { + if (Source.isNull() || !Source.get()->isPrimary()) { return; } coll.dependencySources.emplace_back(Source); diff --git a/test/Incremental/Verifier/single-file/AnyObject.swift b/test/Incremental/Verifier/single-file/AnyObject.swift deleted file mode 100644 index 0130674af6552..0000000000000 --- a/test/Incremental/Verifier/single-file/AnyObject.swift +++ /dev/null @@ -1,73 +0,0 @@ -// UNSUPPORTED: CPU=i386 && OS=ios -// UNSUPPORTED: CPU=armv7 && OS=ios -// UNSUPPORTED: CPU=armv7s && OS=ios -// UNSUPPORTED: CPU=armv7k && OS=ios -// Exclude iOS-based 32-bit platforms because the Foundation overlays introduce -// an extra dependency on _KeyValueCodingAndObservingPublishing only for 64-bit -// platforms. -// REQUIRES: objc_interop - -// RUN: %empty-directory(%t) -// RUN: %{python} %S/../gen-output-file-map.py -o %t %S -// RUN: cd %t && %target-swiftc_driver -typecheck -output-file-map %t/output.json -incremental -disable-direct-intramodule-dependencies -module-name main -verify-incremental-dependencies %s - -import Foundation - -// expected-provides {{LookupFactory}} -// expected-provides {{NSObject}} -// expected-private-superclass {{ObjectiveC.NSObject}} -// expected-private-conformance {{ObjectiveC.NSObjectProtocol}} -// expected-private-conformance {{Foundation._KeyValueCodingAndObserving}} -// expected-private-conformance {{Foundation._KeyValueCodingAndObservingPublishing}} -// expected-private-conformance {{Swift.Hashable}} -// expected-private-conformance {{Swift.Equatable}} -// expected-private-conformance {{Swift.CustomDebugStringConvertible}} -// expected-private-conformance {{Swift.CVarArg}} -// expected-private-conformance {{Swift.CustomStringConvertible}} -// expected-cascading-member {{Swift._ExpressibleByBuiltinIntegerLiteral.init}} -@objc private class LookupFactory: NSObject { - // expected-provides {{AssignmentPrecedence}} - // expected-provides {{IntegerLiteralType}} - // expected-provides {{FloatLiteralType}} - // expected-provides {{Int}} - // expected-cascading-member {{ObjectiveC.NSObject.someMember}} - // expected-cascading-member {{ObjectiveC.NSObject.Int}} - // expected-cascading-member {{ObjectiveC.NSObjectProtocol.someMember}} - // expected-cascading-member {{ObjectiveC.NSObjectProtocol.Int}} - // expected-cascading-member {{main.LookupFactory.Int}} - @objc var someMember: Int = 0 - // expected-cascading-member {{ObjectiveC.NSObject.someMethod}} - // expected-cascading-member {{ObjectiveC.NSObjectProtocol.someMethod}} - @objc func someMethod() {} - - // expected-cascading-member {{ObjectiveC.NSObject.init}} - // expected-cascading-member {{ObjectiveC.NSObjectProtocol.init}} - // expected-cascading-member {{main.LookupFactory.init}} - // expected-private-member {{main.LookupFactory.deinit}} - // expected-cascading-member {{main.LookupFactory.someMember}} - // expected-cascading-member {{main.LookupFactory.someMethod}} -} - -// expected-private-member {{Swift.ExpressibleByNilLiteral.callAsFunction}} -// expected-private-member {{Swift.CustomReflectable.callAsFunction}} -// expected-private-member {{Swift._ObjectiveCBridgeable.callAsFunction}} -// expected-private-member {{Swift.Optional.callAsFunction}} -// expected-private-member {{Swift.CustomDebugStringConvertible.callAsFunction}} -// expected-private-member {{Swift.Equatable.callAsFunction}} -// expected-private-member {{Swift.Hashable.callAsFunction}} -// expected-private-member {{Swift.Encodable.callAsFunction}} -// expected-private-member {{Swift.Decodable.callAsFunction}} -// expected-private-member {{Foundation._OptionalForKVO.callAsFunction}} - -// expected-provides {{AnyObject}} -func lookupOnAnyObject(object: AnyObject) { // expected-provides {{lookupOnAnyObject}} - _ = object.someMember // expected-private-dynamic-member {{someMember}} - object.someMethod() // expected-private-dynamic-member {{someMethod}} -} -// expected-private-member {{Swift.Hashable.someMethod}} -// expected-private-member {{Foundation._KeyValueCodingAndObserving.someMethod}} -// expected-private-member {{Foundation._KeyValueCodingAndObservingPublishing.someMethod}} -// expected-private-member {{Swift.Equatable.someMethod}} -// expected-private-member {{Swift.CVarArg.someMethod}} -// expected-private-member {{Swift.CustomStringConvertible.someMethod}} -// expected-private-member {{Swift.CustomDebugStringConvertible.someMethod}} From 4557b698c10eeb3bb427b2f8f2ce8ae71fe20ee1 Mon Sep 17 00:00:00 2001 From: Robert Widmann Date: Mon, 21 Sep 2020 10:58:44 -0600 Subject: [PATCH 22/31] Resolve ASTScope Issues --- include/swift/AST/ASTScope.h | 41 ------------------------------------ 1 file changed, 41 deletions(-) diff --git a/include/swift/AST/ASTScope.h b/include/swift/AST/ASTScope.h index f6cc99a12c99e..e87d159171068 100644 --- a/include/swift/AST/ASTScope.h +++ b/include/swift/AST/ASTScope.h @@ -957,7 +957,6 @@ class GenericParamScope final : public ASTScopeImpl { protected: bool lookupLocalsOrMembers(ArrayRef, DeclConsumer) const override; - bool doesContextMatchStartingContext(const DeclContext *) const override; }; /// Concrete class for a function/initializer/deinitializer @@ -1367,42 +1366,6 @@ class ClosureParametersScope final : public ASTScopeImpl { NullablePtr getExprIfAny() const override { return closureExpr; } Expr *getExpr() const { return closureExpr; } NullablePtr getReferrent() const override; -}; - -/// For a closure with named parameters, this scope does the local bindings. -/// Absent if no "in". -class ClosureParametersScope final : public AbstractClosureScope { -public: - ClosureParametersScope(ClosureExpr *closureExpr, - NullablePtr captureList) - : AbstractClosureScope(closureExpr, captureList) {} - virtual ~ClosureParametersScope() {} - - std::string getClassName() const override; - SourceRange - getSourceRangeOfThisASTNode(bool omitAssertions = false) const override; - - /// Since explicit captures of \c self by closures enable the use of implicit - /// \c self, we need to make sure that the appropriate \c self is used as the - /// base decl for these uses (otherwise, the capture would be marked as - /// unused. \c ClosureParametersScope::capturedSelfDC() checks if we have such - /// a capture of self. - NullablePtr capturedSelfDC() const override; - -protected: - ASTScopeImpl *expandSpecifically(ScopeCreator &) override; - bool lookupLocalsOrMembers(ArrayRef, - DeclConsumer) const override; -}; - -// The body encompasses the code in the closure; the part after the "in" if -// there is an "in" -class ClosureBodyScope final : public AbstractClosureScope { -public: - ClosureBodyScope(ClosureExpr *closureExpr, - NullablePtr captureList) - : AbstractClosureScope(closureExpr, captureList) {} - virtual ~ClosureBodyScope() {} protected: ASTScopeImpl *expandSpecifically(ScopeCreator &scopeCreator) override; @@ -1413,10 +1376,6 @@ class ClosureBodyScope final : public AbstractClosureScope { protected: bool lookupLocalsOrMembers(ArrayRef, DeclConsumer) const override; -public: - std::string getClassName() const override; - SourceRange - getSourceRangeOfThisASTNode(bool omitAssertions = false) const override; }; class TopLevelCodeScope final : public ASTScopeImpl { From 62555ec175ddfe43cf530c4beffc042dbdf0558d Mon Sep 17 00:00:00 2001 From: Robert Widmann Date: Mon, 21 Sep 2020 11:43:39 -0600 Subject: [PATCH 23/31] Drop Cascading Users from FrontendSourceFileDepGraphFactory's Modeling The final set of edges that were being registered cascading were external edges. Just mark these all private - they're duplicated into the swiftdeps for each file that imports a given (usually clang) module anyways. --- lib/AST/FrontendSourceFileDepGraphFactory.cpp | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/lib/AST/FrontendSourceFileDepGraphFactory.cpp b/lib/AST/FrontendSourceFileDepGraphFactory.cpp index e48780d1aa2fa..23df622f6d57a 100644 --- a/lib/AST/FrontendSourceFileDepGraphFactory.cpp +++ b/lib/AST/FrontendSourceFileDepGraphFactory.cpp @@ -579,7 +579,6 @@ class UsedDeclEnumerator { void enumerateAllUses() { auto &Ctx = SF->getASTContext(); Ctx.evaluator.enumerateReferencesInFile(SF, [&](const auto &ref) { - const auto cascades = false; std::string name = ref.name.userFacingName().str(); const auto *nominal = ref.subject; using Kind = evaluator::DependencyCollector::Reference::Kind; @@ -589,19 +588,19 @@ class UsedDeclEnumerator { case Kind::Tombstone: llvm_unreachable("Cannot enumerate dead reference!"); case Kind::TopLevel: - return enumerateUse("", name, cascades); + return enumerateUse("", name); case Kind::Dynamic: - return enumerateUse("", name, cascades); + return enumerateUse("", name); case Kind::PotentialMember: { std::string context = DependencyKey::computeContextForProvidedEntity< NodeKind::potentialMember>(nominal); - return enumerateUse(context, "", cascades); + return enumerateUse(context, ""); } case Kind::UsedMember: { std::string context = DependencyKey::computeContextForProvidedEntity( nominal); - return enumerateUse(context, name, cascades); + return enumerateUse(context, name); } } }); @@ -611,11 +610,11 @@ class UsedDeclEnumerator { private: template - void enumerateUse(StringRef context, StringRef name, bool isCascadingUse) { + void enumerateUse(StringRef context, StringRef name) { // Assume that what is depended-upon is the interface createDefUse( DependencyKey(kind, DeclAspect::interface, context.str(), name.str()), - isCascadingUse ? sourceFileInterface : sourceFileImplementation); + sourceFileImplementation); } void enumerateNominalUses() { @@ -634,14 +633,13 @@ class UsedDeclEnumerator { std::string context = DependencyKey::computeContextForProvidedEntity( subject); - enumerateUse(context, "", /*isCascadingUse*/ false); + enumerateUse(context, ""); }); } void enumerateExternalUses() { - // external dependencies always cascade for (StringRef s : depTracker.getDependencies()) - enumerateUse("", s, true); + enumerateUse("", s); } }; } // end namespace From 3cee2af345032a85ffb133f54c70a2d6a8b67631 Mon Sep 17 00:00:00 2001 From: Robert Widmann Date: Mon, 21 Sep 2020 11:44:20 -0600 Subject: [PATCH 24/31] Remove Cascading Verification from the Dependency Verifier` Now that the frontend no longer produces these edges, we do not need to assert about them. --- include/swift/AST/DiagnosticsFrontend.def | 12 +- lib/Frontend/DependencyVerifier.cpp | 222 ++++++------------ .../multi-file-private/Inputs/Base.swift | 36 +-- .../multi-file-private/Inputs/Derived.swift | 34 +-- .../multi-file-private/Inputs/Inner.swift | 2 +- .../single-file-private/AnyObject.swift | 84 +++---- .../single-file-private/Conformances.swift | 16 +- 7 files changed, 165 insertions(+), 241 deletions(-) diff --git a/include/swift/AST/DiagnosticsFrontend.def b/include/swift/AST/DiagnosticsFrontend.def index b614aae99d2f4..6719a13851ec0 100644 --- a/include/swift/AST/DiagnosticsFrontend.def +++ b/include/swift/AST/DiagnosticsFrontend.def @@ -399,22 +399,14 @@ REMARK(interface_file_lock_timed_out,none, "timed out waiting to acquire lock file for module interface '%0'", (StringRef)) // Dependency Verifier Diagnostics -ERROR(dependency_cascading_mismatch,none, - "expected %select{non-cascading|cascading}0 dependency; found " - "%select{non-cascading|cascading}1 dependency instead", - (bool, bool)) -ERROR(potential_dependency_cascading_mismatch,none, - "expected %select{non-cascading|cascading}0 potential member dependency; " - "found %select{non-cascading|cascading}1 potential member dependency " - "instead", (bool, bool)) ERROR(missing_member_dependency,none, "expected " "%select{%error|provided|member|potential member|dynamic member}0 " "dependency does not exist: %1", (/*Expectation::Kind*/uint8_t, StringRef)) ERROR(unexpected_dependency,none, - "unexpected %0 %select{%error|%error|member|potential member|dynamic member}1 " - "dependency: %2", (StringRef, /*Expectation::Kind*/uint8_t, StringRef)) + "unexpected %select{%error|%error|member|potential member|dynamic member}0 " + "dependency: %1", (/*Expectation::Kind*/uint8_t, StringRef)) ERROR(unexpected_provided_entity,none, "unexpected provided entity: %0", (StringRef)) ERROR(negative_expectation_violated,none, diff --git a/lib/Frontend/DependencyVerifier.cpp b/lib/Frontend/DependencyVerifier.cpp index 6142c3c1ec434..6697d566de97d 100644 --- a/lib/Frontend/DependencyVerifier.cpp +++ b/lib/Frontend/DependencyVerifier.cpp @@ -38,36 +38,33 @@ namespace { /// attached near the relevant declaration and takes one of the following forms: /// /// // expected-provides {{ProvidedName}} -/// // expected-private-member {{some.User.member}} +/// // expected-member {{some.User.member}} /// /// An expectation contains additional information about the expectation /// \c Kind, which matches one of the few kinds of dependency entry that are -/// currently representable in the dependency graph, and an expectation -/// \c Scope which must either be \c private or \c cascading. +/// currently representable in the dependency graph. /// -/// As not all combinations of scopes and kinds makes sense, and to ease the addition of further -/// combinations of the two, the supported set of expectations is given by the following matrix: +/// As not all combinations of scopes and kinds makes sense, and to ease the +/// addition of further combinations of the two, the supported set of +/// expectations is given by the following matrix: /// #define EXPECTATION_MATRIX \ - MATRIX_ENTRY("expected-no-dependency", None, Negative) \ - MATRIX_ENTRY("expected-provides", None, Provides) \ - MATRIX_ENTRY("expected-private-superclass", Private, Superclass) \ - MATRIX_ENTRY("expected-cascading-superclass", Cascading, Superclass) \ - MATRIX_ENTRY("expected-private-conformance", Private, Conformance) \ - MATRIX_ENTRY("expected-cascading-conformance", Cascading, Conformance) \ - MATRIX_ENTRY("expected-private-member", Private, Member) \ - MATRIX_ENTRY("expected-cascading-member", Cascading, Member) \ - MATRIX_ENTRY("expected-private-dynamic-member", Private, DynamicMember) \ - MATRIX_ENTRY("expected-cascading-dynamic-member", Cascading, DynamicMember) + MATRIX_ENTRY("expected-no-dependency", Negative) \ + MATRIX_ENTRY("expected-provides", Provides) \ + MATRIX_ENTRY("expected-superclass", Superclass) \ + MATRIX_ENTRY("expected-conformance", Conformance) \ + MATRIX_ENTRY("expected-member", Member) \ + MATRIX_ENTRY("expected-dynamic-member", DynamicMember) \ /// -/// To add a new supported combination, update \c Expectation::Kind and -/// \c Expectation::Scope, then define a new \c MATRIX_ENTRY with the following information: +/// To add a new supported combination, update \c Expectation::Kind +/// then define a new \c MATRIX_ENTRY with the following information: /// -/// MATRIX_ENTRY(, Expectation::Scope, Expectation::Kind) +/// MATRIX_ENTRY(, Expectation::Kind) /// -/// Where \c matches the grammar for an expectation. The -/// verifier's parsing routines use this matrix to automatically keep the parser in harmony with the -/// internal representation of the expectation. +/// Where \c matches the grammar for an +/// expectation. The verifier's parsing routines use this matrix to +/// automatically keep the parser in harmony with the internal representation of +/// the expectation. struct Expectation { public: enum class Kind : uint8_t { @@ -80,24 +77,12 @@ struct Expectation { DynamicMember, }; - enum class Scope : uint8_t { - /// There is no scope information associated with this expectation. - /// - /// This is currently only true of negative expectations and provides expectations. - None, - /// The dependency does not cascade. - Private, - /// The dependency cascades. - Cascading, - }; - /// The full range of the "expected-foo {{}}". const char *ExpectedStart, *ExpectedEnd = nullptr; /// Additional information about the expectation. struct { Expectation::Kind Kind; - Expectation::Scope Scope; } Info; /// The raw input buffer for the message text, the part in the {{...}} @@ -105,16 +90,12 @@ struct Expectation { public: Expectation(const char *estart, const char *eend, Expectation::Kind k, - Expectation::Scope f, StringRef r) - : ExpectedStart(estart), ExpectedEnd(eend), Info{k, f}, MessageRange(r) { - assert(ExpectedStart <= MessageRange.data() && - "Message range appears before expected start!"); - assert(MessageRange.data()+MessageRange.size() <= ExpectedEnd && - "Message range extends beyond expected end!"); - } - - bool isCascading() const { - return Info.Scope == Expectation::Scope::Cascading; + StringRef r) + : ExpectedStart(estart), ExpectedEnd(eend), Info{k}, MessageRange(r) { + assert(ExpectedStart <= MessageRange.data() && + "Message range appears before expected start!"); + assert(MessageRange.data() + MessageRange.size() <= ExpectedEnd && + "Message range extends beyond expected end!"); } }; @@ -214,43 +195,27 @@ struct Obligation { private: StringRef name; - std::pair info; + Expectation::Kind kind; State state; public: - Obligation(StringRef name, Expectation::Kind k, Expectation::Scope f) - : name(name), info{k, f}, state(State::Owed) { + Obligation(StringRef name, Expectation::Kind k) + : name(name), kind{k}, state(State::Owed) { assert(k != Expectation::Kind::Negative && "Cannot form negative obligation!"); } - Expectation::Scope getScope() const { return info.second; } - Expectation::Kind getKind() const { return info.first; } + Expectation::Kind getKind() const { return kind; } StringRef getName() const { return name; } - bool getCascades() const { - return info.second == Expectation::Scope::Cascading; - } - StringRef describeCascade() const { - switch (info.second) { - case Expectation::Scope::None: - llvm_unreachable("Cannot describe obligation with no cascade info"); - case Expectation::Scope::Private: - return "non-cascading"; - case Expectation::Scope::Cascading: - return "cascading"; - } - llvm_unreachable("invalid expectation scope"); - } StringRef renderAsFixit(ASTContext &Ctx) const { llvm::StringRef selector = -#define MATRIX_ENTRY(SELECTOR, SCOPE, KIND) \ - if (getKind() == Expectation::Kind::KIND && \ - getScope() == Expectation::Scope::SCOPE) { \ - return SELECTOR; \ - } +#define MATRIX_ENTRY(SELECTOR, KIND) \ + if (getKind() == Expectation::Kind::KIND) { \ + return SELECTOR; \ + } - [this]() -> StringRef { + [this]() -> StringRef { EXPECTATION_MATRIX return ""; }(); @@ -267,8 +232,7 @@ struct Obligation { return FullfillmentToken{}; } FullfillmentToken fail() { - assert(state == State::Owed && - "Cannot fail an obligation more than once!"); + assert(state == State::Owed && "Cannot fail an obligation more than once!"); state = State::Failed; return FullfillmentToken{}; } @@ -372,19 +336,17 @@ bool DependencyVerifier::parseExpectations( const char *DiagnosticLoc = MatchStart.data(); Expectation::Kind ExpectedKind; - Expectation::Scope ExpectedScope; { -#define MATRIX_ENTRY(EXPECTATION_SELECTOR, SCOPE, KIND) \ +#define MATRIX_ENTRY(EXPECTATION_SELECTOR, KIND) \ .StartsWith(EXPECTATION_SELECTOR, [&]() { \ ExpectedKind = Expectation::Kind::KIND; \ - ExpectedScope = Expectation::Scope::SCOPE; \ MatchStart = MatchStart.substr(strlen(EXPECTATION_SELECTOR)); \ }) // clang-format off - llvm::StringSwitch>{MatchStart} - EXPECTATION_MATRIX - .Default([]() {})(); + llvm::StringSwitch>{MatchStart} + EXPECTATION_MATRIX + .Default([]() {})(); // clang-format on #undef MATRIX_ENTRY } @@ -412,13 +374,11 @@ bool DependencyVerifier::parseExpectations( AfterEnd = AfterEnd.substr(AfterEnd.find_first_not_of(" \t")); const char *ExpectedEnd = AfterEnd.data(); - // Strip out the trailing whitespace. while (isspace(ExpectedEnd[-1])) --ExpectedEnd; - Expectations.emplace_back(DiagnosticLoc, ExpectedEnd, - ExpectedKind, ExpectedScope, + Expectations.emplace_back(DiagnosticLoc, ExpectedEnd, ExpectedKind, MatchStart.slice(2, End)); } return false; @@ -427,50 +387,37 @@ bool DependencyVerifier::parseExpectations( bool DependencyVerifier::constructObligations(const SourceFile *SF, ObligationMap &Obligations) { auto &Ctx = SF->getASTContext(); - Ctx.evaluator.enumerateReferencesInFile( - SF, [&](const auto &reference) { - const auto isCascadingUse = false; - using NodeKind = evaluator::DependencyCollector::Reference::Kind; - switch (reference.kind) { - case NodeKind::Empty: - case NodeKind::Tombstone: - llvm_unreachable("Cannot enumerate dead dependency!"); - - case NodeKind::PotentialMember: { - auto key = copyQualifiedTypeName(Ctx, reference.subject); - Obligations.insert({Obligation::Key::forPotentialMember(key), - {"", Expectation::Kind::PotentialMember, - isCascadingUse ? Expectation::Scope::Cascading - : Expectation::Scope::Private}}); - } - break; - case NodeKind::UsedMember: { - auto demContext = copyQualifiedTypeName(Ctx, reference.subject); - auto name = reference.name.userFacingName(); - auto key = Ctx.AllocateCopy((demContext + "." + name).str()); - Obligations.insert({Obligation::Key::forMember(key), - {key, Expectation::Kind::Member, - isCascadingUse ? Expectation::Scope::Cascading - : Expectation::Scope::Private}}); - } - break; - case NodeKind::Dynamic: { - auto key = Ctx.AllocateCopy(reference.name.userFacingName()); - Obligations.insert({Obligation::Key::forDynamicMember(key), - {"", Expectation::Kind::DynamicMember, - isCascadingUse ? Expectation::Scope::Cascading - : Expectation::Scope::Private}}); - } - break; - case NodeKind::TopLevel: { - auto key = Ctx.AllocateCopy(reference.name.userFacingName()); - Obligations.insert({Obligation::Key::forProvides(key), - {key, Expectation::Kind::Provides, - Expectation::Scope::None}}); - } - break; - } - }); + Ctx.evaluator.enumerateReferencesInFile(SF, [&](const auto &reference) { + using NodeKind = evaluator::DependencyCollector::Reference::Kind; + switch (reference.kind) { + case NodeKind::Empty: + case NodeKind::Tombstone: + llvm_unreachable("Cannot enumerate dead dependency!"); + + case NodeKind::PotentialMember: { + auto key = copyQualifiedTypeName(Ctx, reference.subject); + Obligations.insert({Obligation::Key::forPotentialMember(key), + {"", Expectation::Kind::PotentialMember}}); + } break; + case NodeKind::UsedMember: { + auto demContext = copyQualifiedTypeName(Ctx, reference.subject); + auto name = reference.name.userFacingName(); + auto key = Ctx.AllocateCopy((demContext + "." + name).str()); + Obligations.insert( + {Obligation::Key::forMember(key), {key, Expectation::Kind::Member}}); + } break; + case NodeKind::Dynamic: { + auto key = Ctx.AllocateCopy(reference.name.userFacingName()); + Obligations.insert({Obligation::Key::forDynamicMember(key), + {"", Expectation::Kind::DynamicMember}}); + } break; + case NodeKind::TopLevel: { + auto key = Ctx.AllocateCopy(reference.name.userFacingName()); + Obligations.insert({Obligation::Key::forProvides(key), + {key, Expectation::Kind::Provides}}); + } break; + } + }); return false; } @@ -480,7 +427,6 @@ bool DependencyVerifier::verifyObligations( ObligationMap &OM, llvm::StringMap &NegativeExpectations) { auto &diags = SF->getASTContext().Diags; for (auto &expectation : ExpectedDependencies) { - const bool wantsCascade = expectation.isCascading(); if (expectation.Info.Kind == Expectation::Kind::Negative) { // We'll verify negative expectations separately. NegativeExpectations.insert({expectation.MessageRange, expectation}); @@ -490,29 +436,14 @@ bool DependencyVerifier::verifyObligations( matchExpectationOrFail( OM, expectation, [&](Obligation &O) { - const auto haveCascade = O.getCascades(); switch (expectation.Info.Kind) { case Expectation::Kind::Negative: llvm_unreachable("Should have been handled above!"); case Expectation::Kind::Member: - if (haveCascade != wantsCascade) { - diagnose(diags, expectation.MessageRange.begin(), - diag::dependency_cascading_mismatch, wantsCascade, - haveCascade); - return O.fail(); - } else { - return O.fullfill(); - } + return O.fullfill(); case Expectation::Kind::PotentialMember: assert(O.getName().empty()); - if (haveCascade != wantsCascade) { - diagnose(diags, expectation.MessageRange.begin(), - diag::potential_dependency_cascading_mismatch, - wantsCascade, haveCascade); - return O.fail(); - } else { - return O.fullfill(); - } + return O.fullfill(); case Expectation::Kind::Provides: case Expectation::Kind::DynamicMember: return O.fullfill(); @@ -564,13 +495,14 @@ bool DependencyVerifier::diagnoseUnfulfilledObligations( case Expectation::Kind::Member: case Expectation::Kind::DynamicMember: case Expectation::Kind::PotentialMember: - diags.diagnose(Loc, diag::unexpected_dependency, p.describeCascade(), - static_cast(p.getKind()), key) - .fixItInsert(Loc, p.renderAsFixit(Ctx)); + diags + .diagnose(Loc, diag::unexpected_dependency, + static_cast(p.getKind()), key) + .fixItInsert(Loc, p.renderAsFixit(Ctx)); break; case Expectation::Kind::Provides: diags.diagnose(Loc, diag::unexpected_provided_entity, p.getName()) - .fixItInsert(Loc, p.renderAsFixit(Ctx)); + .fixItInsert(Loc, p.renderAsFixit(Ctx)); break; } }); diff --git a/test/Incremental/Verifier/multi-file-private/Inputs/Base.swift b/test/Incremental/Verifier/multi-file-private/Inputs/Base.swift index 3f64fe42886ff..5ed787d1fd0c6 100644 --- a/test/Incremental/Verifier/multi-file-private/Inputs/Base.swift +++ b/test/Incremental/Verifier/multi-file-private/Inputs/Base.swift @@ -1,30 +1,30 @@ open class OpenBase {} // expected-provides {{OpenBase}} -// expected-private-member {{main.OpenBase.init}} -// expected-private-member {{main.OpenBase.deinit}} +// expected-member {{main.OpenBase.init}} +// expected-member {{main.OpenBase.deinit}} public class PublicBase {} // expected-provides {{PublicBase}} -// expected-private-member {{main.PublicBase.init}} -// expected-private-member {{main.PublicBase.deinit}} +// expected-member {{main.PublicBase.init}} +// expected-member {{main.PublicBase.deinit}} internal class InternalBase {} // expected-provides {{InternalBase}} -// expected-private-member {{main.InternalBase.init}} -// expected-private-member {{main.InternalBase.deinit}} +// expected-member {{main.InternalBase.init}} +// expected-member {{main.InternalBase.deinit}} fileprivate class FilePrivateBase {} // expected-provides {{FilePrivateBase}} -// expected-private-member {{main.FilePrivateBase.init}} -// expected-private-member {{main.FilePrivateBase.deinit}} +// expected-member {{main.FilePrivateBase.init}} +// expected-member {{main.FilePrivateBase.deinit}} private class PrivateBase {} // expected-provides {{PrivateBase}} -// expected-private-member {{main.PrivateBase.init}} -// expected-private-member {{main.PrivateBase.deinit}} +// expected-member {{main.PrivateBase.init}} +// expected-member {{main.PrivateBase.deinit}} -final fileprivate class FilePrivateSubclass: FilePrivateBase {} // expected-provides {{FilePrivateSubclass}} expected-private-superclass {{main.FilePrivateBase}} -// expected-private-member {{main.FilePrivateSubclass.init}} -// expected-private-member {{main.FilePrivateSubclass.deinit}} +final fileprivate class FilePrivateSubclass: FilePrivateBase {} // expected-provides {{FilePrivateSubclass}} expected-superclass {{main.FilePrivateBase}} +// expected-member {{main.FilePrivateSubclass.init}} +// expected-member {{main.FilePrivateSubclass.deinit}} -final private class PrivateSubclass: PrivateBase {} // expected-provides {{PrivateSubclass}} expected-private-superclass {{main.PrivateBase}} -// expected-private-member {{main.PrivateSubclass.init}} -// expected-private-member {{main.PrivateSubclass.deinit}} +final private class PrivateSubclass: PrivateBase {} // expected-provides {{PrivateSubclass}} expected-superclass {{main.PrivateBase}} +// expected-member {{main.PrivateSubclass.init}} +// expected-member {{main.PrivateSubclass.deinit}} public protocol PublicBaseProtocol {} // expected-provides {{PublicBaseProtocol}} @@ -34,6 +34,6 @@ fileprivate protocol FilePrivateBaseProtocol {} // expected-provides {{FilePriva private protocol PrivateBaseProtocol {} // expected-provides {{PrivateBaseProtocol}} -fileprivate protocol FilePrivateProtocol: FilePrivateBaseProtocol {} // expected-provides {{FilePrivateProtocol}} expected-private-conformance {{main.FilePrivateBaseProtocol}} +fileprivate protocol FilePrivateProtocol: FilePrivateBaseProtocol {} // expected-provides {{FilePrivateProtocol}} expected-conformance {{main.FilePrivateBaseProtocol}} -private protocol PrivateProtocol: PrivateBaseProtocol {} // expected-provides {{PrivateProtocol}} expected-private-conformance {{main.PrivateBaseProtocol}} +private protocol PrivateProtocol: PrivateBaseProtocol {} // expected-provides {{PrivateProtocol}} expected-conformance {{main.PrivateBaseProtocol}} diff --git a/test/Incremental/Verifier/multi-file-private/Inputs/Derived.swift b/test/Incremental/Verifier/multi-file-private/Inputs/Derived.swift index 2041fe02bb52b..fda263fae1b98 100644 --- a/test/Incremental/Verifier/multi-file-private/Inputs/Derived.swift +++ b/test/Incremental/Verifier/multi-file-private/Inputs/Derived.swift @@ -1,30 +1,30 @@ -final public class OpenSubclass: OpenBase {} // expected-provides {{OpenSubclass}} expected-private-superclass {{main.OpenBase}} +final public class OpenSubclass: OpenBase {} // expected-provides {{OpenSubclass}} expected-superclass {{main.OpenBase}} // expected-provides {{OpenBase}} -// expected-private-member {{main.OpenBase.init}} -// expected-private-member {{main.OpenBase.deinit}} -// expected-private-member {{main.OpenSubclass.init}} -// expected-private-member {{main.OpenSubclass.deinit}} +// expected-member {{main.OpenBase.init}} +// expected-member {{main.OpenBase.deinit}} +// expected-member {{main.OpenSubclass.init}} +// expected-member {{main.OpenSubclass.deinit}} -final public class PublicSubclass: PublicBase {} // expected-provides {{PublicSubclass}} expected-private-superclass {{main.PublicBase}} +final public class PublicSubclass: PublicBase {} // expected-provides {{PublicSubclass}} expected-superclass {{main.PublicBase}} // expected-provides {{PublicBase}} -// expected-private-member {{main.PublicBase.init}} -// expected-private-member {{main.PublicBase.deinit}} -// expected-private-member {{main.PublicSubclass.init}} -// expected-private-member {{main.PublicSubclass.deinit}} +// expected-member {{main.PublicBase.init}} +// expected-member {{main.PublicBase.deinit}} +// expected-member {{main.PublicSubclass.init}} +// expected-member {{main.PublicSubclass.deinit}} -final internal class InternalSubclass: InternalBase {} // expected-provides {{InternalSubclass}} expected-private-superclass {{main.InternalBase}} +final internal class InternalSubclass: InternalBase {} // expected-provides {{InternalSubclass}} expected-superclass {{main.InternalBase}} // expected-provides {{InternalBase}} -// expected-private-member {{main.InternalBase.init}} -// expected-private-member {{main.InternalBase.deinit}} -// expected-private-member {{main.InternalSubclass.init}} -// expected-private-member {{main.InternalSubclass.deinit}} +// expected-member {{main.InternalBase.init}} +// expected-member {{main.InternalBase.deinit}} +// expected-member {{main.InternalSubclass.init}} +// expected-member {{main.InternalSubclass.deinit}} public protocol PublicProtocol: PublicBaseProtocol {} // expected-provides {{PublicProtocol}} // expected-provides {{PublicBaseProtocol}} -// expected-private-conformance {{main.PublicBaseProtocol}} +// expected-conformance {{main.PublicBaseProtocol}} internal protocol InternalProtocol: InternalBaseProtocol {} // expected-provides {{InternalProtocol}} // expected-provides {{InternalBaseProtocol}} -// expected-private-conformance {{main.InternalBaseProtocol}} +// expected-conformance {{main.InternalBaseProtocol}} diff --git a/test/Incremental/Verifier/multi-file-private/Inputs/Inner.swift b/test/Incremental/Verifier/multi-file-private/Inputs/Inner.swift index b11217fcf15ff..a1f5d4a8b4c3a 100644 --- a/test/Incremental/Verifier/multi-file-private/Inputs/Inner.swift +++ b/test/Incremental/Verifier/multi-file-private/Inputs/Inner.swift @@ -1,5 +1,5 @@ // expected-provides{{Inner}} -// expected-private-member{{main.Inner.init}} +// expected-member{{main.Inner.init}} public struct Inner {} // expected-provides{{Foo}} diff --git a/test/Incremental/Verifier/single-file-private/AnyObject.swift b/test/Incremental/Verifier/single-file-private/AnyObject.swift index ae7f180f53377..2323db8859d4d 100644 --- a/test/Incremental/Verifier/single-file-private/AnyObject.swift +++ b/test/Incremental/Verifier/single-file-private/AnyObject.swift @@ -15,60 +15,60 @@ import Foundation // expected-provides {{LookupFactory}} // expected-provides {{NSObject}} -// expected-private-superclass {{ObjectiveC.NSObject}} -// expected-private-conformance {{ObjectiveC.NSObjectProtocol}} -// expected-private-conformance {{Foundation._KeyValueCodingAndObserving}} -// expected-private-conformance {{Foundation._KeyValueCodingAndObservingPublishing}} -// expected-private-conformance {{Swift.Hashable}} -// expected-private-conformance {{Swift.Equatable}} -// expected-private-conformance {{Swift.CustomDebugStringConvertible}} -// expected-private-conformance {{Swift.CVarArg}} -// expected-private-conformance {{Swift.CustomStringConvertible}} -// expected-private-member {{Swift._ExpressibleByBuiltinIntegerLiteral.init}} +// expected-superclass {{ObjectiveC.NSObject}} +// expected-conformance {{ObjectiveC.NSObjectProtocol}} +// expected-conformance {{Foundation._KeyValueCodingAndObserving}} +// expected-conformance {{Foundation._KeyValueCodingAndObservingPublishing}} +// expected-conformance {{Swift.Hashable}} +// expected-conformance {{Swift.Equatable}} +// expected-conformance {{Swift.CustomDebugStringConvertible}} +// expected-conformance {{Swift.CVarArg}} +// expected-conformance {{Swift.CustomStringConvertible}} +// expected-member {{Swift._ExpressibleByBuiltinIntegerLiteral.init}} @objc private class LookupFactory: NSObject { // expected-provides {{AssignmentPrecedence}} // expected-provides {{IntegerLiteralType}} // expected-provides {{FloatLiteralType}} // expected-provides {{Int}} - // expected-private-member {{ObjectiveC.NSObject.someMember}} - // expected-private-member {{ObjectiveC.NSObject.Int}} - // expected-private-member {{ObjectiveC.NSObjectProtocol.someMember}} - // expected-private-member {{ObjectiveC.NSObjectProtocol.Int}} - // expected-private-member {{main.LookupFactory.Int}} + // expected-member {{ObjectiveC.NSObject.someMember}} + // expected-member {{ObjectiveC.NSObject.Int}} + // expected-member {{ObjectiveC.NSObjectProtocol.someMember}} + // expected-member {{ObjectiveC.NSObjectProtocol.Int}} + // expected-member {{main.LookupFactory.Int}} @objc var someMember: Int = 0 - // expected-private-member {{ObjectiveC.NSObject.someMethod}} - // expected-private-member {{ObjectiveC.NSObjectProtocol.someMethod}} + // expected-member {{ObjectiveC.NSObject.someMethod}} + // expected-member {{ObjectiveC.NSObjectProtocol.someMethod}} @objc func someMethod() {} - // expected-private-member {{ObjectiveC.NSObject.init}} - // expected-private-member {{ObjectiveC.NSObjectProtocol.init}} - // expected-private-member {{main.LookupFactory.init}} - // expected-private-member {{main.LookupFactory.deinit}} - // expected-private-member {{main.LookupFactory.someMember}} - // expected-private-member {{main.LookupFactory.someMethod}} + // expected-member {{ObjectiveC.NSObject.init}} + // expected-member {{ObjectiveC.NSObjectProtocol.init}} + // expected-member {{main.LookupFactory.init}} + // expected-member {{main.LookupFactory.deinit}} + // expected-member {{main.LookupFactory.someMember}} + // expected-member {{main.LookupFactory.someMethod}} } -// expected-private-member {{Swift.ExpressibleByNilLiteral.callAsFunction}} -// expected-private-member {{Swift.CustomReflectable.callAsFunction}} -// expected-private-member {{Swift._ObjectiveCBridgeable.callAsFunction}} -// expected-private-member {{Swift.Optional.callAsFunction}} -// expected-private-member {{Swift.CustomDebugStringConvertible.callAsFunction}} -// expected-private-member {{Swift.Equatable.callAsFunction}} -// expected-private-member {{Swift.Hashable.callAsFunction}} -// expected-private-member {{Swift.Encodable.callAsFunction}} -// expected-private-member {{Swift.Decodable.callAsFunction}} -// expected-private-member {{Foundation._OptionalForKVO.callAsFunction}} +// expected-member {{Swift.ExpressibleByNilLiteral.callAsFunction}} +// expected-member {{Swift.CustomReflectable.callAsFunction}} +// expected-member {{Swift._ObjectiveCBridgeable.callAsFunction}} +// expected-member {{Swift.Optional.callAsFunction}} +// expected-member {{Swift.CustomDebugStringConvertible.callAsFunction}} +// expected-member {{Swift.Equatable.callAsFunction}} +// expected-member {{Swift.Hashable.callAsFunction}} +// expected-member {{Swift.Encodable.callAsFunction}} +// expected-member {{Swift.Decodable.callAsFunction}} +// expected-member {{Foundation._OptionalForKVO.callAsFunction}} // expected-provides {{AnyObject}} func lookupOnAnyObject(object: AnyObject) { // expected-provides {{lookupOnAnyObject}} - _ = object.someMember // expected-private-dynamic-member {{someMember}} - object.someMethod() // expected-private-dynamic-member {{someMethod}} + _ = object.someMember // expected-dynamic-member {{someMember}} + object.someMethod() // expected-dynamic-member {{someMethod}} } -// expected-private-member {{Swift.Hashable.someMethod}} -// expected-private-member {{Foundation._KeyValueCodingAndObserving.someMethod}} -// expected-private-member {{Foundation._KeyValueCodingAndObservingPublishing.someMethod}} -// expected-private-member {{Swift.Equatable.someMethod}} -// expected-private-member {{Swift.CVarArg.someMethod}} -// expected-private-member {{Swift.CustomStringConvertible.someMethod}} -// expected-private-member {{Swift.CustomDebugStringConvertible.someMethod}} +// expected-member {{Swift.Hashable.someMethod}} +// expected-member {{Foundation._KeyValueCodingAndObserving.someMethod}} +// expected-member {{Foundation._KeyValueCodingAndObservingPublishing.someMethod}} +// expected-member {{Swift.Equatable.someMethod}} +// expected-member {{Swift.CVarArg.someMethod}} +// expected-member {{Swift.CustomStringConvertible.someMethod}} +// expected-member {{Swift.CustomDebugStringConvertible.someMethod}} diff --git a/test/Incremental/Verifier/single-file-private/Conformances.swift b/test/Incremental/Verifier/single-file-private/Conformances.swift index 31359e1c1650f..45ed1ecadc63c 100644 --- a/test/Incremental/Verifier/single-file-private/Conformances.swift +++ b/test/Incremental/Verifier/single-file-private/Conformances.swift @@ -8,9 +8,9 @@ fileprivate protocol FilePrivateProtocol { } // expected-provides {{FilePrivateP private protocol PrivateProtocol { } // expected-provides {{PrivateProtocol}} public struct PublicConformance { } // expected-provides {{PublicConformance}} -// expected-private-member {{main.PublicConformance.init}} +// expected-member {{main.PublicConformance.init}} -// expected-private-conformance {{main.PublicConformance}} +// expected-conformance {{main.PublicConformance}} extension PublicConformance: PublicProtocol { } extension PublicConformance: InternalProtocol { } extension PublicConformance: FilePrivateProtocol { } @@ -18,11 +18,11 @@ extension PublicConformance: PrivateProtocol { } private struct PrivateConformance { } // expected-provides {{PrivateConformance}} -// expected-private-member {{main.PrivateConformance.init}} +// expected-member {{main.PrivateConformance.init}} -// expected-private-conformance {{main.PrivateConformance}} -extension PrivateConformance: PublicProtocol { } // expected-private-conformance {{main.PublicProtocol}} -extension PrivateConformance: InternalProtocol { } // expected-private-conformance {{main.InternalProtocol}} -extension PrivateConformance: FilePrivateProtocol { } // expected-private-conformance {{main.FilePrivateProtocol}} -extension PrivateConformance: PrivateProtocol { } // expected-private-conformance {{main.PrivateProtocol}} +// expected-conformance {{main.PrivateConformance}} +extension PrivateConformance: PublicProtocol { } // expected-conformance {{main.PublicProtocol}} +extension PrivateConformance: InternalProtocol { } // expected-conformance {{main.InternalProtocol}} +extension PrivateConformance: FilePrivateProtocol { } // expected-conformance {{main.FilePrivateProtocol}} +extension PrivateConformance: PrivateProtocol { } // expected-conformance {{main.PrivateProtocol}} From 41b976f8f9cebf73202fa5774161c5b3c1288dbd Mon Sep 17 00:00:00 2001 From: Robert Widmann Date: Mon, 21 Sep 2020 11:44:38 -0600 Subject: [PATCH 25/31] Drop "cascading" and "private" dependency from the lexicon This is no longer a meaningful distinction. --- docs/DependencyAnalysis.md | 27 --------------------------- docs/Lexicon.md | 24 ------------------------ 2 files changed, 51 deletions(-) diff --git a/docs/DependencyAnalysis.md b/docs/DependencyAnalysis.md index 93211ccc0a26f..e5ded4b07f3de 100644 --- a/docs/DependencyAnalysis.md +++ b/docs/DependencyAnalysis.md @@ -56,33 +56,6 @@ Note: > may change its members drastically. -Cascading vs. Non-Cascading Dependencies -======================================== - -If file A depends on file B, and file B depends on file C, does file A depend -on file C? The answer is: maybe! It depends how file B is using file C. If all -uses are inside function bodies, for example, then changing file C only -requires rebuilding file B, not file A. The terminology here is that file B has -a *non-cascading* dependency on file C. - -By contrast, if changing file C affects the interface of file B, then the -dependency is said to be *cascading,* and changing file C would require -rebuilding both file B and file A. - -The various dependency tracking throughout the compiler will look at the -context in which information is being used and attempt to determine whether or -not a particular dependency should be considered cascading. If there's not -enough context to decide, the compiler has to go with the conservative choice -and record it as cascading. - - -Note: - -> In the current on-disk representation of dependency information, cascading -> dependencies are the default. Non-cascading dependencies are marked -> `private` by analogy with the Swift `private` keyword. - - External Dependencies ===================== diff --git a/docs/Lexicon.md b/docs/Lexicon.md index 1db8835c59258..b2d8b14a8b436 100644 --- a/docs/Lexicon.md +++ b/docs/Lexicon.md @@ -100,18 +100,6 @@ These can usually be directly compared to test whether two types are the same; the exception is when generics get involved. In this case you'll need a [generic environment](#generic-environment). Contrast with [sugared type](#sugared-type). -## cascading dependency - -A kind of dependency edge relevant to the incremental name tracking -subsystem. A cascading dependency (as opposed to a -[private dependency](#private-dependency) requires the Swift driver to -transitively consider dependency edges in the file that defines the used -name when incremental compilation is enabled. A cascading dependency is much -safer to produce than its private counterpart, but it comes at the cost of -increased usage of compilation resources - even if those resources are being -wasted on rebuilding a file that didn't actually require rebuilding. -See [DependencyAnalysis.md](DependencyAnalysis.md). - ## Clang importer The part of the compiler that reads C and Objective-C declarations and @@ -452,18 +440,6 @@ The file currently being compiled, as opposed to the other files that are only needed for context. See also [Whole-Module Optimization](#wmo-whole-module-optimization). -## private dependency - -A kind of dependency edge relevant to the incremental name tracking -subsystem. A private dependency (as opposed to a -[cascading dependency](#cascading-dependency)) declares a dependency edge -from one file to a name referenced in that file that does not -require further transitive evaluation of dependency edges by the Swift -driver. Private dependencies are therefore cheaper than cascading -dependencies, but must be used with the utmost care or dependent files will -fail to rebuild and the result will most certainly be a miscompile. -See [DependencyAnalysis](DependencyAnalysis.md). - ## QoI "Quality of implementation." The term is meant to describe not how From d57967569d9ee36a3f01daf86a539bfa84ac1687 Mon Sep 17 00:00:00 2001 From: Robert Widmann Date: Mon, 21 Sep 2020 11:53:48 -0600 Subject: [PATCH 26/31] Drop Interface Dependency Key APIs Only external edges need this. --- include/swift/AST/FineGrainedDependencies.h | 15 ------- lib/AST/FrontendSourceFileDepGraphFactory.cpp | 41 ------------------- .../FineGrainedDependencyDriverGraph.cpp | 5 +-- 3 files changed, 2 insertions(+), 59 deletions(-) diff --git a/include/swift/AST/FineGrainedDependencies.h b/include/swift/AST/FineGrainedDependencies.h index bd53f9492211a..a73c026580c00 100644 --- a/include/swift/AST/FineGrainedDependencies.h +++ b/include/swift/AST/FineGrainedDependencies.h @@ -393,14 +393,6 @@ template class InterfaceAndImplementationPair { NodeT *getInterface() const { return interface; } NodeT *getImplementation() const { return implementation; } - - /// When creating an arc to represent a link from def to use, the use end of - /// the arc depends on if the dependency is a cascading one. Centralize that - /// choice here. - /// ("use" in the name represents the noun, not the verb.) - NodeT *useDependingOnCascading(bool ifCascades) { - return ifCascades ? interface : implementation; - } }; //============================================================================== @@ -501,13 +493,6 @@ class DependencyKey { template static std::string computeNameForProvidedEntity(Entity); - /// Given some type of depended-upon entity create the key. - static DependencyKey createDependedUponKey(StringRef mangledHolderName, - StringRef memberBaseName); - - template - static DependencyKey createDependedUponKey(StringRef); - static DependencyKey createKeyForWholeSourceFile(DeclAspect, StringRef swiftDeps); diff --git a/lib/AST/FrontendSourceFileDepGraphFactory.cpp b/lib/AST/FrontendSourceFileDepGraphFactory.cpp index 23df622f6d57a..02974899a4b92 100644 --- a/lib/AST/FrontendSourceFileDepGraphFactory.cpp +++ b/lib/AST/FrontendSourceFileDepGraphFactory.cpp @@ -232,47 +232,6 @@ std::string DependencyKey::computeNameForProvidedEntity< return getBaseName(holderAndMember.second); } -//============================================================================== -// MARK: createDependedUponKey -//============================================================================== - -template <> -DependencyKey -DependencyKey::createDependedUponKey(StringRef name) { - return DependencyKey(NodeKind::topLevel, DeclAspect::interface, "", - name.str()); -} - -template <> -DependencyKey -DependencyKey::createDependedUponKey(StringRef name) { - return DependencyKey(NodeKind::dynamicLookup, DeclAspect::interface, "", - name.str()); -} - -template <> -DependencyKey -DependencyKey::createDependedUponKey(StringRef name) { - return DependencyKey(NodeKind::externalDepend, DeclAspect::interface, "", - name.str()); -} - -template <> -DependencyKey -DependencyKey::createDependedUponKey(StringRef mangledName) { - return DependencyKey(NodeKind::nominal, DeclAspect::interface, - mangledName.str(), ""); -} - -DependencyKey DependencyKey::createDependedUponKey(StringRef mangledHolderName, - StringRef memberBaseName) { - const bool isMemberBlank = memberBaseName.empty(); - const auto kind = - isMemberBlank ? NodeKind::potentialMember : NodeKind::member; - return DependencyKey(kind, DeclAspect::interface, mangledHolderName.str(), - isMemberBlank ? "" : memberBaseName.str()); -} - //============================================================================== // MARK: Entry point into frontend graph construction //============================================================================== diff --git a/lib/Driver/FineGrainedDependencyDriverGraph.cpp b/lib/Driver/FineGrainedDependencyDriverGraph.cpp index 8725924d68b27..6111b3690a7e1 100644 --- a/lib/Driver/FineGrainedDependencyDriverGraph.cpp +++ b/lib/Driver/FineGrainedDependencyDriverGraph.cpp @@ -220,9 +220,8 @@ void ModuleDepGraph::forEachUntracedJobDirectlyDependentOnExternalSwiftDeps( StringRef externalSwiftDeps, function_ref fn) { // TODO move nameForDep into key // These nodes will depend on the *interface* of the external Decl. - DependencyKey key = - DependencyKey::createDependedUponKey( - externalSwiftDeps.str()); + DependencyKey key(NodeKind::externalDepend, DeclAspect::interface, "", + externalSwiftDeps.str()); for (const ModuleDepGraphNode *useNode : usesByDef[key]) { if (!useNode->getHasBeenTraced()) fn(getJob(useNode->getSwiftDepsOfProvides())); From eea769927f3702b6e47dac07e73f6a9504ea3e4f Mon Sep 17 00:00:00 2001 From: Robert Widmann Date: Mon, 21 Sep 2020 14:11:01 -0600 Subject: [PATCH 27/31] [NFC] Move tests from Driver/PrivateDependencies to Driver/Dependencies --- .../Inputs/bindings-build-record/added.swift | 0 .../Inputs/bindings-build-record/main.o | 0 .../Inputs/bindings-build-record/main.swift | 0 .../Inputs/bindings-build-record/other.o | 0 .../Inputs/bindings-build-record/other.swift | 0 .../Inputs/bindings-build-record/output.json | 0 .../Inputs/bindings-build-record/yet-another.o | 0 .../Inputs/bindings-build-record/yet-another.swift | 0 .../Inputs/chained-additional-kinds-fine/main.swift | 0 .../chained-additional-kinds-fine/other.swift | 0 .../chained-additional-kinds-fine/output.json | 0 .../chained-additional-kinds-fine/yet-another.swift | 0 .../Inputs/chained-after-fine/main.swift | 0 .../Inputs/chained-after-fine/main.swiftdeps | Bin .../Inputs/chained-after-fine/other.swift | 0 .../Inputs/chained-after-fine/other.swiftdeps | Bin .../Inputs/chained-after-fine/output.json | 0 .../Inputs/chained-after-fine/yet-another.swift | 0 .../Inputs/chained-after-fine/yet-another.swiftdeps | Bin .../Inputs/chained-fine/main.swift | 0 .../Inputs/chained-fine/other.swift | 0 .../Inputs/chained-fine/output.json | 0 .../Inputs/chained-fine/yet-another.swift | 0 .../Inputs/chained-private-after-fine/main.swift | 0 .../chained-private-after-fine/main.swiftdeps | Bin .../Inputs/chained-private-after-fine/other.swift | 0 .../chained-private-after-fine/other.swiftdeps | Bin .../Inputs/chained-private-after-fine/output.json | 0 .../chained-private-after-fine/yet-another.swift | 0 .../yet-another.swiftdeps | Bin .../chained-private-after-multiple-fine/main.swift | 0 .../main.swiftdeps | Bin .../chained-private-after-multiple-fine/other.swift | 0 .../other.swiftdeps | Bin .../chained-private-after-multiple-fine/output.json | 0 .../yet-another.swift | 0 .../yet-another.swiftdeps | Bin .../main.swift | 0 .../main.swiftdeps | Bin .../other.swift | 0 .../other.swiftdeps | Bin .../output.json | 0 .../yet-another.swift | 0 .../yet-another.swiftdeps | Bin .../Inputs/chained-private-fine/main.swift | 0 .../Inputs/chained-private-fine/other.swift | 0 .../Inputs/chained-private-fine/output.json | 0 .../Inputs/chained-private-fine/yet-another.swift | 0 .../Inputs/chained/main.swift | 0 .../Inputs/chained/other.swift | 0 .../Inputs/chained/output.json | 0 .../Inputs/chained/yet-another.swift | 0 .../check-interface-implementation-fine/a.swift | 0 .../check-interface-implementation-fine/bad.swift | 0 .../check-interface-implementation-fine/c.swift | 0 .../check-interface-implementation-fine/output.json | 0 .../Inputs/crash-simple-fine/crash.swift | 0 .../Inputs/crash-simple-fine/main.swift | 0 .../Inputs/crash-simple-fine/other.swift | 0 .../Inputs/crash-simple-fine/output.json | 0 .../crash-simple-with-swiftdeps-fine/crash.swift | 0 .../crash.swiftdeps | Bin .../crash-simple-with-swiftdeps-fine/main.swift | 0 .../crash-simple-with-swiftdeps-fine/main.swiftdeps | Bin .../crash-simple-with-swiftdeps-fine/other.swift | 0 .../other.swiftdeps | Bin .../crash-simple-with-swiftdeps-fine/output.json | 0 .../Inputs/fail-chained-fine/a.swift | 0 .../Inputs/fail-chained-fine/b.swift | 0 .../Inputs/fail-chained-fine/bad.swift | 0 .../Inputs/fail-chained-fine/c.swift | 0 .../Inputs/fail-chained-fine/d.swift | 0 .../Inputs/fail-chained-fine/e.swift | 0 .../Inputs/fail-chained-fine/f.swift | 0 .../Inputs/fail-chained-fine/output.json | 0 .../Inputs/fail-interface-hash-fine/bad.swift | 0 .../Inputs/fail-interface-hash-fine/bad.swiftdeps | Bin .../fail-interface-hash-fine/depends-on-bad.swift | 0 .../depends-on-bad.swiftdeps | Bin .../fail-interface-hash-fine/depends-on-main.swift | 0 .../depends-on-main.swiftdeps | Bin .../Inputs/fail-interface-hash-fine/main.swift | 0 .../Inputs/fail-interface-hash-fine/main.swiftdeps | Bin .../Inputs/fail-interface-hash-fine/output.json | 0 .../Inputs/fail-simple-fine/bad.swift | 0 .../Inputs/fail-simple-fine/main.swift | 0 .../Inputs/fail-simple-fine/other.swift | 0 .../Inputs/fail-simple-fine/output.json | 0 .../Inputs/fail-with-bad-deps-fine/bad.swift | 0 .../Inputs/fail-with-bad-deps-fine/bad.swiftdeps | Bin .../fail-with-bad-deps-fine/depends-on-bad.swift | 0 .../depends-on-bad.swiftdeps | Bin .../fail-with-bad-deps-fine/depends-on-main.swift | 0 .../depends-on-main.swiftdeps | Bin .../Inputs/fail-with-bad-deps-fine/main.swift | 0 .../Inputs/fail-with-bad-deps-fine/main.swiftdeps | Bin .../Inputs/fail-with-bad-deps-fine/output.json | 0 .../Inputs/fake-build-for-bitcode.py | 0 .../Inputs/fake-build-whole-module.py | 0 .../Inputs/independent-fine/main.swift | 0 .../Inputs/independent-fine/other.swift | 0 .../Inputs/independent-fine/output.json | 0 .../Inputs/malformed-after-fine/main.swift | 0 .../Inputs/malformed-after-fine/main.swiftdeps | Bin .../Inputs/malformed-after-fine/other.swift | 0 .../Inputs/malformed-after-fine/other.swiftdeps | Bin .../Inputs/malformed-after-fine/output.json | 0 .../Inputs/malformed-but-valid-yaml-fine/main.swift | 0 .../malformed-but-valid-yaml-fine/main.swiftdeps | Bin .../malformed-but-valid-yaml-fine/other.swift | 0 .../malformed-but-valid-yaml-fine/other.swiftdeps | Bin .../malformed-but-valid-yaml-fine/output.json | 0 .../Inputs/modify-non-primary-files.py | 0 .../Inputs/moduleonly/bar.swift | 0 .../Inputs/moduleonly/baz.swift | 0 .../Inputs/moduleonly/foo.swift | 0 .../Inputs/moduleonly/output.json | 0 .../Inputs/mutual-fine/main.swift | 0 .../Inputs/mutual-fine/other.swift | 0 .../Inputs/mutual-fine/output.json | 0 .../mutual-interface-hash-fine/does-change.swift | 0 .../does-change.swiftdeps | Bin .../does-not-change.swift | 0 .../does-not-change.swiftdeps | Bin .../Inputs/mutual-interface-hash-fine/output.json | 0 .../Inputs/mutual-with-swiftdeps-fine/main.swift | 0 .../mutual-with-swiftdeps-fine/main.swiftdeps | Bin .../Inputs/mutual-with-swiftdeps-fine/other.swift | 0 .../mutual-with-swiftdeps-fine/other.swiftdeps | Bin .../Inputs/mutual-with-swiftdeps-fine/output.json | 0 .../Inputs/nominal-members-fine/a-ext.swift | 0 .../Inputs/nominal-members-fine/a.swift | 0 .../nominal-members-fine/depends-on-a-ext.swift | 0 .../nominal-members-fine/depends-on-a-foo.swift | 0 .../Inputs/nominal-members-fine/output.json | 0 .../Inputs/one-way-depends-after-fine/main.swift | 0 .../one-way-depends-after-fine/main.swiftdeps | Bin .../Inputs/one-way-depends-after-fine/other.swift | 0 .../one-way-depends-after-fine/other.swiftdeps | Bin .../Inputs/one-way-depends-after-fine/output.json | 0 .../Inputs/one-way-depends-before-fine/main.swift | 0 .../one-way-depends-before-fine/main.swiftdeps | Bin .../Inputs/one-way-depends-before-fine/other.swift | 0 .../one-way-depends-before-fine/other.swiftdeps | Bin .../Inputs/one-way-depends-before-fine/output.json | 0 .../Inputs/one-way-external-fine/main.swift | 0 .../Inputs/one-way-external-fine/main1-external | 0 .../Inputs/one-way-external-fine/main2-external | 0 .../Inputs/one-way-external-fine/other.swift | 0 .../Inputs/one-way-external-fine/other1-external | 0 .../Inputs/one-way-external-fine/other2-external | 0 .../Inputs/one-way-external-fine/output.json | 0 .../Inputs/one-way-fine/main.swift | 0 .../Inputs/one-way-fine/other.swift | 0 .../Inputs/one-way-fine/output.json | 0 .../Inputs/one-way-provides-after-fine/main.swift | 0 .../one-way-provides-after-fine/main.swiftdeps | Bin .../Inputs/one-way-provides-after-fine/other.swift | 0 .../one-way-provides-after-fine/other.swiftdeps | Bin .../Inputs/one-way-provides-after-fine/output.json | 0 .../Inputs/one-way-provides-before-fine/main.swift | 0 .../one-way-provides-before-fine/main.swiftdeps | Bin .../Inputs/one-way-provides-before-fine/other.swift | 0 .../one-way-provides-before-fine/other.swiftdeps | Bin .../Inputs/one-way-provides-before-fine/output.json | 0 .../Inputs/one-way-with-swiftdeps-fine/main.swift | 0 .../one-way-with-swiftdeps-fine/main.swiftdeps | Bin .../Inputs/one-way-with-swiftdeps-fine/other.swift | 0 .../one-way-with-swiftdeps-fine/other.swiftdeps | Bin .../Inputs/one-way-with-swiftdeps-fine/output.json | 0 .../Inputs/one-way/main.swift | 0 .../Inputs/one-way/other.swift | 0 .../Inputs/one-way/output.json | 0 .../Inputs/only-skip-once/file1.swift | 0 .../Inputs/only-skip-once/file2.swift | 0 .../Inputs/only-skip-once/main.swift | 0 .../Inputs/only-skip-once/output-file-map.json | 0 .../Inputs/private-after-fine/a.swift | 0 .../Inputs/private-after-fine/a.swiftdeps | Bin .../Inputs/private-after-fine/b.swift | 0 .../Inputs/private-after-fine/b.swiftdeps | Bin .../Inputs/private-after-fine/c.swift | 0 .../Inputs/private-after-fine/c.swiftdeps | Bin .../Inputs/private-after-fine/d.swift | 0 .../Inputs/private-after-fine/d.swiftdeps | Bin .../Inputs/private-after-fine/e.swift | 0 .../Inputs/private-after-fine/e.swiftdeps | Bin .../Inputs/private-after-fine/f.swift | 0 .../Inputs/private-after-fine/f.swiftdeps | Bin .../Inputs/private-after-fine/g.swift | 0 .../Inputs/private-after-fine/g.swiftdeps | Bin .../Inputs/private-after-fine/output.json | 0 .../Inputs/private-fine/a.swift | 0 .../Inputs/private-fine/b.swift | 0 .../Inputs/private-fine/c.swift | 0 .../Inputs/private-fine/d.swift | 0 .../Inputs/private-fine/e.swift | 0 .../Inputs/private-fine/output.json | 0 .../Inputs/private/a.swift | 0 .../Inputs/private/b.swift | 0 .../Inputs/private/c.swift | 0 .../Inputs/private/d.swift | 0 .../Inputs/private/e.swift | 0 .../Inputs/private/output.json | 0 .../Inputs/touch.py | 0 .../Inputs/update-dependencies-bad.py | 0 .../Inputs/update-dependencies.py | 0 .../README.txt | 0 .../bindings-build-record.swift | 0 .../chained-additional-kinds-fine.swift | 0 .../chained-after-fine.swift | 0 .../chained-fine.swift | 0 .../chained-private-after-fine.swift | 0 .../chained-private-after-multiple-fine.swift | 0 ...rivate-after-multiple-nominal-members-fine.swift | 0 .../chained-private-fine.swift | 0 .../check-interface-implementation-fine.swift | 0 .../crash-added-fine.swift | 0 .../crash-new-fine.swift | 0 .../crash-simple-fine.swift | 0 .../dependencies-preservation-fine.swift | 0 .../driver-show-incremental-arguments-fine.swift | 0 ...how-incremental-conflicting-arguments-fine.swift | 0 .../driver-show-incremental-inputs-fine.swift | 0 .../driver-show-incremental-malformed-fine.swift | 0 .../driver-show-incremental-mutual-fine.swift | 0 ...driver-show-incremental-swift-version-fine.swift | 0 .../embed-bitcode-parallel-fine.swift | 0 .../fail-added-fine.swift | 0 .../fail-chained-fine.swift | 0 .../fail-interface-hash-fine.swift | 0 .../fail-new-fine.swift | 0 .../fail-simple-fine.swift | 0 .../fail-with-bad-deps-fine.swift | 0 .../file-added-fine.swift | 0 .../independent-fine.swift | 0 .../independent-half-dirty-fine.swift | 0 .../independent-parseable-fine.swift | 0 .../malformed-but-valid-yaml-fine.swift | 0 .../malformed-fine.swift | 0 .../moduleonly.swift | 0 .../mutual-fine.swift | 0 .../mutual-interface-hash-fine.swift | 0 .../nominal-members-fine.swift | 0 .../one-way-depends-after-fine.swift | 0 .../one-way-depends-before-fine.swift | 0 .../one-way-external-delete-fine.swift | 0 .../one-way-external-fine.swift | 0 .../one-way-fine.swift | 0 .../one-way-merge-module-fine.swift | 0 .../one-way-parallel-fine.swift | 0 .../one-way-parseable-fine.swift | 0 .../one-way-provides-after-fine.swift | 0 .../one-way-provides-before-fine.swift | 0 .../one-way-while-editing-fine.swift | 0 .../only-skip-once.swift | 0 .../private-after-fine.swift | 0 .../private-fine.swift | 0 .../whole-module-build-record.swift | 0 259 files changed, 0 insertions(+), 0 deletions(-) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/bindings-build-record/added.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/bindings-build-record/main.o (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/bindings-build-record/main.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/bindings-build-record/other.o (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/bindings-build-record/other.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/bindings-build-record/output.json (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/bindings-build-record/yet-another.o (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/bindings-build-record/yet-another.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/chained-additional-kinds-fine/main.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/chained-additional-kinds-fine/other.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/chained-additional-kinds-fine/output.json (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/chained-additional-kinds-fine/yet-another.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/chained-after-fine/main.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/chained-after-fine/main.swiftdeps (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/chained-after-fine/other.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/chained-after-fine/other.swiftdeps (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/chained-after-fine/output.json (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/chained-after-fine/yet-another.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/chained-after-fine/yet-another.swiftdeps (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/chained-fine/main.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/chained-fine/other.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/chained-fine/output.json (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/chained-fine/yet-another.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/chained-private-after-fine/main.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/chained-private-after-fine/main.swiftdeps (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/chained-private-after-fine/other.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/chained-private-after-fine/other.swiftdeps (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/chained-private-after-fine/output.json (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/chained-private-after-fine/yet-another.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/chained-private-after-fine/yet-another.swiftdeps (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/chained-private-after-multiple-fine/main.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/chained-private-after-multiple-fine/main.swiftdeps (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/chained-private-after-multiple-fine/other.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/chained-private-after-multiple-fine/other.swiftdeps (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/chained-private-after-multiple-fine/output.json (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/chained-private-after-multiple-fine/yet-another.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/chained-private-after-multiple-fine/yet-another.swiftdeps (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/chained-private-after-multiple-nominal-members-fine/main.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/chained-private-after-multiple-nominal-members-fine/main.swiftdeps (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/chained-private-after-multiple-nominal-members-fine/other.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/chained-private-after-multiple-nominal-members-fine/other.swiftdeps (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/chained-private-after-multiple-nominal-members-fine/output.json (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/chained-private-after-multiple-nominal-members-fine/yet-another.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/chained-private-after-multiple-nominal-members-fine/yet-another.swiftdeps (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/chained-private-fine/main.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/chained-private-fine/other.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/chained-private-fine/output.json (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/chained-private-fine/yet-another.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/chained/main.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/chained/other.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/chained/output.json (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/chained/yet-another.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/check-interface-implementation-fine/a.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/check-interface-implementation-fine/bad.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/check-interface-implementation-fine/c.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/check-interface-implementation-fine/output.json (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/crash-simple-fine/crash.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/crash-simple-fine/main.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/crash-simple-fine/other.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/crash-simple-fine/output.json (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/crash-simple-with-swiftdeps-fine/crash.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/crash-simple-with-swiftdeps-fine/crash.swiftdeps (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/crash-simple-with-swiftdeps-fine/main.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/crash-simple-with-swiftdeps-fine/main.swiftdeps (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/crash-simple-with-swiftdeps-fine/other.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/crash-simple-with-swiftdeps-fine/other.swiftdeps (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/crash-simple-with-swiftdeps-fine/output.json (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/fail-chained-fine/a.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/fail-chained-fine/b.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/fail-chained-fine/bad.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/fail-chained-fine/c.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/fail-chained-fine/d.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/fail-chained-fine/e.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/fail-chained-fine/f.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/fail-chained-fine/output.json (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/fail-interface-hash-fine/bad.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/fail-interface-hash-fine/bad.swiftdeps (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/fail-interface-hash-fine/depends-on-bad.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/fail-interface-hash-fine/depends-on-bad.swiftdeps (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/fail-interface-hash-fine/depends-on-main.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/fail-interface-hash-fine/depends-on-main.swiftdeps (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/fail-interface-hash-fine/main.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/fail-interface-hash-fine/main.swiftdeps (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/fail-interface-hash-fine/output.json (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/fail-simple-fine/bad.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/fail-simple-fine/main.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/fail-simple-fine/other.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/fail-simple-fine/output.json (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/fail-with-bad-deps-fine/bad.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/fail-with-bad-deps-fine/bad.swiftdeps (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/fail-with-bad-deps-fine/depends-on-bad.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/fail-with-bad-deps-fine/depends-on-bad.swiftdeps (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/fail-with-bad-deps-fine/depends-on-main.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/fail-with-bad-deps-fine/depends-on-main.swiftdeps (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/fail-with-bad-deps-fine/main.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/fail-with-bad-deps-fine/main.swiftdeps (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/fail-with-bad-deps-fine/output.json (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/fake-build-for-bitcode.py (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/fake-build-whole-module.py (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/independent-fine/main.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/independent-fine/other.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/independent-fine/output.json (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/malformed-after-fine/main.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/malformed-after-fine/main.swiftdeps (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/malformed-after-fine/other.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/malformed-after-fine/other.swiftdeps (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/malformed-after-fine/output.json (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/malformed-but-valid-yaml-fine/main.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/malformed-but-valid-yaml-fine/main.swiftdeps (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/malformed-but-valid-yaml-fine/other.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/malformed-but-valid-yaml-fine/other.swiftdeps (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/malformed-but-valid-yaml-fine/output.json (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/modify-non-primary-files.py (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/moduleonly/bar.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/moduleonly/baz.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/moduleonly/foo.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/moduleonly/output.json (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/mutual-fine/main.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/mutual-fine/other.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/mutual-fine/output.json (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/mutual-interface-hash-fine/does-change.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/mutual-interface-hash-fine/does-change.swiftdeps (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/mutual-interface-hash-fine/does-not-change.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/mutual-interface-hash-fine/does-not-change.swiftdeps (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/mutual-interface-hash-fine/output.json (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/mutual-with-swiftdeps-fine/main.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/mutual-with-swiftdeps-fine/main.swiftdeps (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/mutual-with-swiftdeps-fine/other.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/mutual-with-swiftdeps-fine/other.swiftdeps (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/mutual-with-swiftdeps-fine/output.json (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/nominal-members-fine/a-ext.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/nominal-members-fine/a.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/nominal-members-fine/depends-on-a-ext.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/nominal-members-fine/depends-on-a-foo.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/nominal-members-fine/output.json (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/one-way-depends-after-fine/main.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/one-way-depends-after-fine/main.swiftdeps (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/one-way-depends-after-fine/other.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/one-way-depends-after-fine/other.swiftdeps (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/one-way-depends-after-fine/output.json (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/one-way-depends-before-fine/main.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/one-way-depends-before-fine/main.swiftdeps (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/one-way-depends-before-fine/other.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/one-way-depends-before-fine/other.swiftdeps (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/one-way-depends-before-fine/output.json (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/one-way-external-fine/main.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/one-way-external-fine/main1-external (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/one-way-external-fine/main2-external (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/one-way-external-fine/other.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/one-way-external-fine/other1-external (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/one-way-external-fine/other2-external (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/one-way-external-fine/output.json (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/one-way-fine/main.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/one-way-fine/other.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/one-way-fine/output.json (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/one-way-provides-after-fine/main.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/one-way-provides-after-fine/main.swiftdeps (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/one-way-provides-after-fine/other.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/one-way-provides-after-fine/other.swiftdeps (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/one-way-provides-after-fine/output.json (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/one-way-provides-before-fine/main.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/one-way-provides-before-fine/main.swiftdeps (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/one-way-provides-before-fine/other.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/one-way-provides-before-fine/other.swiftdeps (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/one-way-provides-before-fine/output.json (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/one-way-with-swiftdeps-fine/main.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/one-way-with-swiftdeps-fine/main.swiftdeps (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/one-way-with-swiftdeps-fine/other.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/one-way-with-swiftdeps-fine/other.swiftdeps (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/one-way-with-swiftdeps-fine/output.json (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/one-way/main.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/one-way/other.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/one-way/output.json (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/only-skip-once/file1.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/only-skip-once/file2.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/only-skip-once/main.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/only-skip-once/output-file-map.json (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/private-after-fine/a.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/private-after-fine/a.swiftdeps (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/private-after-fine/b.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/private-after-fine/b.swiftdeps (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/private-after-fine/c.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/private-after-fine/c.swiftdeps (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/private-after-fine/d.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/private-after-fine/d.swiftdeps (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/private-after-fine/e.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/private-after-fine/e.swiftdeps (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/private-after-fine/f.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/private-after-fine/f.swiftdeps (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/private-after-fine/g.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/private-after-fine/g.swiftdeps (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/private-after-fine/output.json (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/private-fine/a.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/private-fine/b.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/private-fine/c.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/private-fine/d.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/private-fine/e.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/private-fine/output.json (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/private/a.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/private/b.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/private/c.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/private/d.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/private/e.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/private/output.json (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/touch.py (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/update-dependencies-bad.py (100%) rename test/Driver/{PrivateDependencies => Dependencies}/Inputs/update-dependencies.py (100%) rename test/Driver/{PrivateDependencies => Dependencies}/README.txt (100%) rename test/Driver/{PrivateDependencies => Dependencies}/bindings-build-record.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/chained-additional-kinds-fine.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/chained-after-fine.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/chained-fine.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/chained-private-after-fine.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/chained-private-after-multiple-fine.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/chained-private-after-multiple-nominal-members-fine.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/chained-private-fine.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/check-interface-implementation-fine.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/crash-added-fine.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/crash-new-fine.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/crash-simple-fine.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/dependencies-preservation-fine.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/driver-show-incremental-arguments-fine.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/driver-show-incremental-conflicting-arguments-fine.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/driver-show-incremental-inputs-fine.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/driver-show-incremental-malformed-fine.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/driver-show-incremental-mutual-fine.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/driver-show-incremental-swift-version-fine.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/embed-bitcode-parallel-fine.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/fail-added-fine.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/fail-chained-fine.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/fail-interface-hash-fine.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/fail-new-fine.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/fail-simple-fine.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/fail-with-bad-deps-fine.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/file-added-fine.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/independent-fine.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/independent-half-dirty-fine.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/independent-parseable-fine.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/malformed-but-valid-yaml-fine.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/malformed-fine.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/moduleonly.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/mutual-fine.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/mutual-interface-hash-fine.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/nominal-members-fine.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/one-way-depends-after-fine.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/one-way-depends-before-fine.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/one-way-external-delete-fine.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/one-way-external-fine.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/one-way-fine.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/one-way-merge-module-fine.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/one-way-parallel-fine.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/one-way-parseable-fine.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/one-way-provides-after-fine.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/one-way-provides-before-fine.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/one-way-while-editing-fine.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/only-skip-once.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/private-after-fine.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/private-fine.swift (100%) rename test/Driver/{PrivateDependencies => Dependencies}/whole-module-build-record.swift (100%) diff --git a/test/Driver/PrivateDependencies/Inputs/bindings-build-record/added.swift b/test/Driver/Dependencies/Inputs/bindings-build-record/added.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/bindings-build-record/added.swift rename to test/Driver/Dependencies/Inputs/bindings-build-record/added.swift diff --git a/test/Driver/PrivateDependencies/Inputs/bindings-build-record/main.o b/test/Driver/Dependencies/Inputs/bindings-build-record/main.o similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/bindings-build-record/main.o rename to test/Driver/Dependencies/Inputs/bindings-build-record/main.o diff --git a/test/Driver/PrivateDependencies/Inputs/bindings-build-record/main.swift b/test/Driver/Dependencies/Inputs/bindings-build-record/main.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/bindings-build-record/main.swift rename to test/Driver/Dependencies/Inputs/bindings-build-record/main.swift diff --git a/test/Driver/PrivateDependencies/Inputs/bindings-build-record/other.o b/test/Driver/Dependencies/Inputs/bindings-build-record/other.o similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/bindings-build-record/other.o rename to test/Driver/Dependencies/Inputs/bindings-build-record/other.o diff --git a/test/Driver/PrivateDependencies/Inputs/bindings-build-record/other.swift b/test/Driver/Dependencies/Inputs/bindings-build-record/other.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/bindings-build-record/other.swift rename to test/Driver/Dependencies/Inputs/bindings-build-record/other.swift diff --git a/test/Driver/PrivateDependencies/Inputs/bindings-build-record/output.json b/test/Driver/Dependencies/Inputs/bindings-build-record/output.json similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/bindings-build-record/output.json rename to test/Driver/Dependencies/Inputs/bindings-build-record/output.json diff --git a/test/Driver/PrivateDependencies/Inputs/bindings-build-record/yet-another.o b/test/Driver/Dependencies/Inputs/bindings-build-record/yet-another.o similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/bindings-build-record/yet-another.o rename to test/Driver/Dependencies/Inputs/bindings-build-record/yet-another.o diff --git a/test/Driver/PrivateDependencies/Inputs/bindings-build-record/yet-another.swift b/test/Driver/Dependencies/Inputs/bindings-build-record/yet-another.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/bindings-build-record/yet-another.swift rename to test/Driver/Dependencies/Inputs/bindings-build-record/yet-another.swift diff --git a/test/Driver/PrivateDependencies/Inputs/chained-additional-kinds-fine/main.swift b/test/Driver/Dependencies/Inputs/chained-additional-kinds-fine/main.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/chained-additional-kinds-fine/main.swift rename to test/Driver/Dependencies/Inputs/chained-additional-kinds-fine/main.swift diff --git a/test/Driver/PrivateDependencies/Inputs/chained-additional-kinds-fine/other.swift b/test/Driver/Dependencies/Inputs/chained-additional-kinds-fine/other.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/chained-additional-kinds-fine/other.swift rename to test/Driver/Dependencies/Inputs/chained-additional-kinds-fine/other.swift diff --git a/test/Driver/PrivateDependencies/Inputs/chained-additional-kinds-fine/output.json b/test/Driver/Dependencies/Inputs/chained-additional-kinds-fine/output.json similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/chained-additional-kinds-fine/output.json rename to test/Driver/Dependencies/Inputs/chained-additional-kinds-fine/output.json diff --git a/test/Driver/PrivateDependencies/Inputs/chained-additional-kinds-fine/yet-another.swift b/test/Driver/Dependencies/Inputs/chained-additional-kinds-fine/yet-another.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/chained-additional-kinds-fine/yet-another.swift rename to test/Driver/Dependencies/Inputs/chained-additional-kinds-fine/yet-another.swift diff --git a/test/Driver/PrivateDependencies/Inputs/chained-after-fine/main.swift b/test/Driver/Dependencies/Inputs/chained-after-fine/main.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/chained-after-fine/main.swift rename to test/Driver/Dependencies/Inputs/chained-after-fine/main.swift diff --git a/test/Driver/PrivateDependencies/Inputs/chained-after-fine/main.swiftdeps b/test/Driver/Dependencies/Inputs/chained-after-fine/main.swiftdeps similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/chained-after-fine/main.swiftdeps rename to test/Driver/Dependencies/Inputs/chained-after-fine/main.swiftdeps diff --git a/test/Driver/PrivateDependencies/Inputs/chained-after-fine/other.swift b/test/Driver/Dependencies/Inputs/chained-after-fine/other.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/chained-after-fine/other.swift rename to test/Driver/Dependencies/Inputs/chained-after-fine/other.swift diff --git a/test/Driver/PrivateDependencies/Inputs/chained-after-fine/other.swiftdeps b/test/Driver/Dependencies/Inputs/chained-after-fine/other.swiftdeps similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/chained-after-fine/other.swiftdeps rename to test/Driver/Dependencies/Inputs/chained-after-fine/other.swiftdeps diff --git a/test/Driver/PrivateDependencies/Inputs/chained-after-fine/output.json b/test/Driver/Dependencies/Inputs/chained-after-fine/output.json similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/chained-after-fine/output.json rename to test/Driver/Dependencies/Inputs/chained-after-fine/output.json diff --git a/test/Driver/PrivateDependencies/Inputs/chained-after-fine/yet-another.swift b/test/Driver/Dependencies/Inputs/chained-after-fine/yet-another.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/chained-after-fine/yet-another.swift rename to test/Driver/Dependencies/Inputs/chained-after-fine/yet-another.swift diff --git a/test/Driver/PrivateDependencies/Inputs/chained-after-fine/yet-another.swiftdeps b/test/Driver/Dependencies/Inputs/chained-after-fine/yet-another.swiftdeps similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/chained-after-fine/yet-another.swiftdeps rename to test/Driver/Dependencies/Inputs/chained-after-fine/yet-another.swiftdeps diff --git a/test/Driver/PrivateDependencies/Inputs/chained-fine/main.swift b/test/Driver/Dependencies/Inputs/chained-fine/main.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/chained-fine/main.swift rename to test/Driver/Dependencies/Inputs/chained-fine/main.swift diff --git a/test/Driver/PrivateDependencies/Inputs/chained-fine/other.swift b/test/Driver/Dependencies/Inputs/chained-fine/other.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/chained-fine/other.swift rename to test/Driver/Dependencies/Inputs/chained-fine/other.swift diff --git a/test/Driver/PrivateDependencies/Inputs/chained-fine/output.json b/test/Driver/Dependencies/Inputs/chained-fine/output.json similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/chained-fine/output.json rename to test/Driver/Dependencies/Inputs/chained-fine/output.json diff --git a/test/Driver/PrivateDependencies/Inputs/chained-fine/yet-another.swift b/test/Driver/Dependencies/Inputs/chained-fine/yet-another.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/chained-fine/yet-another.swift rename to test/Driver/Dependencies/Inputs/chained-fine/yet-another.swift diff --git a/test/Driver/PrivateDependencies/Inputs/chained-private-after-fine/main.swift b/test/Driver/Dependencies/Inputs/chained-private-after-fine/main.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/chained-private-after-fine/main.swift rename to test/Driver/Dependencies/Inputs/chained-private-after-fine/main.swift diff --git a/test/Driver/PrivateDependencies/Inputs/chained-private-after-fine/main.swiftdeps b/test/Driver/Dependencies/Inputs/chained-private-after-fine/main.swiftdeps similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/chained-private-after-fine/main.swiftdeps rename to test/Driver/Dependencies/Inputs/chained-private-after-fine/main.swiftdeps diff --git a/test/Driver/PrivateDependencies/Inputs/chained-private-after-fine/other.swift b/test/Driver/Dependencies/Inputs/chained-private-after-fine/other.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/chained-private-after-fine/other.swift rename to test/Driver/Dependencies/Inputs/chained-private-after-fine/other.swift diff --git a/test/Driver/PrivateDependencies/Inputs/chained-private-after-fine/other.swiftdeps b/test/Driver/Dependencies/Inputs/chained-private-after-fine/other.swiftdeps similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/chained-private-after-fine/other.swiftdeps rename to test/Driver/Dependencies/Inputs/chained-private-after-fine/other.swiftdeps diff --git a/test/Driver/PrivateDependencies/Inputs/chained-private-after-fine/output.json b/test/Driver/Dependencies/Inputs/chained-private-after-fine/output.json similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/chained-private-after-fine/output.json rename to test/Driver/Dependencies/Inputs/chained-private-after-fine/output.json diff --git a/test/Driver/PrivateDependencies/Inputs/chained-private-after-fine/yet-another.swift b/test/Driver/Dependencies/Inputs/chained-private-after-fine/yet-another.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/chained-private-after-fine/yet-another.swift rename to test/Driver/Dependencies/Inputs/chained-private-after-fine/yet-another.swift diff --git a/test/Driver/PrivateDependencies/Inputs/chained-private-after-fine/yet-another.swiftdeps b/test/Driver/Dependencies/Inputs/chained-private-after-fine/yet-another.swiftdeps similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/chained-private-after-fine/yet-another.swiftdeps rename to test/Driver/Dependencies/Inputs/chained-private-after-fine/yet-another.swiftdeps diff --git a/test/Driver/PrivateDependencies/Inputs/chained-private-after-multiple-fine/main.swift b/test/Driver/Dependencies/Inputs/chained-private-after-multiple-fine/main.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/chained-private-after-multiple-fine/main.swift rename to test/Driver/Dependencies/Inputs/chained-private-after-multiple-fine/main.swift diff --git a/test/Driver/PrivateDependencies/Inputs/chained-private-after-multiple-fine/main.swiftdeps b/test/Driver/Dependencies/Inputs/chained-private-after-multiple-fine/main.swiftdeps similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/chained-private-after-multiple-fine/main.swiftdeps rename to test/Driver/Dependencies/Inputs/chained-private-after-multiple-fine/main.swiftdeps diff --git a/test/Driver/PrivateDependencies/Inputs/chained-private-after-multiple-fine/other.swift b/test/Driver/Dependencies/Inputs/chained-private-after-multiple-fine/other.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/chained-private-after-multiple-fine/other.swift rename to test/Driver/Dependencies/Inputs/chained-private-after-multiple-fine/other.swift diff --git a/test/Driver/PrivateDependencies/Inputs/chained-private-after-multiple-fine/other.swiftdeps b/test/Driver/Dependencies/Inputs/chained-private-after-multiple-fine/other.swiftdeps similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/chained-private-after-multiple-fine/other.swiftdeps rename to test/Driver/Dependencies/Inputs/chained-private-after-multiple-fine/other.swiftdeps diff --git a/test/Driver/PrivateDependencies/Inputs/chained-private-after-multiple-fine/output.json b/test/Driver/Dependencies/Inputs/chained-private-after-multiple-fine/output.json similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/chained-private-after-multiple-fine/output.json rename to test/Driver/Dependencies/Inputs/chained-private-after-multiple-fine/output.json diff --git a/test/Driver/PrivateDependencies/Inputs/chained-private-after-multiple-fine/yet-another.swift b/test/Driver/Dependencies/Inputs/chained-private-after-multiple-fine/yet-another.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/chained-private-after-multiple-fine/yet-another.swift rename to test/Driver/Dependencies/Inputs/chained-private-after-multiple-fine/yet-another.swift diff --git a/test/Driver/PrivateDependencies/Inputs/chained-private-after-multiple-fine/yet-another.swiftdeps b/test/Driver/Dependencies/Inputs/chained-private-after-multiple-fine/yet-another.swiftdeps similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/chained-private-after-multiple-fine/yet-another.swiftdeps rename to test/Driver/Dependencies/Inputs/chained-private-after-multiple-fine/yet-another.swiftdeps diff --git a/test/Driver/PrivateDependencies/Inputs/chained-private-after-multiple-nominal-members-fine/main.swift b/test/Driver/Dependencies/Inputs/chained-private-after-multiple-nominal-members-fine/main.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/chained-private-after-multiple-nominal-members-fine/main.swift rename to test/Driver/Dependencies/Inputs/chained-private-after-multiple-nominal-members-fine/main.swift diff --git a/test/Driver/PrivateDependencies/Inputs/chained-private-after-multiple-nominal-members-fine/main.swiftdeps b/test/Driver/Dependencies/Inputs/chained-private-after-multiple-nominal-members-fine/main.swiftdeps similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/chained-private-after-multiple-nominal-members-fine/main.swiftdeps rename to test/Driver/Dependencies/Inputs/chained-private-after-multiple-nominal-members-fine/main.swiftdeps diff --git a/test/Driver/PrivateDependencies/Inputs/chained-private-after-multiple-nominal-members-fine/other.swift b/test/Driver/Dependencies/Inputs/chained-private-after-multiple-nominal-members-fine/other.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/chained-private-after-multiple-nominal-members-fine/other.swift rename to test/Driver/Dependencies/Inputs/chained-private-after-multiple-nominal-members-fine/other.swift diff --git a/test/Driver/PrivateDependencies/Inputs/chained-private-after-multiple-nominal-members-fine/other.swiftdeps b/test/Driver/Dependencies/Inputs/chained-private-after-multiple-nominal-members-fine/other.swiftdeps similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/chained-private-after-multiple-nominal-members-fine/other.swiftdeps rename to test/Driver/Dependencies/Inputs/chained-private-after-multiple-nominal-members-fine/other.swiftdeps diff --git a/test/Driver/PrivateDependencies/Inputs/chained-private-after-multiple-nominal-members-fine/output.json b/test/Driver/Dependencies/Inputs/chained-private-after-multiple-nominal-members-fine/output.json similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/chained-private-after-multiple-nominal-members-fine/output.json rename to test/Driver/Dependencies/Inputs/chained-private-after-multiple-nominal-members-fine/output.json diff --git a/test/Driver/PrivateDependencies/Inputs/chained-private-after-multiple-nominal-members-fine/yet-another.swift b/test/Driver/Dependencies/Inputs/chained-private-after-multiple-nominal-members-fine/yet-another.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/chained-private-after-multiple-nominal-members-fine/yet-another.swift rename to test/Driver/Dependencies/Inputs/chained-private-after-multiple-nominal-members-fine/yet-another.swift diff --git a/test/Driver/PrivateDependencies/Inputs/chained-private-after-multiple-nominal-members-fine/yet-another.swiftdeps b/test/Driver/Dependencies/Inputs/chained-private-after-multiple-nominal-members-fine/yet-another.swiftdeps similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/chained-private-after-multiple-nominal-members-fine/yet-another.swiftdeps rename to test/Driver/Dependencies/Inputs/chained-private-after-multiple-nominal-members-fine/yet-another.swiftdeps diff --git a/test/Driver/PrivateDependencies/Inputs/chained-private-fine/main.swift b/test/Driver/Dependencies/Inputs/chained-private-fine/main.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/chained-private-fine/main.swift rename to test/Driver/Dependencies/Inputs/chained-private-fine/main.swift diff --git a/test/Driver/PrivateDependencies/Inputs/chained-private-fine/other.swift b/test/Driver/Dependencies/Inputs/chained-private-fine/other.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/chained-private-fine/other.swift rename to test/Driver/Dependencies/Inputs/chained-private-fine/other.swift diff --git a/test/Driver/PrivateDependencies/Inputs/chained-private-fine/output.json b/test/Driver/Dependencies/Inputs/chained-private-fine/output.json similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/chained-private-fine/output.json rename to test/Driver/Dependencies/Inputs/chained-private-fine/output.json diff --git a/test/Driver/PrivateDependencies/Inputs/chained-private-fine/yet-another.swift b/test/Driver/Dependencies/Inputs/chained-private-fine/yet-another.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/chained-private-fine/yet-another.swift rename to test/Driver/Dependencies/Inputs/chained-private-fine/yet-another.swift diff --git a/test/Driver/PrivateDependencies/Inputs/chained/main.swift b/test/Driver/Dependencies/Inputs/chained/main.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/chained/main.swift rename to test/Driver/Dependencies/Inputs/chained/main.swift diff --git a/test/Driver/PrivateDependencies/Inputs/chained/other.swift b/test/Driver/Dependencies/Inputs/chained/other.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/chained/other.swift rename to test/Driver/Dependencies/Inputs/chained/other.swift diff --git a/test/Driver/PrivateDependencies/Inputs/chained/output.json b/test/Driver/Dependencies/Inputs/chained/output.json similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/chained/output.json rename to test/Driver/Dependencies/Inputs/chained/output.json diff --git a/test/Driver/PrivateDependencies/Inputs/chained/yet-another.swift b/test/Driver/Dependencies/Inputs/chained/yet-another.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/chained/yet-another.swift rename to test/Driver/Dependencies/Inputs/chained/yet-another.swift diff --git a/test/Driver/PrivateDependencies/Inputs/check-interface-implementation-fine/a.swift b/test/Driver/Dependencies/Inputs/check-interface-implementation-fine/a.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/check-interface-implementation-fine/a.swift rename to test/Driver/Dependencies/Inputs/check-interface-implementation-fine/a.swift diff --git a/test/Driver/PrivateDependencies/Inputs/check-interface-implementation-fine/bad.swift b/test/Driver/Dependencies/Inputs/check-interface-implementation-fine/bad.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/check-interface-implementation-fine/bad.swift rename to test/Driver/Dependencies/Inputs/check-interface-implementation-fine/bad.swift diff --git a/test/Driver/PrivateDependencies/Inputs/check-interface-implementation-fine/c.swift b/test/Driver/Dependencies/Inputs/check-interface-implementation-fine/c.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/check-interface-implementation-fine/c.swift rename to test/Driver/Dependencies/Inputs/check-interface-implementation-fine/c.swift diff --git a/test/Driver/PrivateDependencies/Inputs/check-interface-implementation-fine/output.json b/test/Driver/Dependencies/Inputs/check-interface-implementation-fine/output.json similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/check-interface-implementation-fine/output.json rename to test/Driver/Dependencies/Inputs/check-interface-implementation-fine/output.json diff --git a/test/Driver/PrivateDependencies/Inputs/crash-simple-fine/crash.swift b/test/Driver/Dependencies/Inputs/crash-simple-fine/crash.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/crash-simple-fine/crash.swift rename to test/Driver/Dependencies/Inputs/crash-simple-fine/crash.swift diff --git a/test/Driver/PrivateDependencies/Inputs/crash-simple-fine/main.swift b/test/Driver/Dependencies/Inputs/crash-simple-fine/main.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/crash-simple-fine/main.swift rename to test/Driver/Dependencies/Inputs/crash-simple-fine/main.swift diff --git a/test/Driver/PrivateDependencies/Inputs/crash-simple-fine/other.swift b/test/Driver/Dependencies/Inputs/crash-simple-fine/other.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/crash-simple-fine/other.swift rename to test/Driver/Dependencies/Inputs/crash-simple-fine/other.swift diff --git a/test/Driver/PrivateDependencies/Inputs/crash-simple-fine/output.json b/test/Driver/Dependencies/Inputs/crash-simple-fine/output.json similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/crash-simple-fine/output.json rename to test/Driver/Dependencies/Inputs/crash-simple-fine/output.json diff --git a/test/Driver/PrivateDependencies/Inputs/crash-simple-with-swiftdeps-fine/crash.swift b/test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps-fine/crash.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/crash-simple-with-swiftdeps-fine/crash.swift rename to test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps-fine/crash.swift diff --git a/test/Driver/PrivateDependencies/Inputs/crash-simple-with-swiftdeps-fine/crash.swiftdeps b/test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps-fine/crash.swiftdeps similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/crash-simple-with-swiftdeps-fine/crash.swiftdeps rename to test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps-fine/crash.swiftdeps diff --git a/test/Driver/PrivateDependencies/Inputs/crash-simple-with-swiftdeps-fine/main.swift b/test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps-fine/main.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/crash-simple-with-swiftdeps-fine/main.swift rename to test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps-fine/main.swift diff --git a/test/Driver/PrivateDependencies/Inputs/crash-simple-with-swiftdeps-fine/main.swiftdeps b/test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps-fine/main.swiftdeps similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/crash-simple-with-swiftdeps-fine/main.swiftdeps rename to test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps-fine/main.swiftdeps diff --git a/test/Driver/PrivateDependencies/Inputs/crash-simple-with-swiftdeps-fine/other.swift b/test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps-fine/other.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/crash-simple-with-swiftdeps-fine/other.swift rename to test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps-fine/other.swift diff --git a/test/Driver/PrivateDependencies/Inputs/crash-simple-with-swiftdeps-fine/other.swiftdeps b/test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps-fine/other.swiftdeps similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/crash-simple-with-swiftdeps-fine/other.swiftdeps rename to test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps-fine/other.swiftdeps diff --git a/test/Driver/PrivateDependencies/Inputs/crash-simple-with-swiftdeps-fine/output.json b/test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps-fine/output.json similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/crash-simple-with-swiftdeps-fine/output.json rename to test/Driver/Dependencies/Inputs/crash-simple-with-swiftdeps-fine/output.json diff --git a/test/Driver/PrivateDependencies/Inputs/fail-chained-fine/a.swift b/test/Driver/Dependencies/Inputs/fail-chained-fine/a.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/fail-chained-fine/a.swift rename to test/Driver/Dependencies/Inputs/fail-chained-fine/a.swift diff --git a/test/Driver/PrivateDependencies/Inputs/fail-chained-fine/b.swift b/test/Driver/Dependencies/Inputs/fail-chained-fine/b.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/fail-chained-fine/b.swift rename to test/Driver/Dependencies/Inputs/fail-chained-fine/b.swift diff --git a/test/Driver/PrivateDependencies/Inputs/fail-chained-fine/bad.swift b/test/Driver/Dependencies/Inputs/fail-chained-fine/bad.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/fail-chained-fine/bad.swift rename to test/Driver/Dependencies/Inputs/fail-chained-fine/bad.swift diff --git a/test/Driver/PrivateDependencies/Inputs/fail-chained-fine/c.swift b/test/Driver/Dependencies/Inputs/fail-chained-fine/c.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/fail-chained-fine/c.swift rename to test/Driver/Dependencies/Inputs/fail-chained-fine/c.swift diff --git a/test/Driver/PrivateDependencies/Inputs/fail-chained-fine/d.swift b/test/Driver/Dependencies/Inputs/fail-chained-fine/d.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/fail-chained-fine/d.swift rename to test/Driver/Dependencies/Inputs/fail-chained-fine/d.swift diff --git a/test/Driver/PrivateDependencies/Inputs/fail-chained-fine/e.swift b/test/Driver/Dependencies/Inputs/fail-chained-fine/e.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/fail-chained-fine/e.swift rename to test/Driver/Dependencies/Inputs/fail-chained-fine/e.swift diff --git a/test/Driver/PrivateDependencies/Inputs/fail-chained-fine/f.swift b/test/Driver/Dependencies/Inputs/fail-chained-fine/f.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/fail-chained-fine/f.swift rename to test/Driver/Dependencies/Inputs/fail-chained-fine/f.swift diff --git a/test/Driver/PrivateDependencies/Inputs/fail-chained-fine/output.json b/test/Driver/Dependencies/Inputs/fail-chained-fine/output.json similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/fail-chained-fine/output.json rename to test/Driver/Dependencies/Inputs/fail-chained-fine/output.json diff --git a/test/Driver/PrivateDependencies/Inputs/fail-interface-hash-fine/bad.swift b/test/Driver/Dependencies/Inputs/fail-interface-hash-fine/bad.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/fail-interface-hash-fine/bad.swift rename to test/Driver/Dependencies/Inputs/fail-interface-hash-fine/bad.swift diff --git a/test/Driver/PrivateDependencies/Inputs/fail-interface-hash-fine/bad.swiftdeps b/test/Driver/Dependencies/Inputs/fail-interface-hash-fine/bad.swiftdeps similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/fail-interface-hash-fine/bad.swiftdeps rename to test/Driver/Dependencies/Inputs/fail-interface-hash-fine/bad.swiftdeps diff --git a/test/Driver/PrivateDependencies/Inputs/fail-interface-hash-fine/depends-on-bad.swift b/test/Driver/Dependencies/Inputs/fail-interface-hash-fine/depends-on-bad.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/fail-interface-hash-fine/depends-on-bad.swift rename to test/Driver/Dependencies/Inputs/fail-interface-hash-fine/depends-on-bad.swift diff --git a/test/Driver/PrivateDependencies/Inputs/fail-interface-hash-fine/depends-on-bad.swiftdeps b/test/Driver/Dependencies/Inputs/fail-interface-hash-fine/depends-on-bad.swiftdeps similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/fail-interface-hash-fine/depends-on-bad.swiftdeps rename to test/Driver/Dependencies/Inputs/fail-interface-hash-fine/depends-on-bad.swiftdeps diff --git a/test/Driver/PrivateDependencies/Inputs/fail-interface-hash-fine/depends-on-main.swift b/test/Driver/Dependencies/Inputs/fail-interface-hash-fine/depends-on-main.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/fail-interface-hash-fine/depends-on-main.swift rename to test/Driver/Dependencies/Inputs/fail-interface-hash-fine/depends-on-main.swift diff --git a/test/Driver/PrivateDependencies/Inputs/fail-interface-hash-fine/depends-on-main.swiftdeps b/test/Driver/Dependencies/Inputs/fail-interface-hash-fine/depends-on-main.swiftdeps similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/fail-interface-hash-fine/depends-on-main.swiftdeps rename to test/Driver/Dependencies/Inputs/fail-interface-hash-fine/depends-on-main.swiftdeps diff --git a/test/Driver/PrivateDependencies/Inputs/fail-interface-hash-fine/main.swift b/test/Driver/Dependencies/Inputs/fail-interface-hash-fine/main.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/fail-interface-hash-fine/main.swift rename to test/Driver/Dependencies/Inputs/fail-interface-hash-fine/main.swift diff --git a/test/Driver/PrivateDependencies/Inputs/fail-interface-hash-fine/main.swiftdeps b/test/Driver/Dependencies/Inputs/fail-interface-hash-fine/main.swiftdeps similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/fail-interface-hash-fine/main.swiftdeps rename to test/Driver/Dependencies/Inputs/fail-interface-hash-fine/main.swiftdeps diff --git a/test/Driver/PrivateDependencies/Inputs/fail-interface-hash-fine/output.json b/test/Driver/Dependencies/Inputs/fail-interface-hash-fine/output.json similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/fail-interface-hash-fine/output.json rename to test/Driver/Dependencies/Inputs/fail-interface-hash-fine/output.json diff --git a/test/Driver/PrivateDependencies/Inputs/fail-simple-fine/bad.swift b/test/Driver/Dependencies/Inputs/fail-simple-fine/bad.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/fail-simple-fine/bad.swift rename to test/Driver/Dependencies/Inputs/fail-simple-fine/bad.swift diff --git a/test/Driver/PrivateDependencies/Inputs/fail-simple-fine/main.swift b/test/Driver/Dependencies/Inputs/fail-simple-fine/main.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/fail-simple-fine/main.swift rename to test/Driver/Dependencies/Inputs/fail-simple-fine/main.swift diff --git a/test/Driver/PrivateDependencies/Inputs/fail-simple-fine/other.swift b/test/Driver/Dependencies/Inputs/fail-simple-fine/other.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/fail-simple-fine/other.swift rename to test/Driver/Dependencies/Inputs/fail-simple-fine/other.swift diff --git a/test/Driver/PrivateDependencies/Inputs/fail-simple-fine/output.json b/test/Driver/Dependencies/Inputs/fail-simple-fine/output.json similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/fail-simple-fine/output.json rename to test/Driver/Dependencies/Inputs/fail-simple-fine/output.json diff --git a/test/Driver/PrivateDependencies/Inputs/fail-with-bad-deps-fine/bad.swift b/test/Driver/Dependencies/Inputs/fail-with-bad-deps-fine/bad.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/fail-with-bad-deps-fine/bad.swift rename to test/Driver/Dependencies/Inputs/fail-with-bad-deps-fine/bad.swift diff --git a/test/Driver/PrivateDependencies/Inputs/fail-with-bad-deps-fine/bad.swiftdeps b/test/Driver/Dependencies/Inputs/fail-with-bad-deps-fine/bad.swiftdeps similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/fail-with-bad-deps-fine/bad.swiftdeps rename to test/Driver/Dependencies/Inputs/fail-with-bad-deps-fine/bad.swiftdeps diff --git a/test/Driver/PrivateDependencies/Inputs/fail-with-bad-deps-fine/depends-on-bad.swift b/test/Driver/Dependencies/Inputs/fail-with-bad-deps-fine/depends-on-bad.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/fail-with-bad-deps-fine/depends-on-bad.swift rename to test/Driver/Dependencies/Inputs/fail-with-bad-deps-fine/depends-on-bad.swift diff --git a/test/Driver/PrivateDependencies/Inputs/fail-with-bad-deps-fine/depends-on-bad.swiftdeps b/test/Driver/Dependencies/Inputs/fail-with-bad-deps-fine/depends-on-bad.swiftdeps similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/fail-with-bad-deps-fine/depends-on-bad.swiftdeps rename to test/Driver/Dependencies/Inputs/fail-with-bad-deps-fine/depends-on-bad.swiftdeps diff --git a/test/Driver/PrivateDependencies/Inputs/fail-with-bad-deps-fine/depends-on-main.swift b/test/Driver/Dependencies/Inputs/fail-with-bad-deps-fine/depends-on-main.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/fail-with-bad-deps-fine/depends-on-main.swift rename to test/Driver/Dependencies/Inputs/fail-with-bad-deps-fine/depends-on-main.swift diff --git a/test/Driver/PrivateDependencies/Inputs/fail-with-bad-deps-fine/depends-on-main.swiftdeps b/test/Driver/Dependencies/Inputs/fail-with-bad-deps-fine/depends-on-main.swiftdeps similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/fail-with-bad-deps-fine/depends-on-main.swiftdeps rename to test/Driver/Dependencies/Inputs/fail-with-bad-deps-fine/depends-on-main.swiftdeps diff --git a/test/Driver/PrivateDependencies/Inputs/fail-with-bad-deps-fine/main.swift b/test/Driver/Dependencies/Inputs/fail-with-bad-deps-fine/main.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/fail-with-bad-deps-fine/main.swift rename to test/Driver/Dependencies/Inputs/fail-with-bad-deps-fine/main.swift diff --git a/test/Driver/PrivateDependencies/Inputs/fail-with-bad-deps-fine/main.swiftdeps b/test/Driver/Dependencies/Inputs/fail-with-bad-deps-fine/main.swiftdeps similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/fail-with-bad-deps-fine/main.swiftdeps rename to test/Driver/Dependencies/Inputs/fail-with-bad-deps-fine/main.swiftdeps diff --git a/test/Driver/PrivateDependencies/Inputs/fail-with-bad-deps-fine/output.json b/test/Driver/Dependencies/Inputs/fail-with-bad-deps-fine/output.json similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/fail-with-bad-deps-fine/output.json rename to test/Driver/Dependencies/Inputs/fail-with-bad-deps-fine/output.json diff --git a/test/Driver/PrivateDependencies/Inputs/fake-build-for-bitcode.py b/test/Driver/Dependencies/Inputs/fake-build-for-bitcode.py similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/fake-build-for-bitcode.py rename to test/Driver/Dependencies/Inputs/fake-build-for-bitcode.py diff --git a/test/Driver/PrivateDependencies/Inputs/fake-build-whole-module.py b/test/Driver/Dependencies/Inputs/fake-build-whole-module.py similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/fake-build-whole-module.py rename to test/Driver/Dependencies/Inputs/fake-build-whole-module.py diff --git a/test/Driver/PrivateDependencies/Inputs/independent-fine/main.swift b/test/Driver/Dependencies/Inputs/independent-fine/main.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/independent-fine/main.swift rename to test/Driver/Dependencies/Inputs/independent-fine/main.swift diff --git a/test/Driver/PrivateDependencies/Inputs/independent-fine/other.swift b/test/Driver/Dependencies/Inputs/independent-fine/other.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/independent-fine/other.swift rename to test/Driver/Dependencies/Inputs/independent-fine/other.swift diff --git a/test/Driver/PrivateDependencies/Inputs/independent-fine/output.json b/test/Driver/Dependencies/Inputs/independent-fine/output.json similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/independent-fine/output.json rename to test/Driver/Dependencies/Inputs/independent-fine/output.json diff --git a/test/Driver/PrivateDependencies/Inputs/malformed-after-fine/main.swift b/test/Driver/Dependencies/Inputs/malformed-after-fine/main.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/malformed-after-fine/main.swift rename to test/Driver/Dependencies/Inputs/malformed-after-fine/main.swift diff --git a/test/Driver/PrivateDependencies/Inputs/malformed-after-fine/main.swiftdeps b/test/Driver/Dependencies/Inputs/malformed-after-fine/main.swiftdeps similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/malformed-after-fine/main.swiftdeps rename to test/Driver/Dependencies/Inputs/malformed-after-fine/main.swiftdeps diff --git a/test/Driver/PrivateDependencies/Inputs/malformed-after-fine/other.swift b/test/Driver/Dependencies/Inputs/malformed-after-fine/other.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/malformed-after-fine/other.swift rename to test/Driver/Dependencies/Inputs/malformed-after-fine/other.swift diff --git a/test/Driver/PrivateDependencies/Inputs/malformed-after-fine/other.swiftdeps b/test/Driver/Dependencies/Inputs/malformed-after-fine/other.swiftdeps similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/malformed-after-fine/other.swiftdeps rename to test/Driver/Dependencies/Inputs/malformed-after-fine/other.swiftdeps diff --git a/test/Driver/PrivateDependencies/Inputs/malformed-after-fine/output.json b/test/Driver/Dependencies/Inputs/malformed-after-fine/output.json similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/malformed-after-fine/output.json rename to test/Driver/Dependencies/Inputs/malformed-after-fine/output.json diff --git a/test/Driver/PrivateDependencies/Inputs/malformed-but-valid-yaml-fine/main.swift b/test/Driver/Dependencies/Inputs/malformed-but-valid-yaml-fine/main.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/malformed-but-valid-yaml-fine/main.swift rename to test/Driver/Dependencies/Inputs/malformed-but-valid-yaml-fine/main.swift diff --git a/test/Driver/PrivateDependencies/Inputs/malformed-but-valid-yaml-fine/main.swiftdeps b/test/Driver/Dependencies/Inputs/malformed-but-valid-yaml-fine/main.swiftdeps similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/malformed-but-valid-yaml-fine/main.swiftdeps rename to test/Driver/Dependencies/Inputs/malformed-but-valid-yaml-fine/main.swiftdeps diff --git a/test/Driver/PrivateDependencies/Inputs/malformed-but-valid-yaml-fine/other.swift b/test/Driver/Dependencies/Inputs/malformed-but-valid-yaml-fine/other.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/malformed-but-valid-yaml-fine/other.swift rename to test/Driver/Dependencies/Inputs/malformed-but-valid-yaml-fine/other.swift diff --git a/test/Driver/PrivateDependencies/Inputs/malformed-but-valid-yaml-fine/other.swiftdeps b/test/Driver/Dependencies/Inputs/malformed-but-valid-yaml-fine/other.swiftdeps similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/malformed-but-valid-yaml-fine/other.swiftdeps rename to test/Driver/Dependencies/Inputs/malformed-but-valid-yaml-fine/other.swiftdeps diff --git a/test/Driver/PrivateDependencies/Inputs/malformed-but-valid-yaml-fine/output.json b/test/Driver/Dependencies/Inputs/malformed-but-valid-yaml-fine/output.json similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/malformed-but-valid-yaml-fine/output.json rename to test/Driver/Dependencies/Inputs/malformed-but-valid-yaml-fine/output.json diff --git a/test/Driver/PrivateDependencies/Inputs/modify-non-primary-files.py b/test/Driver/Dependencies/Inputs/modify-non-primary-files.py similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/modify-non-primary-files.py rename to test/Driver/Dependencies/Inputs/modify-non-primary-files.py diff --git a/test/Driver/PrivateDependencies/Inputs/moduleonly/bar.swift b/test/Driver/Dependencies/Inputs/moduleonly/bar.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/moduleonly/bar.swift rename to test/Driver/Dependencies/Inputs/moduleonly/bar.swift diff --git a/test/Driver/PrivateDependencies/Inputs/moduleonly/baz.swift b/test/Driver/Dependencies/Inputs/moduleonly/baz.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/moduleonly/baz.swift rename to test/Driver/Dependencies/Inputs/moduleonly/baz.swift diff --git a/test/Driver/PrivateDependencies/Inputs/moduleonly/foo.swift b/test/Driver/Dependencies/Inputs/moduleonly/foo.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/moduleonly/foo.swift rename to test/Driver/Dependencies/Inputs/moduleonly/foo.swift diff --git a/test/Driver/PrivateDependencies/Inputs/moduleonly/output.json b/test/Driver/Dependencies/Inputs/moduleonly/output.json similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/moduleonly/output.json rename to test/Driver/Dependencies/Inputs/moduleonly/output.json diff --git a/test/Driver/PrivateDependencies/Inputs/mutual-fine/main.swift b/test/Driver/Dependencies/Inputs/mutual-fine/main.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/mutual-fine/main.swift rename to test/Driver/Dependencies/Inputs/mutual-fine/main.swift diff --git a/test/Driver/PrivateDependencies/Inputs/mutual-fine/other.swift b/test/Driver/Dependencies/Inputs/mutual-fine/other.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/mutual-fine/other.swift rename to test/Driver/Dependencies/Inputs/mutual-fine/other.swift diff --git a/test/Driver/PrivateDependencies/Inputs/mutual-fine/output.json b/test/Driver/Dependencies/Inputs/mutual-fine/output.json similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/mutual-fine/output.json rename to test/Driver/Dependencies/Inputs/mutual-fine/output.json diff --git a/test/Driver/PrivateDependencies/Inputs/mutual-interface-hash-fine/does-change.swift b/test/Driver/Dependencies/Inputs/mutual-interface-hash-fine/does-change.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/mutual-interface-hash-fine/does-change.swift rename to test/Driver/Dependencies/Inputs/mutual-interface-hash-fine/does-change.swift diff --git a/test/Driver/PrivateDependencies/Inputs/mutual-interface-hash-fine/does-change.swiftdeps b/test/Driver/Dependencies/Inputs/mutual-interface-hash-fine/does-change.swiftdeps similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/mutual-interface-hash-fine/does-change.swiftdeps rename to test/Driver/Dependencies/Inputs/mutual-interface-hash-fine/does-change.swiftdeps diff --git a/test/Driver/PrivateDependencies/Inputs/mutual-interface-hash-fine/does-not-change.swift b/test/Driver/Dependencies/Inputs/mutual-interface-hash-fine/does-not-change.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/mutual-interface-hash-fine/does-not-change.swift rename to test/Driver/Dependencies/Inputs/mutual-interface-hash-fine/does-not-change.swift diff --git a/test/Driver/PrivateDependencies/Inputs/mutual-interface-hash-fine/does-not-change.swiftdeps b/test/Driver/Dependencies/Inputs/mutual-interface-hash-fine/does-not-change.swiftdeps similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/mutual-interface-hash-fine/does-not-change.swiftdeps rename to test/Driver/Dependencies/Inputs/mutual-interface-hash-fine/does-not-change.swiftdeps diff --git a/test/Driver/PrivateDependencies/Inputs/mutual-interface-hash-fine/output.json b/test/Driver/Dependencies/Inputs/mutual-interface-hash-fine/output.json similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/mutual-interface-hash-fine/output.json rename to test/Driver/Dependencies/Inputs/mutual-interface-hash-fine/output.json diff --git a/test/Driver/PrivateDependencies/Inputs/mutual-with-swiftdeps-fine/main.swift b/test/Driver/Dependencies/Inputs/mutual-with-swiftdeps-fine/main.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/mutual-with-swiftdeps-fine/main.swift rename to test/Driver/Dependencies/Inputs/mutual-with-swiftdeps-fine/main.swift diff --git a/test/Driver/PrivateDependencies/Inputs/mutual-with-swiftdeps-fine/main.swiftdeps b/test/Driver/Dependencies/Inputs/mutual-with-swiftdeps-fine/main.swiftdeps similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/mutual-with-swiftdeps-fine/main.swiftdeps rename to test/Driver/Dependencies/Inputs/mutual-with-swiftdeps-fine/main.swiftdeps diff --git a/test/Driver/PrivateDependencies/Inputs/mutual-with-swiftdeps-fine/other.swift b/test/Driver/Dependencies/Inputs/mutual-with-swiftdeps-fine/other.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/mutual-with-swiftdeps-fine/other.swift rename to test/Driver/Dependencies/Inputs/mutual-with-swiftdeps-fine/other.swift diff --git a/test/Driver/PrivateDependencies/Inputs/mutual-with-swiftdeps-fine/other.swiftdeps b/test/Driver/Dependencies/Inputs/mutual-with-swiftdeps-fine/other.swiftdeps similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/mutual-with-swiftdeps-fine/other.swiftdeps rename to test/Driver/Dependencies/Inputs/mutual-with-swiftdeps-fine/other.swiftdeps diff --git a/test/Driver/PrivateDependencies/Inputs/mutual-with-swiftdeps-fine/output.json b/test/Driver/Dependencies/Inputs/mutual-with-swiftdeps-fine/output.json similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/mutual-with-swiftdeps-fine/output.json rename to test/Driver/Dependencies/Inputs/mutual-with-swiftdeps-fine/output.json diff --git a/test/Driver/PrivateDependencies/Inputs/nominal-members-fine/a-ext.swift b/test/Driver/Dependencies/Inputs/nominal-members-fine/a-ext.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/nominal-members-fine/a-ext.swift rename to test/Driver/Dependencies/Inputs/nominal-members-fine/a-ext.swift diff --git a/test/Driver/PrivateDependencies/Inputs/nominal-members-fine/a.swift b/test/Driver/Dependencies/Inputs/nominal-members-fine/a.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/nominal-members-fine/a.swift rename to test/Driver/Dependencies/Inputs/nominal-members-fine/a.swift diff --git a/test/Driver/PrivateDependencies/Inputs/nominal-members-fine/depends-on-a-ext.swift b/test/Driver/Dependencies/Inputs/nominal-members-fine/depends-on-a-ext.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/nominal-members-fine/depends-on-a-ext.swift rename to test/Driver/Dependencies/Inputs/nominal-members-fine/depends-on-a-ext.swift diff --git a/test/Driver/PrivateDependencies/Inputs/nominal-members-fine/depends-on-a-foo.swift b/test/Driver/Dependencies/Inputs/nominal-members-fine/depends-on-a-foo.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/nominal-members-fine/depends-on-a-foo.swift rename to test/Driver/Dependencies/Inputs/nominal-members-fine/depends-on-a-foo.swift diff --git a/test/Driver/PrivateDependencies/Inputs/nominal-members-fine/output.json b/test/Driver/Dependencies/Inputs/nominal-members-fine/output.json similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/nominal-members-fine/output.json rename to test/Driver/Dependencies/Inputs/nominal-members-fine/output.json diff --git a/test/Driver/PrivateDependencies/Inputs/one-way-depends-after-fine/main.swift b/test/Driver/Dependencies/Inputs/one-way-depends-after-fine/main.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/one-way-depends-after-fine/main.swift rename to test/Driver/Dependencies/Inputs/one-way-depends-after-fine/main.swift diff --git a/test/Driver/PrivateDependencies/Inputs/one-way-depends-after-fine/main.swiftdeps b/test/Driver/Dependencies/Inputs/one-way-depends-after-fine/main.swiftdeps similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/one-way-depends-after-fine/main.swiftdeps rename to test/Driver/Dependencies/Inputs/one-way-depends-after-fine/main.swiftdeps diff --git a/test/Driver/PrivateDependencies/Inputs/one-way-depends-after-fine/other.swift b/test/Driver/Dependencies/Inputs/one-way-depends-after-fine/other.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/one-way-depends-after-fine/other.swift rename to test/Driver/Dependencies/Inputs/one-way-depends-after-fine/other.swift diff --git a/test/Driver/PrivateDependencies/Inputs/one-way-depends-after-fine/other.swiftdeps b/test/Driver/Dependencies/Inputs/one-way-depends-after-fine/other.swiftdeps similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/one-way-depends-after-fine/other.swiftdeps rename to test/Driver/Dependencies/Inputs/one-way-depends-after-fine/other.swiftdeps diff --git a/test/Driver/PrivateDependencies/Inputs/one-way-depends-after-fine/output.json b/test/Driver/Dependencies/Inputs/one-way-depends-after-fine/output.json similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/one-way-depends-after-fine/output.json rename to test/Driver/Dependencies/Inputs/one-way-depends-after-fine/output.json diff --git a/test/Driver/PrivateDependencies/Inputs/one-way-depends-before-fine/main.swift b/test/Driver/Dependencies/Inputs/one-way-depends-before-fine/main.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/one-way-depends-before-fine/main.swift rename to test/Driver/Dependencies/Inputs/one-way-depends-before-fine/main.swift diff --git a/test/Driver/PrivateDependencies/Inputs/one-way-depends-before-fine/main.swiftdeps b/test/Driver/Dependencies/Inputs/one-way-depends-before-fine/main.swiftdeps similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/one-way-depends-before-fine/main.swiftdeps rename to test/Driver/Dependencies/Inputs/one-way-depends-before-fine/main.swiftdeps diff --git a/test/Driver/PrivateDependencies/Inputs/one-way-depends-before-fine/other.swift b/test/Driver/Dependencies/Inputs/one-way-depends-before-fine/other.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/one-way-depends-before-fine/other.swift rename to test/Driver/Dependencies/Inputs/one-way-depends-before-fine/other.swift diff --git a/test/Driver/PrivateDependencies/Inputs/one-way-depends-before-fine/other.swiftdeps b/test/Driver/Dependencies/Inputs/one-way-depends-before-fine/other.swiftdeps similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/one-way-depends-before-fine/other.swiftdeps rename to test/Driver/Dependencies/Inputs/one-way-depends-before-fine/other.swiftdeps diff --git a/test/Driver/PrivateDependencies/Inputs/one-way-depends-before-fine/output.json b/test/Driver/Dependencies/Inputs/one-way-depends-before-fine/output.json similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/one-way-depends-before-fine/output.json rename to test/Driver/Dependencies/Inputs/one-way-depends-before-fine/output.json diff --git a/test/Driver/PrivateDependencies/Inputs/one-way-external-fine/main.swift b/test/Driver/Dependencies/Inputs/one-way-external-fine/main.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/one-way-external-fine/main.swift rename to test/Driver/Dependencies/Inputs/one-way-external-fine/main.swift diff --git a/test/Driver/PrivateDependencies/Inputs/one-way-external-fine/main1-external b/test/Driver/Dependencies/Inputs/one-way-external-fine/main1-external similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/one-way-external-fine/main1-external rename to test/Driver/Dependencies/Inputs/one-way-external-fine/main1-external diff --git a/test/Driver/PrivateDependencies/Inputs/one-way-external-fine/main2-external b/test/Driver/Dependencies/Inputs/one-way-external-fine/main2-external similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/one-way-external-fine/main2-external rename to test/Driver/Dependencies/Inputs/one-way-external-fine/main2-external diff --git a/test/Driver/PrivateDependencies/Inputs/one-way-external-fine/other.swift b/test/Driver/Dependencies/Inputs/one-way-external-fine/other.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/one-way-external-fine/other.swift rename to test/Driver/Dependencies/Inputs/one-way-external-fine/other.swift diff --git a/test/Driver/PrivateDependencies/Inputs/one-way-external-fine/other1-external b/test/Driver/Dependencies/Inputs/one-way-external-fine/other1-external similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/one-way-external-fine/other1-external rename to test/Driver/Dependencies/Inputs/one-way-external-fine/other1-external diff --git a/test/Driver/PrivateDependencies/Inputs/one-way-external-fine/other2-external b/test/Driver/Dependencies/Inputs/one-way-external-fine/other2-external similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/one-way-external-fine/other2-external rename to test/Driver/Dependencies/Inputs/one-way-external-fine/other2-external diff --git a/test/Driver/PrivateDependencies/Inputs/one-way-external-fine/output.json b/test/Driver/Dependencies/Inputs/one-way-external-fine/output.json similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/one-way-external-fine/output.json rename to test/Driver/Dependencies/Inputs/one-way-external-fine/output.json diff --git a/test/Driver/PrivateDependencies/Inputs/one-way-fine/main.swift b/test/Driver/Dependencies/Inputs/one-way-fine/main.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/one-way-fine/main.swift rename to test/Driver/Dependencies/Inputs/one-way-fine/main.swift diff --git a/test/Driver/PrivateDependencies/Inputs/one-way-fine/other.swift b/test/Driver/Dependencies/Inputs/one-way-fine/other.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/one-way-fine/other.swift rename to test/Driver/Dependencies/Inputs/one-way-fine/other.swift diff --git a/test/Driver/PrivateDependencies/Inputs/one-way-fine/output.json b/test/Driver/Dependencies/Inputs/one-way-fine/output.json similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/one-way-fine/output.json rename to test/Driver/Dependencies/Inputs/one-way-fine/output.json diff --git a/test/Driver/PrivateDependencies/Inputs/one-way-provides-after-fine/main.swift b/test/Driver/Dependencies/Inputs/one-way-provides-after-fine/main.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/one-way-provides-after-fine/main.swift rename to test/Driver/Dependencies/Inputs/one-way-provides-after-fine/main.swift diff --git a/test/Driver/PrivateDependencies/Inputs/one-way-provides-after-fine/main.swiftdeps b/test/Driver/Dependencies/Inputs/one-way-provides-after-fine/main.swiftdeps similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/one-way-provides-after-fine/main.swiftdeps rename to test/Driver/Dependencies/Inputs/one-way-provides-after-fine/main.swiftdeps diff --git a/test/Driver/PrivateDependencies/Inputs/one-way-provides-after-fine/other.swift b/test/Driver/Dependencies/Inputs/one-way-provides-after-fine/other.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/one-way-provides-after-fine/other.swift rename to test/Driver/Dependencies/Inputs/one-way-provides-after-fine/other.swift diff --git a/test/Driver/PrivateDependencies/Inputs/one-way-provides-after-fine/other.swiftdeps b/test/Driver/Dependencies/Inputs/one-way-provides-after-fine/other.swiftdeps similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/one-way-provides-after-fine/other.swiftdeps rename to test/Driver/Dependencies/Inputs/one-way-provides-after-fine/other.swiftdeps diff --git a/test/Driver/PrivateDependencies/Inputs/one-way-provides-after-fine/output.json b/test/Driver/Dependencies/Inputs/one-way-provides-after-fine/output.json similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/one-way-provides-after-fine/output.json rename to test/Driver/Dependencies/Inputs/one-way-provides-after-fine/output.json diff --git a/test/Driver/PrivateDependencies/Inputs/one-way-provides-before-fine/main.swift b/test/Driver/Dependencies/Inputs/one-way-provides-before-fine/main.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/one-way-provides-before-fine/main.swift rename to test/Driver/Dependencies/Inputs/one-way-provides-before-fine/main.swift diff --git a/test/Driver/PrivateDependencies/Inputs/one-way-provides-before-fine/main.swiftdeps b/test/Driver/Dependencies/Inputs/one-way-provides-before-fine/main.swiftdeps similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/one-way-provides-before-fine/main.swiftdeps rename to test/Driver/Dependencies/Inputs/one-way-provides-before-fine/main.swiftdeps diff --git a/test/Driver/PrivateDependencies/Inputs/one-way-provides-before-fine/other.swift b/test/Driver/Dependencies/Inputs/one-way-provides-before-fine/other.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/one-way-provides-before-fine/other.swift rename to test/Driver/Dependencies/Inputs/one-way-provides-before-fine/other.swift diff --git a/test/Driver/PrivateDependencies/Inputs/one-way-provides-before-fine/other.swiftdeps b/test/Driver/Dependencies/Inputs/one-way-provides-before-fine/other.swiftdeps similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/one-way-provides-before-fine/other.swiftdeps rename to test/Driver/Dependencies/Inputs/one-way-provides-before-fine/other.swiftdeps diff --git a/test/Driver/PrivateDependencies/Inputs/one-way-provides-before-fine/output.json b/test/Driver/Dependencies/Inputs/one-way-provides-before-fine/output.json similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/one-way-provides-before-fine/output.json rename to test/Driver/Dependencies/Inputs/one-way-provides-before-fine/output.json diff --git a/test/Driver/PrivateDependencies/Inputs/one-way-with-swiftdeps-fine/main.swift b/test/Driver/Dependencies/Inputs/one-way-with-swiftdeps-fine/main.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/one-way-with-swiftdeps-fine/main.swift rename to test/Driver/Dependencies/Inputs/one-way-with-swiftdeps-fine/main.swift diff --git a/test/Driver/PrivateDependencies/Inputs/one-way-with-swiftdeps-fine/main.swiftdeps b/test/Driver/Dependencies/Inputs/one-way-with-swiftdeps-fine/main.swiftdeps similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/one-way-with-swiftdeps-fine/main.swiftdeps rename to test/Driver/Dependencies/Inputs/one-way-with-swiftdeps-fine/main.swiftdeps diff --git a/test/Driver/PrivateDependencies/Inputs/one-way-with-swiftdeps-fine/other.swift b/test/Driver/Dependencies/Inputs/one-way-with-swiftdeps-fine/other.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/one-way-with-swiftdeps-fine/other.swift rename to test/Driver/Dependencies/Inputs/one-way-with-swiftdeps-fine/other.swift diff --git a/test/Driver/PrivateDependencies/Inputs/one-way-with-swiftdeps-fine/other.swiftdeps b/test/Driver/Dependencies/Inputs/one-way-with-swiftdeps-fine/other.swiftdeps similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/one-way-with-swiftdeps-fine/other.swiftdeps rename to test/Driver/Dependencies/Inputs/one-way-with-swiftdeps-fine/other.swiftdeps diff --git a/test/Driver/PrivateDependencies/Inputs/one-way-with-swiftdeps-fine/output.json b/test/Driver/Dependencies/Inputs/one-way-with-swiftdeps-fine/output.json similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/one-way-with-swiftdeps-fine/output.json rename to test/Driver/Dependencies/Inputs/one-way-with-swiftdeps-fine/output.json diff --git a/test/Driver/PrivateDependencies/Inputs/one-way/main.swift b/test/Driver/Dependencies/Inputs/one-way/main.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/one-way/main.swift rename to test/Driver/Dependencies/Inputs/one-way/main.swift diff --git a/test/Driver/PrivateDependencies/Inputs/one-way/other.swift b/test/Driver/Dependencies/Inputs/one-way/other.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/one-way/other.swift rename to test/Driver/Dependencies/Inputs/one-way/other.swift diff --git a/test/Driver/PrivateDependencies/Inputs/one-way/output.json b/test/Driver/Dependencies/Inputs/one-way/output.json similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/one-way/output.json rename to test/Driver/Dependencies/Inputs/one-way/output.json diff --git a/test/Driver/PrivateDependencies/Inputs/only-skip-once/file1.swift b/test/Driver/Dependencies/Inputs/only-skip-once/file1.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/only-skip-once/file1.swift rename to test/Driver/Dependencies/Inputs/only-skip-once/file1.swift diff --git a/test/Driver/PrivateDependencies/Inputs/only-skip-once/file2.swift b/test/Driver/Dependencies/Inputs/only-skip-once/file2.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/only-skip-once/file2.swift rename to test/Driver/Dependencies/Inputs/only-skip-once/file2.swift diff --git a/test/Driver/PrivateDependencies/Inputs/only-skip-once/main.swift b/test/Driver/Dependencies/Inputs/only-skip-once/main.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/only-skip-once/main.swift rename to test/Driver/Dependencies/Inputs/only-skip-once/main.swift diff --git a/test/Driver/PrivateDependencies/Inputs/only-skip-once/output-file-map.json b/test/Driver/Dependencies/Inputs/only-skip-once/output-file-map.json similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/only-skip-once/output-file-map.json rename to test/Driver/Dependencies/Inputs/only-skip-once/output-file-map.json diff --git a/test/Driver/PrivateDependencies/Inputs/private-after-fine/a.swift b/test/Driver/Dependencies/Inputs/private-after-fine/a.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/private-after-fine/a.swift rename to test/Driver/Dependencies/Inputs/private-after-fine/a.swift diff --git a/test/Driver/PrivateDependencies/Inputs/private-after-fine/a.swiftdeps b/test/Driver/Dependencies/Inputs/private-after-fine/a.swiftdeps similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/private-after-fine/a.swiftdeps rename to test/Driver/Dependencies/Inputs/private-after-fine/a.swiftdeps diff --git a/test/Driver/PrivateDependencies/Inputs/private-after-fine/b.swift b/test/Driver/Dependencies/Inputs/private-after-fine/b.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/private-after-fine/b.swift rename to test/Driver/Dependencies/Inputs/private-after-fine/b.swift diff --git a/test/Driver/PrivateDependencies/Inputs/private-after-fine/b.swiftdeps b/test/Driver/Dependencies/Inputs/private-after-fine/b.swiftdeps similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/private-after-fine/b.swiftdeps rename to test/Driver/Dependencies/Inputs/private-after-fine/b.swiftdeps diff --git a/test/Driver/PrivateDependencies/Inputs/private-after-fine/c.swift b/test/Driver/Dependencies/Inputs/private-after-fine/c.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/private-after-fine/c.swift rename to test/Driver/Dependencies/Inputs/private-after-fine/c.swift diff --git a/test/Driver/PrivateDependencies/Inputs/private-after-fine/c.swiftdeps b/test/Driver/Dependencies/Inputs/private-after-fine/c.swiftdeps similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/private-after-fine/c.swiftdeps rename to test/Driver/Dependencies/Inputs/private-after-fine/c.swiftdeps diff --git a/test/Driver/PrivateDependencies/Inputs/private-after-fine/d.swift b/test/Driver/Dependencies/Inputs/private-after-fine/d.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/private-after-fine/d.swift rename to test/Driver/Dependencies/Inputs/private-after-fine/d.swift diff --git a/test/Driver/PrivateDependencies/Inputs/private-after-fine/d.swiftdeps b/test/Driver/Dependencies/Inputs/private-after-fine/d.swiftdeps similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/private-after-fine/d.swiftdeps rename to test/Driver/Dependencies/Inputs/private-after-fine/d.swiftdeps diff --git a/test/Driver/PrivateDependencies/Inputs/private-after-fine/e.swift b/test/Driver/Dependencies/Inputs/private-after-fine/e.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/private-after-fine/e.swift rename to test/Driver/Dependencies/Inputs/private-after-fine/e.swift diff --git a/test/Driver/PrivateDependencies/Inputs/private-after-fine/e.swiftdeps b/test/Driver/Dependencies/Inputs/private-after-fine/e.swiftdeps similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/private-after-fine/e.swiftdeps rename to test/Driver/Dependencies/Inputs/private-after-fine/e.swiftdeps diff --git a/test/Driver/PrivateDependencies/Inputs/private-after-fine/f.swift b/test/Driver/Dependencies/Inputs/private-after-fine/f.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/private-after-fine/f.swift rename to test/Driver/Dependencies/Inputs/private-after-fine/f.swift diff --git a/test/Driver/PrivateDependencies/Inputs/private-after-fine/f.swiftdeps b/test/Driver/Dependencies/Inputs/private-after-fine/f.swiftdeps similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/private-after-fine/f.swiftdeps rename to test/Driver/Dependencies/Inputs/private-after-fine/f.swiftdeps diff --git a/test/Driver/PrivateDependencies/Inputs/private-after-fine/g.swift b/test/Driver/Dependencies/Inputs/private-after-fine/g.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/private-after-fine/g.swift rename to test/Driver/Dependencies/Inputs/private-after-fine/g.swift diff --git a/test/Driver/PrivateDependencies/Inputs/private-after-fine/g.swiftdeps b/test/Driver/Dependencies/Inputs/private-after-fine/g.swiftdeps similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/private-after-fine/g.swiftdeps rename to test/Driver/Dependencies/Inputs/private-after-fine/g.swiftdeps diff --git a/test/Driver/PrivateDependencies/Inputs/private-after-fine/output.json b/test/Driver/Dependencies/Inputs/private-after-fine/output.json similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/private-after-fine/output.json rename to test/Driver/Dependencies/Inputs/private-after-fine/output.json diff --git a/test/Driver/PrivateDependencies/Inputs/private-fine/a.swift b/test/Driver/Dependencies/Inputs/private-fine/a.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/private-fine/a.swift rename to test/Driver/Dependencies/Inputs/private-fine/a.swift diff --git a/test/Driver/PrivateDependencies/Inputs/private-fine/b.swift b/test/Driver/Dependencies/Inputs/private-fine/b.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/private-fine/b.swift rename to test/Driver/Dependencies/Inputs/private-fine/b.swift diff --git a/test/Driver/PrivateDependencies/Inputs/private-fine/c.swift b/test/Driver/Dependencies/Inputs/private-fine/c.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/private-fine/c.swift rename to test/Driver/Dependencies/Inputs/private-fine/c.swift diff --git a/test/Driver/PrivateDependencies/Inputs/private-fine/d.swift b/test/Driver/Dependencies/Inputs/private-fine/d.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/private-fine/d.swift rename to test/Driver/Dependencies/Inputs/private-fine/d.swift diff --git a/test/Driver/PrivateDependencies/Inputs/private-fine/e.swift b/test/Driver/Dependencies/Inputs/private-fine/e.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/private-fine/e.swift rename to test/Driver/Dependencies/Inputs/private-fine/e.swift diff --git a/test/Driver/PrivateDependencies/Inputs/private-fine/output.json b/test/Driver/Dependencies/Inputs/private-fine/output.json similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/private-fine/output.json rename to test/Driver/Dependencies/Inputs/private-fine/output.json diff --git a/test/Driver/PrivateDependencies/Inputs/private/a.swift b/test/Driver/Dependencies/Inputs/private/a.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/private/a.swift rename to test/Driver/Dependencies/Inputs/private/a.swift diff --git a/test/Driver/PrivateDependencies/Inputs/private/b.swift b/test/Driver/Dependencies/Inputs/private/b.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/private/b.swift rename to test/Driver/Dependencies/Inputs/private/b.swift diff --git a/test/Driver/PrivateDependencies/Inputs/private/c.swift b/test/Driver/Dependencies/Inputs/private/c.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/private/c.swift rename to test/Driver/Dependencies/Inputs/private/c.swift diff --git a/test/Driver/PrivateDependencies/Inputs/private/d.swift b/test/Driver/Dependencies/Inputs/private/d.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/private/d.swift rename to test/Driver/Dependencies/Inputs/private/d.swift diff --git a/test/Driver/PrivateDependencies/Inputs/private/e.swift b/test/Driver/Dependencies/Inputs/private/e.swift similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/private/e.swift rename to test/Driver/Dependencies/Inputs/private/e.swift diff --git a/test/Driver/PrivateDependencies/Inputs/private/output.json b/test/Driver/Dependencies/Inputs/private/output.json similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/private/output.json rename to test/Driver/Dependencies/Inputs/private/output.json diff --git a/test/Driver/PrivateDependencies/Inputs/touch.py b/test/Driver/Dependencies/Inputs/touch.py similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/touch.py rename to test/Driver/Dependencies/Inputs/touch.py diff --git a/test/Driver/PrivateDependencies/Inputs/update-dependencies-bad.py b/test/Driver/Dependencies/Inputs/update-dependencies-bad.py similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/update-dependencies-bad.py rename to test/Driver/Dependencies/Inputs/update-dependencies-bad.py diff --git a/test/Driver/PrivateDependencies/Inputs/update-dependencies.py b/test/Driver/Dependencies/Inputs/update-dependencies.py similarity index 100% rename from test/Driver/PrivateDependencies/Inputs/update-dependencies.py rename to test/Driver/Dependencies/Inputs/update-dependencies.py diff --git a/test/Driver/PrivateDependencies/README.txt b/test/Driver/Dependencies/README.txt similarity index 100% rename from test/Driver/PrivateDependencies/README.txt rename to test/Driver/Dependencies/README.txt diff --git a/test/Driver/PrivateDependencies/bindings-build-record.swift b/test/Driver/Dependencies/bindings-build-record.swift similarity index 100% rename from test/Driver/PrivateDependencies/bindings-build-record.swift rename to test/Driver/Dependencies/bindings-build-record.swift diff --git a/test/Driver/PrivateDependencies/chained-additional-kinds-fine.swift b/test/Driver/Dependencies/chained-additional-kinds-fine.swift similarity index 100% rename from test/Driver/PrivateDependencies/chained-additional-kinds-fine.swift rename to test/Driver/Dependencies/chained-additional-kinds-fine.swift diff --git a/test/Driver/PrivateDependencies/chained-after-fine.swift b/test/Driver/Dependencies/chained-after-fine.swift similarity index 100% rename from test/Driver/PrivateDependencies/chained-after-fine.swift rename to test/Driver/Dependencies/chained-after-fine.swift diff --git a/test/Driver/PrivateDependencies/chained-fine.swift b/test/Driver/Dependencies/chained-fine.swift similarity index 100% rename from test/Driver/PrivateDependencies/chained-fine.swift rename to test/Driver/Dependencies/chained-fine.swift diff --git a/test/Driver/PrivateDependencies/chained-private-after-fine.swift b/test/Driver/Dependencies/chained-private-after-fine.swift similarity index 100% rename from test/Driver/PrivateDependencies/chained-private-after-fine.swift rename to test/Driver/Dependencies/chained-private-after-fine.swift diff --git a/test/Driver/PrivateDependencies/chained-private-after-multiple-fine.swift b/test/Driver/Dependencies/chained-private-after-multiple-fine.swift similarity index 100% rename from test/Driver/PrivateDependencies/chained-private-after-multiple-fine.swift rename to test/Driver/Dependencies/chained-private-after-multiple-fine.swift diff --git a/test/Driver/PrivateDependencies/chained-private-after-multiple-nominal-members-fine.swift b/test/Driver/Dependencies/chained-private-after-multiple-nominal-members-fine.swift similarity index 100% rename from test/Driver/PrivateDependencies/chained-private-after-multiple-nominal-members-fine.swift rename to test/Driver/Dependencies/chained-private-after-multiple-nominal-members-fine.swift diff --git a/test/Driver/PrivateDependencies/chained-private-fine.swift b/test/Driver/Dependencies/chained-private-fine.swift similarity index 100% rename from test/Driver/PrivateDependencies/chained-private-fine.swift rename to test/Driver/Dependencies/chained-private-fine.swift diff --git a/test/Driver/PrivateDependencies/check-interface-implementation-fine.swift b/test/Driver/Dependencies/check-interface-implementation-fine.swift similarity index 100% rename from test/Driver/PrivateDependencies/check-interface-implementation-fine.swift rename to test/Driver/Dependencies/check-interface-implementation-fine.swift diff --git a/test/Driver/PrivateDependencies/crash-added-fine.swift b/test/Driver/Dependencies/crash-added-fine.swift similarity index 100% rename from test/Driver/PrivateDependencies/crash-added-fine.swift rename to test/Driver/Dependencies/crash-added-fine.swift diff --git a/test/Driver/PrivateDependencies/crash-new-fine.swift b/test/Driver/Dependencies/crash-new-fine.swift similarity index 100% rename from test/Driver/PrivateDependencies/crash-new-fine.swift rename to test/Driver/Dependencies/crash-new-fine.swift diff --git a/test/Driver/PrivateDependencies/crash-simple-fine.swift b/test/Driver/Dependencies/crash-simple-fine.swift similarity index 100% rename from test/Driver/PrivateDependencies/crash-simple-fine.swift rename to test/Driver/Dependencies/crash-simple-fine.swift diff --git a/test/Driver/PrivateDependencies/dependencies-preservation-fine.swift b/test/Driver/Dependencies/dependencies-preservation-fine.swift similarity index 100% rename from test/Driver/PrivateDependencies/dependencies-preservation-fine.swift rename to test/Driver/Dependencies/dependencies-preservation-fine.swift diff --git a/test/Driver/PrivateDependencies/driver-show-incremental-arguments-fine.swift b/test/Driver/Dependencies/driver-show-incremental-arguments-fine.swift similarity index 100% rename from test/Driver/PrivateDependencies/driver-show-incremental-arguments-fine.swift rename to test/Driver/Dependencies/driver-show-incremental-arguments-fine.swift diff --git a/test/Driver/PrivateDependencies/driver-show-incremental-conflicting-arguments-fine.swift b/test/Driver/Dependencies/driver-show-incremental-conflicting-arguments-fine.swift similarity index 100% rename from test/Driver/PrivateDependencies/driver-show-incremental-conflicting-arguments-fine.swift rename to test/Driver/Dependencies/driver-show-incremental-conflicting-arguments-fine.swift diff --git a/test/Driver/PrivateDependencies/driver-show-incremental-inputs-fine.swift b/test/Driver/Dependencies/driver-show-incremental-inputs-fine.swift similarity index 100% rename from test/Driver/PrivateDependencies/driver-show-incremental-inputs-fine.swift rename to test/Driver/Dependencies/driver-show-incremental-inputs-fine.swift diff --git a/test/Driver/PrivateDependencies/driver-show-incremental-malformed-fine.swift b/test/Driver/Dependencies/driver-show-incremental-malformed-fine.swift similarity index 100% rename from test/Driver/PrivateDependencies/driver-show-incremental-malformed-fine.swift rename to test/Driver/Dependencies/driver-show-incremental-malformed-fine.swift diff --git a/test/Driver/PrivateDependencies/driver-show-incremental-mutual-fine.swift b/test/Driver/Dependencies/driver-show-incremental-mutual-fine.swift similarity index 100% rename from test/Driver/PrivateDependencies/driver-show-incremental-mutual-fine.swift rename to test/Driver/Dependencies/driver-show-incremental-mutual-fine.swift diff --git a/test/Driver/PrivateDependencies/driver-show-incremental-swift-version-fine.swift b/test/Driver/Dependencies/driver-show-incremental-swift-version-fine.swift similarity index 100% rename from test/Driver/PrivateDependencies/driver-show-incremental-swift-version-fine.swift rename to test/Driver/Dependencies/driver-show-incremental-swift-version-fine.swift diff --git a/test/Driver/PrivateDependencies/embed-bitcode-parallel-fine.swift b/test/Driver/Dependencies/embed-bitcode-parallel-fine.swift similarity index 100% rename from test/Driver/PrivateDependencies/embed-bitcode-parallel-fine.swift rename to test/Driver/Dependencies/embed-bitcode-parallel-fine.swift diff --git a/test/Driver/PrivateDependencies/fail-added-fine.swift b/test/Driver/Dependencies/fail-added-fine.swift similarity index 100% rename from test/Driver/PrivateDependencies/fail-added-fine.swift rename to test/Driver/Dependencies/fail-added-fine.swift diff --git a/test/Driver/PrivateDependencies/fail-chained-fine.swift b/test/Driver/Dependencies/fail-chained-fine.swift similarity index 100% rename from test/Driver/PrivateDependencies/fail-chained-fine.swift rename to test/Driver/Dependencies/fail-chained-fine.swift diff --git a/test/Driver/PrivateDependencies/fail-interface-hash-fine.swift b/test/Driver/Dependencies/fail-interface-hash-fine.swift similarity index 100% rename from test/Driver/PrivateDependencies/fail-interface-hash-fine.swift rename to test/Driver/Dependencies/fail-interface-hash-fine.swift diff --git a/test/Driver/PrivateDependencies/fail-new-fine.swift b/test/Driver/Dependencies/fail-new-fine.swift similarity index 100% rename from test/Driver/PrivateDependencies/fail-new-fine.swift rename to test/Driver/Dependencies/fail-new-fine.swift diff --git a/test/Driver/PrivateDependencies/fail-simple-fine.swift b/test/Driver/Dependencies/fail-simple-fine.swift similarity index 100% rename from test/Driver/PrivateDependencies/fail-simple-fine.swift rename to test/Driver/Dependencies/fail-simple-fine.swift diff --git a/test/Driver/PrivateDependencies/fail-with-bad-deps-fine.swift b/test/Driver/Dependencies/fail-with-bad-deps-fine.swift similarity index 100% rename from test/Driver/PrivateDependencies/fail-with-bad-deps-fine.swift rename to test/Driver/Dependencies/fail-with-bad-deps-fine.swift diff --git a/test/Driver/PrivateDependencies/file-added-fine.swift b/test/Driver/Dependencies/file-added-fine.swift similarity index 100% rename from test/Driver/PrivateDependencies/file-added-fine.swift rename to test/Driver/Dependencies/file-added-fine.swift diff --git a/test/Driver/PrivateDependencies/independent-fine.swift b/test/Driver/Dependencies/independent-fine.swift similarity index 100% rename from test/Driver/PrivateDependencies/independent-fine.swift rename to test/Driver/Dependencies/independent-fine.swift diff --git a/test/Driver/PrivateDependencies/independent-half-dirty-fine.swift b/test/Driver/Dependencies/independent-half-dirty-fine.swift similarity index 100% rename from test/Driver/PrivateDependencies/independent-half-dirty-fine.swift rename to test/Driver/Dependencies/independent-half-dirty-fine.swift diff --git a/test/Driver/PrivateDependencies/independent-parseable-fine.swift b/test/Driver/Dependencies/independent-parseable-fine.swift similarity index 100% rename from test/Driver/PrivateDependencies/independent-parseable-fine.swift rename to test/Driver/Dependencies/independent-parseable-fine.swift diff --git a/test/Driver/PrivateDependencies/malformed-but-valid-yaml-fine.swift b/test/Driver/Dependencies/malformed-but-valid-yaml-fine.swift similarity index 100% rename from test/Driver/PrivateDependencies/malformed-but-valid-yaml-fine.swift rename to test/Driver/Dependencies/malformed-but-valid-yaml-fine.swift diff --git a/test/Driver/PrivateDependencies/malformed-fine.swift b/test/Driver/Dependencies/malformed-fine.swift similarity index 100% rename from test/Driver/PrivateDependencies/malformed-fine.swift rename to test/Driver/Dependencies/malformed-fine.swift diff --git a/test/Driver/PrivateDependencies/moduleonly.swift b/test/Driver/Dependencies/moduleonly.swift similarity index 100% rename from test/Driver/PrivateDependencies/moduleonly.swift rename to test/Driver/Dependencies/moduleonly.swift diff --git a/test/Driver/PrivateDependencies/mutual-fine.swift b/test/Driver/Dependencies/mutual-fine.swift similarity index 100% rename from test/Driver/PrivateDependencies/mutual-fine.swift rename to test/Driver/Dependencies/mutual-fine.swift diff --git a/test/Driver/PrivateDependencies/mutual-interface-hash-fine.swift b/test/Driver/Dependencies/mutual-interface-hash-fine.swift similarity index 100% rename from test/Driver/PrivateDependencies/mutual-interface-hash-fine.swift rename to test/Driver/Dependencies/mutual-interface-hash-fine.swift diff --git a/test/Driver/PrivateDependencies/nominal-members-fine.swift b/test/Driver/Dependencies/nominal-members-fine.swift similarity index 100% rename from test/Driver/PrivateDependencies/nominal-members-fine.swift rename to test/Driver/Dependencies/nominal-members-fine.swift diff --git a/test/Driver/PrivateDependencies/one-way-depends-after-fine.swift b/test/Driver/Dependencies/one-way-depends-after-fine.swift similarity index 100% rename from test/Driver/PrivateDependencies/one-way-depends-after-fine.swift rename to test/Driver/Dependencies/one-way-depends-after-fine.swift diff --git a/test/Driver/PrivateDependencies/one-way-depends-before-fine.swift b/test/Driver/Dependencies/one-way-depends-before-fine.swift similarity index 100% rename from test/Driver/PrivateDependencies/one-way-depends-before-fine.swift rename to test/Driver/Dependencies/one-way-depends-before-fine.swift diff --git a/test/Driver/PrivateDependencies/one-way-external-delete-fine.swift b/test/Driver/Dependencies/one-way-external-delete-fine.swift similarity index 100% rename from test/Driver/PrivateDependencies/one-way-external-delete-fine.swift rename to test/Driver/Dependencies/one-way-external-delete-fine.swift diff --git a/test/Driver/PrivateDependencies/one-way-external-fine.swift b/test/Driver/Dependencies/one-way-external-fine.swift similarity index 100% rename from test/Driver/PrivateDependencies/one-way-external-fine.swift rename to test/Driver/Dependencies/one-way-external-fine.swift diff --git a/test/Driver/PrivateDependencies/one-way-fine.swift b/test/Driver/Dependencies/one-way-fine.swift similarity index 100% rename from test/Driver/PrivateDependencies/one-way-fine.swift rename to test/Driver/Dependencies/one-way-fine.swift diff --git a/test/Driver/PrivateDependencies/one-way-merge-module-fine.swift b/test/Driver/Dependencies/one-way-merge-module-fine.swift similarity index 100% rename from test/Driver/PrivateDependencies/one-way-merge-module-fine.swift rename to test/Driver/Dependencies/one-way-merge-module-fine.swift diff --git a/test/Driver/PrivateDependencies/one-way-parallel-fine.swift b/test/Driver/Dependencies/one-way-parallel-fine.swift similarity index 100% rename from test/Driver/PrivateDependencies/one-way-parallel-fine.swift rename to test/Driver/Dependencies/one-way-parallel-fine.swift diff --git a/test/Driver/PrivateDependencies/one-way-parseable-fine.swift b/test/Driver/Dependencies/one-way-parseable-fine.swift similarity index 100% rename from test/Driver/PrivateDependencies/one-way-parseable-fine.swift rename to test/Driver/Dependencies/one-way-parseable-fine.swift diff --git a/test/Driver/PrivateDependencies/one-way-provides-after-fine.swift b/test/Driver/Dependencies/one-way-provides-after-fine.swift similarity index 100% rename from test/Driver/PrivateDependencies/one-way-provides-after-fine.swift rename to test/Driver/Dependencies/one-way-provides-after-fine.swift diff --git a/test/Driver/PrivateDependencies/one-way-provides-before-fine.swift b/test/Driver/Dependencies/one-way-provides-before-fine.swift similarity index 100% rename from test/Driver/PrivateDependencies/one-way-provides-before-fine.swift rename to test/Driver/Dependencies/one-way-provides-before-fine.swift diff --git a/test/Driver/PrivateDependencies/one-way-while-editing-fine.swift b/test/Driver/Dependencies/one-way-while-editing-fine.swift similarity index 100% rename from test/Driver/PrivateDependencies/one-way-while-editing-fine.swift rename to test/Driver/Dependencies/one-way-while-editing-fine.swift diff --git a/test/Driver/PrivateDependencies/only-skip-once.swift b/test/Driver/Dependencies/only-skip-once.swift similarity index 100% rename from test/Driver/PrivateDependencies/only-skip-once.swift rename to test/Driver/Dependencies/only-skip-once.swift diff --git a/test/Driver/PrivateDependencies/private-after-fine.swift b/test/Driver/Dependencies/private-after-fine.swift similarity index 100% rename from test/Driver/PrivateDependencies/private-after-fine.swift rename to test/Driver/Dependencies/private-after-fine.swift diff --git a/test/Driver/PrivateDependencies/private-fine.swift b/test/Driver/Dependencies/private-fine.swift similarity index 100% rename from test/Driver/PrivateDependencies/private-fine.swift rename to test/Driver/Dependencies/private-fine.swift diff --git a/test/Driver/PrivateDependencies/whole-module-build-record.swift b/test/Driver/Dependencies/whole-module-build-record.swift similarity index 100% rename from test/Driver/PrivateDependencies/whole-module-build-record.swift rename to test/Driver/Dependencies/whole-module-build-record.swift From cf2d0d3c9b165b25c418dd6f4a9534746fd02392 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Mon, 21 Sep 2020 16:45:32 -0400 Subject: [PATCH 28/31] Sema: Fix crash on static -vs- non-static witness mismatch with deserialized witness Deserialized computed properties don't get a PatternBindingDecl apparently. Fixes . --- lib/Sema/TypeCheckProtocol.cpp | 7 +++++-- .../deserialized_witness_mismatch_other.swift | 3 +++ .../protocol/deserialized_witness_mismatch.swift | 16 ++++++++++++++++ 3 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 test/decl/protocol/Inputs/deserialized_witness_mismatch_other.swift create mode 100644 test/decl/protocol/deserialized_witness_mismatch.swift diff --git a/lib/Sema/TypeCheckProtocol.cpp b/lib/Sema/TypeCheckProtocol.cpp index 14754593f5376..38f4b57308c07 100644 --- a/lib/Sema/TypeCheckProtocol.cpp +++ b/lib/Sema/TypeCheckProtocol.cpp @@ -2374,13 +2374,16 @@ diagnoseMatch(ModuleDecl *module, NormalProtocolConformance *conformance, if (auto FD = dyn_cast(witness)) { loc = FD->getStaticLoc(); } else if (auto VD = dyn_cast(witness)) { - loc = VD->getParentPatternBinding()->getStaticLoc(); + if (auto PBD = VD->getParentPatternBinding()) { + loc = PBD->getStaticLoc(); + } } else if (auto SD = dyn_cast(witness)) { loc = SD->getStaticLoc(); } else { llvm_unreachable("Unexpected witness"); } - diag.fixItRemove(loc); + if (loc.isValid()) + diag.fixItRemove(loc); } else { diag.fixItInsert(witness->getAttributeInsertionLoc(true), "static "); } diff --git a/test/decl/protocol/Inputs/deserialized_witness_mismatch_other.swift b/test/decl/protocol/Inputs/deserialized_witness_mismatch_other.swift new file mode 100644 index 0000000000000..f2339cad36917 --- /dev/null +++ b/test/decl/protocol/Inputs/deserialized_witness_mismatch_other.swift @@ -0,0 +1,3 @@ +public struct TimeZone { + public static var current: TimeZone { return TimeZone() } +} diff --git a/test/decl/protocol/deserialized_witness_mismatch.swift b/test/decl/protocol/deserialized_witness_mismatch.swift new file mode 100644 index 0000000000000..1edd8180c5c06 --- /dev/null +++ b/test/decl/protocol/deserialized_witness_mismatch.swift @@ -0,0 +1,16 @@ +// RUN: %empty-directory(%t) +// RUN: %target-swift-frontend %S/Inputs/deserialized_witness_mismatch_other.swift -emit-module-path %t/deserialized_witness_mismatch_other.swiftmodule +// RUN: %target-swift-frontend -I %t/ %s -typecheck -verify + +// Deserialized computed properties don't have a PatternBindingDecl, so +// make sure we don't expect to find one. + +import deserialized_witness_mismatch_other + +protocol HasCurrent { + var current: Self { get } + // expected-note@-1 {{protocol requires property 'current' with type 'TimeZone'; do you want to add a stub?}} +} + +extension TimeZone : HasCurrent {} +// expected-error@-1 {{type 'TimeZone' does not conform to protocol 'HasCurrent'}} From 6ef4b0db4b23e996856d31f8b7934ecb9fabda0e Mon Sep 17 00:00:00 2001 From: Suyash Srijan Date: Mon, 21 Sep 2020 21:58:14 +0100 Subject: [PATCH 29/31] [SILGen] Emit unreachable code diagnostic for single expression closures with implicit returns too (#33604) * [SILGen] Emit unreachable code diagnostics for single expression closures with implicit returns too * [Test] Update diagnostic in test/SILGen/functions_uninhabited_param.swift --- lib/SILGen/SILGenStmt.cpp | 18 +++++++++++++++++- test/SILGen/functions_uninhabited_param.swift | 12 ++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/lib/SILGen/SILGenStmt.cpp b/lib/SILGen/SILGenStmt.cpp index 0f30f1c4c15bb..8a62dff9d2908 100644 --- a/lib/SILGen/SILGenStmt.cpp +++ b/lib/SILGen/SILGenStmt.cpp @@ -292,7 +292,23 @@ void StmtEmitter::visitBraceStmt(BraceStmt *S) { // If this is an implicit statement or expression, just skip over it, // don't emit a diagnostic here. if (auto *S = ESD.dyn_cast()) { - if (S->isImplicit()) continue; + // Return statement in a single-expression closure or function is + // implicit, but the result isn't. So, skip over return statements + // that are implicit and either have no results or the result is + // implicit. Otherwise, don't so we can emit unreachable code + // diagnostics. + if (S->isImplicit() && isa(S)) { + auto returnStmt = cast(S); + if (!returnStmt->hasResult()) { + continue; + } + if (returnStmt->getResult()->isImplicit()) { + continue; + } + } + if (S->isImplicit() && !isa(S)) { + continue; + } } else if (auto *E = ESD.dyn_cast()) { // Optional chaining expressions are wrapped in a structure like. // diff --git a/test/SILGen/functions_uninhabited_param.swift b/test/SILGen/functions_uninhabited_param.swift index 462498393e55c..bda8a51504017 100644 --- a/test/SILGen/functions_uninhabited_param.swift +++ b/test/SILGen/functions_uninhabited_param.swift @@ -9,9 +9,21 @@ func foo(baz: Never) -> Int { // expected-note {{'baz' is uninhabited, so this f func bar(baz: Never) -> Int {} // ok +// SR-13432 +func map(_ block: (Never) -> T) {} +map { arg in // expected-note {{'arg' is uninhabited, so this function body can never be executed}} + 5 // expected-warning {{will never be executed}} +} + +map { arg in // expected-note {{'arg' is uninhabited, so this function body can never be executed}} + return 5 // expected-warning {{will never be executed}} +} + // We used to crash when emitting the closure below. enum E { static func f(_: E) {} } let _: (E.Type) -> (E) -> () = { s in { e in s.f(e) } } +// expected-warning@-1 {{will never be executed}} +// expected-note@-2 {{'e' is uninhabited, so this function body can never be executed}} From a6d84251a8e4c429b0c18db2157cf1b95d332eb5 Mon Sep 17 00:00:00 2001 From: Holly Borla Date: Mon, 21 Sep 2020 13:45:56 -0700 Subject: [PATCH 30/31] [Test] Re-write the test for SR-13495 to use StblibUnitTest --- test/SILOptimizer/di_property_wrappers.swift | 49 ------------------- .../di_property_wrappers_leak.swift | 40 +++++++++++++++ 2 files changed, 40 insertions(+), 49 deletions(-) create mode 100644 test/SILOptimizer/di_property_wrappers_leak.swift diff --git a/test/SILOptimizer/di_property_wrappers.swift b/test/SILOptimizer/di_property_wrappers.swift index ba6215be7a6c1..c4db338ab2975 100644 --- a/test/SILOptimizer/di_property_wrappers.swift +++ b/test/SILOptimizer/di_property_wrappers.swift @@ -535,54 +535,6 @@ func testSR_12341() { _ = SR_12341(condition: true) } -class TestLeak: CustomStringConvertible { - let val: Int - init(val: Int) { self.val = val } - deinit { print(" .. \(self).deinit") } - var description: String { "TestLeak(\(val))" } -} - -struct SR_13495 { - @Wrapper var wrapped: TestLeak - var str: String - - init() { - wrapped = TestLeak(val: 42) - str = "" - wrapped = TestLeak(val: 27) - } - - init(conditionalInit: Bool) { - if (conditionalInit) { - wrapped = TestLeak(val: 42) - } - str = "" - wrapped = TestLeak(val: 27) - } -} - -func testSR_13495() { - // CHECK: ## SR_13495 - print("\n## SR_13495") - - // CHECK-NEXT: .. init TestLeak(42) - // CHECK-NEXT: .. TestLeak(42).deinit - // CHECK-NEXT: .. set TestLeak(27) - // CHECK-NEXT: .. TestLeak(27).deinit - _ = SR_13495() - - // CHECK-NEXT: .. init TestLeak(42) - // CHECK-NEXT: .. TestLeak(42).deinit - // CHECK-NEXT: .. init TestLeak(27) - // CHECK-NEXT: .. TestLeak(27).deinit - _ = SR_13495(conditionalInit: true) - - // CHECK-NEXT: .. init TestLeak(27) - // CHECK-NEXT: .. TestLeak(27).deinit - _ = SR_13495(conditionalInit: false) -} - - @propertyWrapper struct NonMutatingSetterWrapper { var value: Value @@ -621,5 +573,4 @@ testDefaultNilOptIntStruct() testComposed() testWrapperInitWithDefaultArg() testSR_12341() -testSR_13495() testNonMutatingSetterStruct() diff --git a/test/SILOptimizer/di_property_wrappers_leak.swift b/test/SILOptimizer/di_property_wrappers_leak.swift new file mode 100644 index 0000000000000..0e6373d51fc4d --- /dev/null +++ b/test/SILOptimizer/di_property_wrappers_leak.swift @@ -0,0 +1,40 @@ +// RUN: %empty-directory(%t) +// RUN: %target-build-swift %s -o %t/a.out +// RUN: %target-codesign %t/a.out +// RUN: %target-run %t/a.out + +// REQUIRES: executable_test + +import StdlibUnittest + +@propertyWrapper +struct Wrapper { + var wrappedValue: T +} + +struct TestWrappedValueLeak { + @Wrapper var wrapped: LifetimeTracked = LifetimeTracked(0) + var str: String + + init() { + wrapped = LifetimeTracked(42) + str = "" + wrapped = LifetimeTracked(27) + } + + init(conditionalInit: Bool) { + if (conditionalInit) { + wrapped = LifetimeTracked(42) + } + str = "" + wrapped = LifetimeTracked(27) + } +} + +TestSuite("Property Wrapper DI").test("test wrapped value leak") { + _ = TestWrappedValueLeak() + _ = TestWrappedValueLeak(conditionalInit: true) + _ = TestWrappedValueLeak(conditionalInit: false) +} + +runAllTests() From 58f2ae695b69226df9086d10006574d12165cf0c Mon Sep 17 00:00:00 2001 From: "Kuba (Brecka) Mracek" Date: Mon, 21 Sep 2020 16:33:00 -0700 Subject: [PATCH 31/31] Add a SWIFT_STDLIB_STABLE_ABI flag to be able to build the stdlib without -enable-library-evolution (#33443) --- CMakeLists.txt | 4 --- stdlib/CMakeLists.txt | 37 +++++++++++++++++++++++ stdlib/cmake/modules/AddSwiftStdlib.cmake | 7 +++-- stdlib/cmake/modules/SwiftSource.cmake | 4 +-- utils/build-script-impl | 8 +++++ 5 files changed, 52 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 516aea626b98e..ecdbbca953913 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -242,10 +242,6 @@ set(SWIFT_NATIVE_CLANG_TOOLS_PATH "" CACHE STRING set(SWIFT_NATIVE_SWIFT_TOOLS_PATH "" CACHE STRING "Path to the directory that contains Swift tools that are executable on the build machine") -option(SWIFT_ENABLE_MODULE_INTERFACES - "Generate .swiftinterface files alongside .swiftmodule files" - TRUE) - option(SWIFT_STDLIB_ENABLE_SIB_TARGETS "Should we generate sib targets for the stdlib or not?" FALSE) diff --git a/stdlib/CMakeLists.txt b/stdlib/CMakeLists.txt index 863c04bf12124..6a39ac804c01a 100644 --- a/stdlib/CMakeLists.txt +++ b/stdlib/CMakeLists.txt @@ -9,10 +9,43 @@ project(swift-stdlib LANGUAGES C CXX) list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules") +if("${SWIFT_HOST_VARIANT_SDK}" STREQUAL "OSX") + # All Darwin platforms have ABI stability. + set(SWIFT_STDLIB_STABLE_ABI_default TRUE) +elseif("${SWIFT_HOST_VARIANT_SDK}" STREQUAL "LINUX") + # TODO(mracek): This should get turned off, as this is not an ABI stable platform. + set(SWIFT_STDLIB_STABLE_ABI_default TRUE) +elseif("${SWIFT_HOST_VARIANT_SDK}" STREQUAL "FREEBSD") + # TODO(mracek): This should get turned off, as this is not an ABI stable platform. + set(SWIFT_STDLIB_STABLE_ABI_default TRUE) +elseif("${SWIFT_HOST_VARIANT_SDK}" STREQUAL "OPENBSD") + # TODO(mracek): This should get turned off, as this is not an ABI stable platform. + set(SWIFT_STDLIB_STABLE_ABI_default TRUE) +elseif("${SWIFT_HOST_VARIANT_SDK}" STREQUAL "CYGWIN") + # TODO(mracek): This should get turned off, as this is not an ABI stable platform. + set(SWIFT_STDLIB_STABLE_ABI_default TRUE) +elseif("${SWIFT_HOST_VARIANT_SDK}" STREQUAL "WINDOWS") + # TODO(mracek): This should get turned off, as this is not an ABI stable platform. + set(SWIFT_STDLIB_STABLE_ABI_default TRUE) +elseif("${SWIFT_HOST_VARIANT_SDK}" STREQUAL "HAIKU") + # TODO(mracek): This should get turned off, as this is not an ABI stable platform. + set(SWIFT_STDLIB_STABLE_ABI_default TRUE) +elseif("${SWIFT_HOST_VARIANT_SDK}" STREQUAL "ANDROID") + # TODO(mracek): This should get turned off, as this is not an ABI stable platform. + set(SWIFT_STDLIB_STABLE_ABI_default TRUE) +else() + # Any new platform should have non-stable ABI to start with. + set(SWIFT_STDLIB_STABLE_ABI_default FALSE) +endif() + # # User-configurable options for the standard library. # +option(SWIFT_STDLIB_STABLE_ABI + "Should stdlib be built with stable ABI (library evolution, resilience)." + "${SWIFT_STDLIB_STABLE_ABI_default}") + option(SWIFT_ENABLE_COMPATIBILITY_OVERRIDES "Support back-deploying compatibility fixes for newer apps running on older runtimes." TRUE) @@ -29,6 +62,10 @@ option(SWIFT_STDLIB_OS_VERSIONING "Build stdlib with availability based on OS versions (Darwin only)." TRUE) +option(SWIFT_ENABLE_MODULE_INTERFACES + "Generate .swiftinterface files alongside .swiftmodule files" + "${SWIFT_STDLIB_STABLE_ABI}") + # # End of user-configurable options. # diff --git a/stdlib/cmake/modules/AddSwiftStdlib.cmake b/stdlib/cmake/modules/AddSwiftStdlib.cmake index bc9aa32384573..5d294c208ab1e 100644 --- a/stdlib/cmake/modules/AddSwiftStdlib.cmake +++ b/stdlib/cmake/modules/AddSwiftStdlib.cmake @@ -318,8 +318,11 @@ function(_add_target_variant_c_compile_flags) list(APPEND result "-DSWIFT_OBJC_INTEROP=0") endif() - # TODO(mracek): This should get turned off for non-ABI-stable environments. - list(APPEND result "-DSWIFT_LIBRARY_EVOLUTION=1") + if(SWIFT_STDLIB_STABLE_ABI) + list(APPEND result "-DSWIFT_LIBRARY_EVOLUTION=1") + else() + list(APPEND result "-DSWIFT_LIBRARY_EVOLUTION=0") + endif() if(NOT SWIFT_ENABLE_COMPATIBILITY_OVERRIDES) list(APPEND result "-DSWIFT_RUNTIME_NO_COMPATIBILITY_OVERRIDES") diff --git a/stdlib/cmake/modules/SwiftSource.cmake b/stdlib/cmake/modules/SwiftSource.cmake index e678005b5a58b..5db2f9aeac7bb 100644 --- a/stdlib/cmake/modules/SwiftSource.cmake +++ b/stdlib/cmake/modules/SwiftSource.cmake @@ -399,8 +399,8 @@ function(_compile_swift_files list(APPEND swift_flags "-Xfrontend" "-sil-verify-all") endif() - # The standard library and overlays are always built resiliently. - if(SWIFTFILE_IS_STDLIB) + # The standard library and overlays are built resiliently when SWIFT_STDLIB_STABLE_ABI=On. + if(SWIFTFILE_IS_STDLIB AND SWIFT_STDLIB_STABLE_ABI) list(APPEND swift_flags "-enable-library-evolution") endif() diff --git a/utils/build-script-impl b/utils/build-script-impl index ee3f4863df40e..dcf9e2bb69087 100755 --- a/utils/build-script-impl +++ b/utils/build-script-impl @@ -197,6 +197,7 @@ KNOWN_SETTINGS=( swift-runtime-macho-no-dyld "0" "whether to build stdlib assuming the runtime environment does not support dynamic modules" swift-stdlib-single-threaded-runtime "0" "whether to build stdlib as a single-threaded runtime only" swift-stdlib-os-versioning "1" "whether to build stdlib with availability based on OS versions (Darwin only)" + swift-stdlib-stable-abi "" "should stdlib be built with stable ABI, if not set defaults to true on Darwin, false otherwise" ## FREESTANDING Stdlib Options swift-freestanding-sdk "" "which SDK to use when building the FREESTANDING stdlib" @@ -1872,6 +1873,13 @@ for host in "${ALL_HOSTS[@]}"; do ) fi + if [[ "${SWIFT_STDLIB_STABLE_ABI}" ]] ; then + cmake_options=( + "${cmake_options[@]}" + -DSWIFT_STDLIB_STABLE_ABI:BOOL=$(true_false "${SWIFT_STDLIB_STABLE_ABI}") + ) + fi + if [ "${SWIFT_INSTALL_COMPONENTS}" ] ; then cmake_options=( "${cmake_options[@]}"