You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Process complex types recursively with pattern matching
13
+
- Avoid single-character identifiers except in established patterns
14
+
- This project uses .fsi signature files. When adding a new public API to a namespace/module which will be consumed from other file, add it to the respective .fsi signature file as well
15
+
- Follow [overview](docs/overview.md) for key compiler data formats and representations
16
+
17
+
## Type System Handling
18
+
- When working with `TType` instances, use appropriate stripping functions:
19
+
-`stripTyparEqns` - Removes inference equations from type parameters
20
+
-`stripTyEqns` - Removes type equations and type abbreviations
21
+
-`stripTyEqnsAndErase` - Also erases compilation representations
22
+
- Match the appropriate stripper to the context (e.g., display vs compilation)
23
+
- Check equality with `typeEquiv` after stripping rather than direct comparison
24
+
25
+
## Core Data Structures
26
+
- Use F# discriminated unions for type representations
27
+
- Respect representation hiding through access control
28
+
- Use `remapX` functions when transforming types across boundaries
29
+
- Be aware of performance implications for recursive type operations
30
+
31
+
## Documentation and Naming
32
+
- Document public APIs with XML comments
33
+
- Use descriptive function names that indicate transformation direction
34
+
- Follow established naming conventions in error messages
<PropertyGroupCondition="'$(Configuration)' != 'Proto' and '$(BUILDING_USING_DOTNET)' != 'true' and '$(MSBuildProjectExtension)' == '.fsproj'"> <!-- VB.NET does not understand "preview". It only knows "old","older" and "boomer" :-)) (jk)-->
Copy file name to clipboardExpand all lines: eng/Build.ps1
+8-13
Original file line number
Diff line number
Diff line change
@@ -68,7 +68,7 @@ param (
68
68
[switch]$testBenchmarks,
69
69
[string]$officialSkipTests="false",
70
70
[switch]$noVisualStudio,
71
-
[switch]$sourceBuild,
71
+
[switch][Alias('pb')]$productBuild,
72
72
[switch]$skipBuild,
73
73
[switch]$compressAllMetadata,
74
74
[switch]$buildnorealsig=$true,
@@ -133,7 +133,7 @@ function Print-Usage() {
133
133
Write-Host" -prepareMachine Prepare machine for CI run, clean up processes after build"
134
134
Write-Host" -dontUseGlobalNuGetCache Do not use the global NuGet cache"
135
135
Write-Host" -noVisualStudio Only build fsc and fsi as .NET Core applications. No Visual Studio required. '-configuration', '-verbosity', '-norestore', '-rebuild' are supported."
136
-
Write-Host" -sourceBuild Simulate building for source-build."
136
+
Write-Host" -productBuildBuild the repository in product-build mode."
137
137
Write-Host" -skipbuild Skip building product"
138
138
Write-Host" -compressAllMetadata Build product with compressed metadata"
139
139
Write-Host" -buildnorealsig Build product with realsig- (default use realsig+, where necessary)"
@@ -218,10 +218,6 @@ function Process-Arguments() {
<NoWarn>$(NoWarn);1182</NoWarn> <!-- suppress warning for unused values in FSharp.Compiler.Service.Tests tests, very often checker results are needed, but not used -->
0 commit comments