title: Is parameter name able to become return type in swift 4?
body: <pre><code>Hi there！I meet the following code in IOS swift development class. 
  
  class UpdateToAttributedStringsPolicy: NSEntityMigrationPolicy {
  
  override func createDestinationInstances(forSource sInstance: NSManagedObject, in mapping: NSEntityMapping, manager: NSMigrationManager) throws {
      // Call super
      try super.createDestinationInstances(forSource: sInstance, in: mapping, manager: manager)
  
      // Get the (updated) destination Note instance we're modifying
      guard let destination = manager.destinationInstances(forEntityMappingName: mapping.name, sourceInstances: [sInstance]).first else { return }
  
      // Use the (original) source Note instance, and instantiate a new
      // NSAttributedString using the original string
      if let text = sInstance.value(forKey: "text") as? String {
          destination.setValue(NSAttributedString(string: text), forKey: "attributedText")
      }
    }
  }
  </code></pre>
  
  <p>In this line of code</p>
  
  <pre><code>override func createDestinationInstances(forSource sInstance: NSManagedObject, in mapping: NSEntityMapping, manager: NSMigrationManager) throws
  </code></pre>
  
  <p>the sInstance and manager is a parameter name in the function createDestinationInstances,but in </p>
  
  <pre><code>try super.createDestinationInstances(forSource: sInstance, in: mapping, manager: manager)
  </code></pre>
  
  <p>they become a return name,how this works?
   And why call super here?Does it mean super.init?</p>
  
  <p>Thanks!</p>