Skip to content

Finish removing -swift-version 3 #20409

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion include/swift/Basic/Version.h
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ class Version {
// List of backward-compatibility versions that we permit passing as
// -swift-version <vers>
static std::array<StringRef, 4> getValidEffectiveVersions() {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Array size should be 3 instead of 4

Suggested change
static std::array<StringRef, 4> getValidEffectiveVersions() {
static std::array<StringRef, 3> getValidEffectiveVersions() {

return {{"3", "4", "4.2", "5"}};
return {{"4", "4.2", "5"}};
};
};

Expand Down
11 changes: 1 addition & 10 deletions lib/Basic/Version.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -319,17 +319,8 @@ Optional<Version> Version::getEffectiveLanguageVersion() const {

// FIXME: When we switch to Swift 5 by default, the "4" case should return
// a version newer than any released 4.x compiler, and the
// "5" case should start returning getCurrentLanguageVersion. We should
// also check for the presence of SWIFT_VERSION_PATCHLEVEL, and if that's
// set apply it to the "3" case, so that Swift 4.0.1 will automatically
// have a compatibility mode of 3.2.1.
// "5" case should start returning getCurrentLanguageVersion.
switch (Components[0]) {
case 3:
#ifdef SWIFT_VERSION_PATCHLEVEL
return Version{3, 4, SWIFT_VERSION_PATCHLEVEL};
#else
return Version{3, 4};
#endif
case 4:
static_assert(SWIFT_VERSION_MAJOR == 4,
"getCurrentLanguageVersion is no longer correct here");
Expand Down
10 changes: 5 additions & 5 deletions test/Driver/swift-version.swift
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,21 @@
// RUN: not %target-swiftc_driver -swift-version 1 %s 2>&1 | %FileCheck --check-prefix BAD %s
// RUN: not %target-swiftc_driver -swift-version 2 %s 2>&1 | %FileCheck --check-prefix BAD %s
// RUN: not %target-swiftc_driver -swift-version 2.3 %s 2>&1 | %FileCheck --check-prefix BAD %s
// RUN: not %target-swiftc_driver -swift-version 3 %s 2>&1 | %FileCheck --check-prefix BAD %s
// RUN: not %target-swiftc_driver -swift-version 3.0 %s 2>&1 | %FileCheck --check-prefix BAD %s
// RUN: not %target-swiftc_driver -swift-version 3.3 %s 2>&1 | %FileCheck --check-prefix BAD %s
// RUN: not %target-swiftc_driver -swift-version 7 %s 2>&1 | %FileCheck --check-prefix BAD %s
// RUN: not %target-swiftc_driver -swift-version 7.2 %s 2>&1 | %FileCheck --check-prefix BAD %s
// RUN: not %target-swiftc_driver -swift-version 3.0 %s 2>&1 | %FileCheck --check-prefix FIXIT_3 %s
// RUN: not %target-swiftc_driver -swift-version 3.3 %s 2>&1 | %FileCheck --check-prefix FIXIT_3 %s

// RUN: not %target-swiftc_driver -swift-version 4.3 %s 2>&1 | %FileCheck --check-prefix FIXIT_4 %s
// RUN: not %target-swiftc_driver -swift-version 5.1 %s 2>&1 | %FileCheck --check-prefix FIXIT_5 %s

// RUN: not %target-swiftc_driver -swift-version 3 -typecheck %s 2>&1 | %FileCheck --check-prefix ERROR_3 %s
// RUN: not %target-swiftc_driver -swift-version 4 -typecheck %s 2>&1 | %FileCheck --check-prefix ERROR_4 %s
// RUN: not %target-swiftc_driver -swift-version 5 -typecheck %s 2>&1 | %FileCheck --check-prefix ERROR_5 %s

// BAD: invalid value
// BAD: note: valid arguments to '-swift-version' are '3', '4', '4.2', '5'
// BAD: note: valid arguments to '-swift-version' are '4', '4.2', '5'

// FIXIT_3: use major version, as in '-swift-version 3'
// FIXIT_4: use major version, as in '-swift-version 4'
// FIXIT_5: use major version, as in '-swift-version 5'

Expand Down
46 changes: 2 additions & 44 deletions test/lit.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -576,7 +576,7 @@ config.target_runtime = "unknown"
swift_reflection_test_name = 'swift-reflection-test' + config.variant_suffix

def use_interpreter_for_simple_runs():
def make_simple_target_run(gyb=False, stdlib=False, swift3=False, opt=""):
def make_simple_target_run(gyb=False, stdlib=False, opt=""):
result = ''
if gyb:
result += ('%empty-directory(%t) && '
Expand All @@ -592,22 +592,16 @@ def use_interpreter_for_simple_runs():
swift_execution_tests_extra_flags))
if stdlib:
result += '-Xfrontend -disable-access-control '
if swift3:
result += '-swift-version 3 '
if opt:
result += opt + ' '
if gyb:
result += '%t/main.swift'
else:
result += '%s'
return result
config.target_run_stdlib_swiftgyb_swift3 = make_simple_target_run(gyb=True, stdlib=True, swift3=True)
config.target_run_stdlib_swiftgyb = make_simple_target_run(gyb=True, swift3=True)
config.target_run_simple_swiftgyb_swift3 = make_simple_target_run(gyb=True, swift3=True)
config.target_run_stdlib_swiftgyb = make_simple_target_run(gyb=True)
config.target_run_simple_swiftgyb = make_simple_target_run(gyb=True)
config.target_run_stdlib_swift_swift3 = make_simple_target_run(stdlib=True, swift3=True)
config.target_run_stdlib_swift = make_simple_target_run(stdlib=True)
config.target_run_simple_swift_swift3 = make_simple_target_run(swift3=True)
config.target_run_simple_opt_Osize_swift = make_simple_target_run(opt='-Osize')
config.target_run_simple_opt_O_swift = make_simple_target_run(opt='-O')
config.target_run_simple_swift = make_simple_target_run()
Expand Down Expand Up @@ -1105,26 +1099,13 @@ if not getattr(config, 'target_run_simple_swift', None):
'%s %%t/a.out &&'
'%s %%t/a.out'
% (config.target_build_swift, mcp_opt, config.target_codesign, config.target_run))
config.target_run_simple_swift_swift3 = (
'%%empty-directory(%%t) && '
'%s %s %%s -o %%t/a.out -module-name main -swift-version 3 && '
'%s %%t/a.out &&'
'%s %%t/a.out'
% (config.target_build_swift, mcp_opt, config.target_codesign, config.target_run))
config.target_run_stdlib_swift = (
'%%empty-directory(%%t) && '
'%s %s %%s -o %%t/a.out -module-name main '
'-Xfrontend -disable-access-control && '
'%s %%t/a.out &&'
'%s %%t/a.out'
% (config.target_build_swift, mcp_opt, config.target_codesign, config.target_run))
config.target_run_stdlib_swift_swift3 = (
'%%empty-directory(%%t) && '
'%s %s %%s -o %%t/a.out -module-name main '
'-Xfrontend -disable-access-control -swift-version 3 && '
'%s %%t/a.out &&'
'%s %%t/a.out'
% (config.target_build_swift, mcp_opt, config.target_codesign, config.target_run))
config.target_run_simple_swiftgyb = (
'%%empty-directory(%%t) && '
'%%gyb %%s -o %%t/main.swift && '
Expand All @@ -1134,15 +1115,6 @@ if not getattr(config, 'target_run_simple_swift', None):
'%%line-directive %%t/main.swift -- '
'%s %%t/a.out'
% (config.target_build_swift, mcp_opt, config.target_codesign, config.target_run))
config.target_run_simple_swiftgyb_swift3 = (
'%%empty-directory(%%t) && '
'%%gyb %%s -o %%t/main.swift && '
'%%line-directive %%t/main.swift -- '
'%s %s %%t/main.swift -o %%t/a.out -module-name main -swift-version 3 && '
'%s %%t/a.out &&'
'%%line-directive %%t/main.swift -- '
'%s %%t/a.out'
% (config.target_build_swift, mcp_opt, config.target_codesign, config.target_run))
config.target_run_stdlib_swiftgyb = (
'%%empty-directory(%%t) && '
'%%gyb %%s -o %%t/main.swift && '
Expand All @@ -1153,16 +1125,6 @@ if not getattr(config, 'target_run_simple_swift', None):
'%%line-directive %%t/main.swift -- '
'%s %%t/a.out'
% (config.target_build_swift, mcp_opt, config.target_codesign, config.target_run))
config.target_run_stdlib_swiftgyb_swift3 = (
'%%empty-directory(%%t) && '
'%%gyb %%s -o %%t/main.swift && '
'%%line-directive %%t/main.swift -- '
'%s %s %%t/main.swift -o %%t/a.out -module-name main -swift-version 3 '
'-Xfrontend -disable-access-control && '
'%s %%t/a.out &&'
'%%line-directive %%t/main.swift -- '
'%s %%t/a.out'
% (config.target_build_swift, mcp_opt, config.target_codesign, config.target_run))

subst_target_jit_run = ""
if 'swift_interpreter' in config.available_features:
Expand Down Expand Up @@ -1224,15 +1186,11 @@ config.substitutions.append(
config.substitutions.append(('%target-swift-frontend', config.target_swift_frontend))


config.substitutions.append(('%target-run-simple-swiftgyb-swift3', config.target_run_simple_swiftgyb_swift3))
config.substitutions.append(('%target-run-simple-swiftgyb', config.target_run_simple_swiftgyb))
config.substitutions.append(('%target-run-simple-swift-swift3', config.target_run_simple_swift_swift3))
config.substitutions.append(('%target-run-simple-swift', config.target_run_simple_swift))
config.substitutions.append(('%target-run-simple-opt-O-swift', config.target_run_simple_opt_O_swift))
config.substitutions.append(('%target-run-simple-opt-Osize-swift', config.target_run_simple_opt_Osize_swift))
config.substitutions.append(('%target-run-stdlib-swiftgyb-swift3', config.target_run_stdlib_swiftgyb_swift3))
config.substitutions.append(('%target-run-stdlib-swiftgyb', config.target_run_stdlib_swiftgyb))
config.substitutions.append(('%target-run-stdlib-swift-swift3', config.target_run_stdlib_swift_swift3))
config.substitutions.append(('%target-run-stdlib-swift', config.target_run_stdlib_swift))
config.substitutions.append(('%target-repl-run-simple-swift', subst_target_repl_run_simple_swift))
config.substitutions.append(('%target-run', config.target_run))
Expand Down
4 changes: 3 additions & 1 deletion test/stdlib/NewStringAppending.swift
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// RUN: %target-run-stdlib-swift-swift3 | %FileCheck %s
// RUN: %target-run-stdlib-swift | %FileCheck %s
// REQUIRES: executable_test
//
// Parts of this test depend on memory allocator specifics. The test
Expand All @@ -9,6 +9,8 @@
// Memory allocator specifics also vary across platforms.
// REQUIRES: CPU=x86_64, OS=macosx

// XFAIL: rdar45749460

import Foundation
import Swift

Expand Down
4 changes: 3 additions & 1 deletion validation-test/stdlib/CollectionOld.swift
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
// RUN: %target-run-simple-swift-swift3 --stdlib-unittest-in-process | tee %t.txt
// RUN: %target-run-simple-swift --stdlib-unittest-in-process | tee %t.txt
// RUN: %FileCheck %s < %t.txt
// note: remove the --stdlib-unittest-in-process once all the FileCheck tests
// have been converted to StdlibUnittest
// REQUIRES: executable_test

// XFAIL: rdar45749460

import StdlibUnittest
import StdlibCollectionUnittest

Expand Down
4 changes: 3 additions & 1 deletion validation-test/stdlib/FixedPoint.swift.gyb
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
// RUN: %target-run-stdlib-swiftgyb-swift3
// RUN: %target-run-stdlib-swiftgyb
// REQUIRES: executable_test

// XFAIL: rdar45749460

import StdlibUnittest


Expand Down
4 changes: 3 additions & 1 deletion validation-test/stdlib/HashedCollectionFilter3.swift
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
// RUN: %target-run-stdlib-swift-swift3
// RUN: %target-run-stdlib-swift
// REQUIRES: executable_test

// XFAIL: rdar45749460

import StdlibUnittest

var FilterTestSuite = TestSuite("HashedCollectionFilter")
Expand Down
4 changes: 3 additions & 1 deletion validation-test/stdlib/HashedCollectionFilter4.swift
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
// RUN: %target-run-stdlib-swift-swift3
// RUN: %target-run-stdlib-swift
// REQUIRES: executable_test

// XFAIL: rdar45749460

import StdlibUnittest

var FilterTestSuite = TestSuite("HashedCollectionFilter")
Expand Down
4 changes: 3 additions & 1 deletion validation-test/stdlib/HashingPrototype.swift
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
// RUN: %target-run-simple-swift-swift3
// RUN: %target-run-simple-swift
// REQUIRES: executable_test

// REQUIRES: objc_interop

// XFAIL: rdar45749460

/*

<rdar://problem/14196462> Hashing in the standard library
Expand Down