Source Line, File, and Path Identifiers
The identifiers __LINE__
, __SOURCE_DIRECTORY__
and __SOURCE_FILE__
are built-in values that enable you to access the source line number, directory and file name in your code.
Syntax
__LINE__
__SOURCE_DIRECTORY__
__SOURCE_FILE__
Remarks
Each of these values has type string
.
The following table summarizes the source line, file, and path identifiers that are available in F#. These identifiers are not preprocessor macros; they are built-in values that are recognized by the compiler.
Predefined identifier | Description |
---|---|
__LINE__ |
Evaluates to the current line number, considering #line directives. |
__SOURCE_DIRECTORY__ |
Evaluates to the current full path of the source directory, considering #line directives. |
__SOURCE_FILE__ |
Evaluates to the current source file name, without its path, considering #line directives. |
For more information about the #line
directive, see Compiler Directives.
Example
The following code example demonstrates the use of these values.
let printSourceLocation() =
printfn "Line: %s" __LINE__
printfn "Source Directory: %s" __SOURCE_DIRECTORY__
printfn "Source File: %s" __SOURCE_FILE__
printSourceLocation()
Output:
Line: 4
Source Directory: C:\Users\username\Documents\Visual Studio 2017\Projects\SourceInfo\SourceInfo
Source File: Program.fs
See also
Collaborate with us on GitHub
The source for this content can be found on GitHub, where you can also create and review issues and pull requests. For more information, see our contributor guide.