     ("testFactory", testFactory),
     ("testStruct", testStruct),
     ("testPathExploration", testPathExploration),
+    ("testAssertAfterIf", testAssertAfterIf),
   ]
 }
 

      }
    }
    """
    withSIL(forSource: code) { module, silPath in
      let analyzer = Analyzer()
      analyzer.analyze(module)
      let constraints = instantiate(constraintsOf: "f", inside: analyzer.environment)
      assertUnsat(verify(constraints))
    }
  }



    }
  }

  func assertVerificationResult(_ code: String, _ check: (SolverResult) -> Void) {
    withSIL(forSource: code) { module, silPath in
      let analyzer = Analyzer()
      analyzer.analyze(module)
      let constraints = instantiate(constraintsOf: "f", inside: analyzer.environment)
      check(verify(constraints))
    }
  }

  func assertRejected(_ code: String, file: StaticString = #file, line: UInt = #line) {
    assertVerificationResult(code, { assertUnsat($0, file: file, line: line) })
  }

  func assertAccepted(_ code: String, file: StaticString = #file, line: UInt = #line) {
    assertVerificationResult(code, { assertSat($0, file: file, line: line) })
  }

  func testPathExploration() {
    let code = """
    @_silgen_name("f")
