 
 // MARK: - PAssert
 public func PAssert<T>(@autoclosure lhs: () -> T, _ comparison: (T, T) -> Bool, @autoclosure _ rhs: () -> T,
-                filePath: String = __FILE__, lineNumber: Int = __LINE__, function: String = __FUNCTION__) {
-        
-        let pa = PAssertHelper()
-        
-        let result = comparison(lhs(), rhs())
-        
-        if !result {
-            var source = pa.readSource(filePath)
-            
-            if !source.isEmpty {
-                source = pa.removeComment(source)
-                source = pa.removeMultilinesComment(source)
-                let out = pa.output(source: source, comparison: result, lhs: lhs(), rhs: rhs(),
-                    fileName: pa.getFilename(filePath), lineNumber: lineNumber, function: function)
-                
-                XCTFail(out, file: filePath, line:UInt(lineNumber))
-            }
-        } else {
-            print("")
-            print("[\(pa.getDateTime()) \(pa.getFilename(filePath)):\(lineNumber) \(function)] \(lhs())")
-            print("")
-        }
+                       filePath: StaticString = #file, lineNumber: UInt = #line, function: String = #function) {
+    
+    let pa = PAssertHelper()
+    
+    let result = comparison(lhs(), rhs())
+
+    if !result {
+        var source = pa.readSource(filePath.stringValue)
+        
+        if !source.isEmpty {
+            source = pa.removeComment(source)
+            source = pa.removeMultilinesComment(source)
+            let out = pa.output(source: source, comparison: result, lhs: lhs(), rhs: rhs(),
+                fileName: pa.getFilename(filePath.stringValue), lineNumber: lineNumber, function: function)
+            
+            XCTFail(out, file: filePath, line:UInt(lineNumber))
+        }
+    } else {
+        print("")
+        print("[\(pa.getDateTime()) \(pa.getFilename(filePath.stringValue)):\(lineNumber) \(function)] \(lhs())")
+        print("")
+    }
 }
 
 private class PAssertHelper {

                
                for char in tmpLine.characters {
                    if char == "(" {
                        ++startBracket
                    }
                    if char == ")" {
                        ++endBracket
                    }
                }
                if startBracket == endBracket {

    }
    
    // MARK: - print result
    private func output<T>(source source: String?, comparison: Bool, lhs: T, rhs: T, fileName: String, lineNumber: UInt, function: String) -> String {
        
        let title = "=== Assertion Failed ============================================="
        let file = "FILE: \(fileName)"
