title: SwiftUI: Random "Extra argument in call" error
body: <p>So I'm trying to learn SwiftUI and Combine. I usually start new tech by making a simple tip calculator. </p>
  
  <p>I seem to be getting a random "Extra argument in call." error while coding 
  Here is my SwiftUI File</p>
  
  <pre><code>import SwiftUI
  
  internal enum ReceiptRowType {
      case subtotal
      case tax
      case total
      case tip
      case grandTotal
  }
  
  struct TipView: View {
      @ObservedObject internal var adBannerView: BannerAdView = BannerAdView()
      @ObservedObject internal var receiptViewModel: ReceiptViewModel
  
      private let percentageFormatter: NumberFormatter = {
          let f = NumberFormatter()
          f.numberStyle = .percent
          return f
      }()
  
      var body: some View {
          ZStack {
              Color.white
                  .scaledToFit()
  
              VStack {
                  if adBannerView.adHasLoaded {
                      adBannerView
                          .frame(maxHeight: adBannerView.adHeight)
                          .animation(.easeInOut(duration: 2.0))
                  }
  
                  BorderView()
  
                  Text(ARCHLocalizedStrings.receipt)
                      .foregroundColor(Color.gray)
  
                  BorderView()
  
                  HStack {
                      Spacer()
  
                      Button(action: {
                          self.receiptViewModel.addNewReceiptItem()
                      }) {
                          Text(ARCHLocalizedStrings.buttonTitleAddItem)
                      }
                  }
  
                  BorderView()
  
                  ScrollView {
                      ForEach(receiptViewModel.receiptItems) { receiptItem in
                          ItemView(receiptItem: receiptItem)
  
                          if receiptItem != self.receiptViewModel.receiptItems.last {
                              Divider()
                          }
                      }
                  }
  
                  BorderView()
  
                  BottomOfReceiptRow(receiptViewModel: receiptViewModel,
                                     type: ReceiptRowType.subtotal,
                                     title: ARCHLocalizedStrings.subtotal)
  
                  BottomOfReceiptRow(receiptViewModel: receiptViewModel,
                                     type: ReceiptRowType.tax,
                                     title: ARCHLocalizedStrings.tax)
              }
              .padding(.horizontal, ARCHSwiftUILayoutConstants.defaultPaddingAndSpacing)
          }
      }
  }
  
  struct BorderView: View {
      var body: some View {
          Text("================================")
              .lineLimit(1)
              .foregroundColor(Color.gray)
              .minimumScaleFactor(0.5)
      }
  }
  
  struct ItemView: View {
      @ObservedObject var receiptItem: ReceiptItemViewModel
  
      var body: some View {
          HStack {
              TextField(receiptItem.name, text: $receiptItem.name)
                  .textFieldStyle(RoundedBorderTextFieldStyle())
                  .foregroundColor(Color.gray)
                  .multilineTextAlignment(TextAlignment.leading)
  
              TextField("Price", value: $receiptItem.price, formatter: ARCHUtilities.currencyFormatter)
                  .textFieldStyle(RoundedBorderTextFieldStyle())
                  .foregroundColor(Color.gray)
                  .multilineTextAlignment(TextAlignment.trailing)
                  .minimumScaleFactor(0.5)
                  .frame(width: ARCHSwiftUILayoutConstants.widthForCurrency)
          }
      }
  }
  
  struct BottomOfReceiptRow: View {
      @ObservedObject internal var receiptViewModel: ReceiptViewModel
  
      internal var type: ReceiptRowType
      internal var title: String
  
      var body: some View {
          HStack {
              Spacer()
  
              Text(title)
                  .foregroundColor(Color.gray)
  
              if type == ReceiptRowType.subtotal {
                  Text("\(receiptViewModel.subtotal)")
                      .foregroundColor(Color.gray)
                      .frame(width: ARCHSwiftUILayoutConstants.widthForCurrency)
              } else if type == ReceiptRowType.tax {
                  Text("\(receiptViewModel.taxRate)")
                      .foregroundColor(Color.gray)
                      .frame(width: ARCHSwiftUILayoutConstants.widthForCurrency)
              } else if type == ReceiptRowType.total {
                  Text("\(receiptViewModel.total)")
                      .foregroundColor(Color.gray)
                      .frame(width: ARCHSwiftUILayoutConstants.widthForCurrency)
              } else if type == ReceiptRowType.tip {
  
              } else if type == ReceiptRowType.grandTotal {
                  Text("\(receiptViewModel.grandTotal)")
                      .foregroundColor(Color.gray)
                      .frame(width: ARCHSwiftUILayoutConstants.widthForCurrency)
              }
          }
      }
  }
  
  struct TipView_Previews: PreviewProvider {
      static var previews: some View {
          TipView(receiptViewModel: ReceiptViewModel())
      }
  }
  </code></pre>
  
  <p>However, if I add another view on the TipView body (Any View) I seem to get a "Extra argument in call" error. </p>
  
  <p><a href="https://i.stack.imgur.com/GCAXk.png" rel="noreferrer">Picture of error here</a></p>
  
  <p>Does anyone know what's going on? </p>