Files
swift-mirror/test/Interpreter/SDK/Foundation_test.swift
Doug Gregor ddc2b113c9 Check for declaration overrides within extensions as well as within classes.
A Swift method in an extension cannot override a method nor can it be
overridden by a method. Diagnose this. We may remove this limitation
at a later time.

An [objc] method in an extension can override and can be overridden, so
specifically allow this case. It's useful in our Foundation bindings.



Swift SVN r4308
2013-03-06 19:56:56 +00:00

86 lines
2.4 KiB
Swift

// RUN: %swift -sdk=%sdk -i %s | FileCheck %s
// REQUIRES: sdk
import Foundation
//===----------------------------------------------------------------------===//
// Strings
//===----------------------------------------------------------------------===//
var str = "Hello"
var nsStr : NSString = str
// FIXME: Comparisons between imported enums
assert(nsStr.compare(str).value == NSOrderedSame.value)
nsStr = "World"
str = nsStr
assert(str == nsStr)
//===----------------------------------------------------------------------===//
// Numbers
//===----------------------------------------------------------------------===//
var i = 17
var d = 3.14159
var b = true
// Implicit boxing/explicit unboxing
var nsNum : NSNumber = i
assert(Int(nsNum) == i)
nsNum = d
assert(Double(nsNum) == d)
nsNum = b
assert(Bool(nsNum) == b)
// Literals
nsNum = 42
assert(Int(nsNum) == 42)
nsNum = 3.14159
assert(Double(nsNum) == 3.14159)
nsNum = false
assert(Bool(nsNum) == false)
//===----------------------------------------------------------------------===//
// Arrays
//===----------------------------------------------------------------------===//
// Literals
var nsArr : NSArray = [1, 2.5, "Hello"]
assert(nsArr.count() == 3)
// Subscripting
assert(Int(NSNumber(nsArr[0])) == 1)
assert(Double(NSNumber(nsArr[1])) == 2.5)
assert(NSString(nsArr[2]).isEqualTo("Hello"))
// Iteration
for x in nsArr {
print("Element = \(x.description())\n")
}
// CHECK: Element = 1
// CHECK: Element = 2.5
// CHECK: Element = Hello
//===----------------------------------------------------------------------===//
// Dictionaries
//===----------------------------------------------------------------------===//
var nsDict : NSDictionary = [1 : "Hello", 2 : "World"]
assert(NSString(nsDict[1]).isEqualTo("Hello"))
assert(NSString(nsDict[2]).isEqualTo("World"))
//===----------------------------------------------------------------------===//
// Ranges
//===----------------------------------------------------------------------===//
var nsRange : NSRange = 1..5
//===----------------------------------------------------------------------===//
// NSRect
//===----------------------------------------------------------------------===//
var nsRect = NSRect(1, 5, 20, 30)
//===----------------------------------------------------------------------===//
// URLs
//===----------------------------------------------------------------------===//
var nsURL : NSURL = "http://llvm.org"