1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
|
// main.swift
//
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2014 - 2016 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
//
// -----------------------------------------------------------------------------
protocol Proto {
associatedtype FancyType
func get() -> FancyType
}
extension String : Proto {
typealias FancyType = Int
func get() -> Int { return 1 }
}
func function <SomeType : Proto> (_ x : SomeType)
{
var v = x.get()
print(v) //Break here
}
class AClass <TypeA>
{
init () {}
func method1(_ x : TypeA)
{
print("hello world") //Break here
}
func method2 <TypeB> (_ x : TypeA, _ y : TypeB)
{
print("Hello world") //Break here
}
}
class OtherClass <TypeA> : AClass <TypeA>
{
var v : Int
init(_ x : TypeA) {v = 1234567;super.init()}
}
struct Generic <Foo> {
var v : Foo
init (_ _v : Foo) { v = _v }
}
class Pair <Foo,Bar> {
var one : Foo
var two : Bar
init (_ o : Foo, _ t : Bar) { one = o; two = t }
func print() {
Swift.print("hello") //Break here
}
}
struct Outer <Foo> {
struct Inner {
var field: Foo
func print() {
Swift.print("hello") //Break here
}
}
}
func main() {
var object : AClass<Int> = OtherClass(3)
object.method1(123)
function("hello world again")
var pair1 : Pair<Generic<Int>,Pair<String,Generic<String>>> =
Pair(Generic(193627),Pair("hello",Generic("world")))
var pair2 = Pair(Generic(3.141592),Generic(Pair("this is","a good thing")))
pair1.print()
pair2.print()
object.method2(5,"hello world")
let value = Outer<Int>.Inner(field: 10)
value.print()
}
main()
|