title: Type-check takes too much time on constraints
body: <p>I have a warning with my own limit that I can't exceed:</p>
  <p><strong>Instance method 'commonInit()' took 327ms to type-check (limit: 300ms)</strong></p>
  <p>As an example I have a warning with this code:</p>
  <pre><code>private func commonInit() {
      backgroundColor = .black
  
      addSubview(haloView)
      addSubview(imageView)
      addSubview(plusLogo)
      
      haloView.constraint([.centerX, .centerY], equalTo: self)
      haloView.constraint(.height, equalTo: Static.haloHeight)
      imageView.constraint([.centerY, .centerX], equalTo: self)
      imageView.constraint(.width, lessThanOrEqualTo: self, multiplier: 0.75)
      imageView.constraint(.height, lessThanOrEqualTo: 48)
      plusLogo.constraint(.centerX, equalTo: self)
      plusLogo.constraint(.bottom, equalTo: self, constant: -Static.subtitleBottomInset)
      
      NotificationCenter.default.post(name: SplashViewObserverEvent.willShow.notificationName, object: nil)
      
      showAnimation()
  }
  </code></pre>
  <p>Where <code>Static</code> is a enum with this values:</p>
  <pre><code>private enum Static {
      static let haloHeight: CGFloat = 50
      static let subtitleBottomInset: CGFloat = 80
  }
  </code></pre>
  <p>I set up views in a way like this:</p>
  <pre><code>private lazy var imageView: UIImageView = {
      let v = UIImageView(image: Images.logo)
      v.translatesAutoresizingMaskIntoConstraints = false
      v.contentMode = .scaleAspectFit
      return v
  }()
  
  private lazy var plusLogo: UIImageView = {
      let v = UIImageView(image: Images.logo)
      v.translatesAutoresizingMaskIntoConstraints = false
      v.contentMode = .scaleAspectFit
      return v
  }()
  
  
  private let haloView: UIImageView = {
      let v = UIImageView(image: Images.background)
      v.translatesAutoresizingMaskIntoConstraints = false
      v.contentMode = .scaleAspectFit
      v.alpha = 0
      return v
  }()
  </code></pre>
  <p>Also I have a custom generic wrapper on constraint such this:</p>
  <pre><code>@discardableResult
  func constraint&lt;Guide&gt;(
      _ attributes: [NSLayoutConstraint.Attribute],
      equalTo guide: Guide,
      multiplier: CGFloat = 1,
      constant: CGFloat = 0,
      priority: UILayoutPriority = .required,
      isActive: Bool = true
  ) -&gt; [NSLayoutConstraint]
      where Guide: LayoutConstraintCompatible
  {
      return attributes.map {
          constraint(
              $0,
              equalTo: guide,
              multiplier: multiplier,
              constant: constant,
              priority: priority,
              isActive: isActive
          )
      }
  }
  </code></pre>
  <p>I don't understand why this takes too much time due to I set properly a type for everything in my code. If you need more information then write in the comments to the question, I will clarify the information if necessary</p>