mirror of
				https://github.com/Smaug123/WoofWare.Myriad
				synced 2025-10-31 00:29:00 +00:00 
			
		
		
		
	Compare commits
	
		
			1 Commits
		
	
	
		
			WoofWare.M
			...
			6a3d5e6019
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 6a3d5e6019 | 
| @@ -3,7 +3,7 @@ | ||||
|   "isRoot": true, | ||||
|   "tools": { | ||||
|     "fantomas": { | ||||
|       "version": "6.3.3", | ||||
|       "version": "6.3.0-alpha-007", | ||||
|       "commands": [ | ||||
|         "fantomas" | ||||
|       ] | ||||
|   | ||||
| @@ -2,6 +2,7 @@ root=true | ||||
|  | ||||
| [*] | ||||
| charset=utf-8 | ||||
| end_of_line=crlf | ||||
| trim_trailing_whitespace=true | ||||
| insert_final_newline=true | ||||
| indent_style=space | ||||
|   | ||||
							
								
								
									
										10
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| * eol=auto | ||||
| *.sh text eol=lf | ||||
| *.yaml text | ||||
| *.nix text eol=lf | ||||
| hooks/pre-push text eol=lf | ||||
| * eol=auto | ||||
| *.sh text eol=lf | ||||
| *.yaml text | ||||
| *.nix text eol=lf | ||||
| hooks/pre-push text eol=lf | ||||
|   | ||||
							
								
								
									
										18
									
								
								.github/workflows/dotnet.yaml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										18
									
								
								.github/workflows/dotnet.yaml
									
									
									
									
										vendored
									
									
								
							| @@ -28,7 +28,7 @@ jobs: | ||||
|       with: | ||||
|         fetch-depth: 0 # so that NerdBank.GitVersioning has access to history | ||||
|     - name: Install Nix | ||||
|       uses: cachix/install-nix-action@v26 | ||||
|       uses: cachix/install-nix-action@v25 | ||||
|       with: | ||||
|         extra_nix_config: | | ||||
|           access-tokens = github.com=${{ secrets.GITHUB_TOKEN }} | ||||
| @@ -49,7 +49,7 @@ jobs: | ||||
|         with: | ||||
|           fetch-depth: 0 # so that NerdBank.GitVersioning has access to history | ||||
|       - name: Install Nix | ||||
|         uses: cachix/install-nix-action@v26 | ||||
|         uses: cachix/install-nix-action@v25 | ||||
|         with: | ||||
|           extra_nix_config: | | ||||
|             access-tokens = github.com=${{ secrets.GITHUB_TOKEN }} | ||||
| @@ -66,7 +66,7 @@ jobs: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v4 | ||||
|       - name: Install Nix | ||||
|         uses: cachix/install-nix-action@v26 | ||||
|         uses: cachix/install-nix-action@v25 | ||||
|         with: | ||||
|           extra_nix_config: | | ||||
|             access-tokens = github.com=${{ secrets.GITHUB_TOKEN }} | ||||
| @@ -79,7 +79,7 @@ jobs: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v4 | ||||
|       - name: Install Nix | ||||
|         uses: cachix/install-nix-action@v26 | ||||
|         uses: cachix/install-nix-action@v25 | ||||
|         with: | ||||
|           extra_nix_config: | | ||||
|             access-tokens = github.com=${{ secrets.GITHUB_TOKEN }} | ||||
| @@ -92,7 +92,7 @@ jobs: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v4 | ||||
|       - name: Install Nix | ||||
|         uses: cachix/install-nix-action@v26 | ||||
|         uses: cachix/install-nix-action@v25 | ||||
|         with: | ||||
|           extra_nix_config: | | ||||
|             access-tokens = github.com=${{ secrets.GITHUB_TOKEN }} | ||||
| @@ -105,7 +105,7 @@ jobs: | ||||
|     steps: | ||||
|       - uses: actions/checkout@master | ||||
|       - name: Install Nix | ||||
|         uses: cachix/install-nix-action@v26 | ||||
|         uses: cachix/install-nix-action@v25 | ||||
|         with: | ||||
|           extra_nix_config: | | ||||
|             access-tokens = github.com=${{ secrets.GITHUB_TOKEN }} | ||||
| @@ -118,7 +118,7 @@ jobs: | ||||
|     steps: | ||||
|       - uses: actions/checkout@master | ||||
|       - name: Install Nix | ||||
|         uses: cachix/install-nix-action@v26 | ||||
|         uses: cachix/install-nix-action@v25 | ||||
|         with: | ||||
|           extra_nix_config: | | ||||
|             access-tokens = github.com=${{ secrets.GITHUB_TOKEN }} | ||||
| @@ -132,7 +132,7 @@ jobs: | ||||
|       with: | ||||
|         fetch-depth: 0 # so that NerdBank.GitVersioning has access to history | ||||
|     - name: Install Nix | ||||
|       uses: cachix/install-nix-action@v26 | ||||
|       uses: cachix/install-nix-action@v25 | ||||
|       with: | ||||
|         extra_nix_config: | | ||||
|           access-tokens = github.com=${{ secrets.GITHUB_TOKEN }} | ||||
| @@ -188,7 +188,7 @@ jobs: | ||||
|     steps: | ||||
|       - uses: actions/checkout@v4 | ||||
|       - name: Install Nix | ||||
|         uses: cachix/install-nix-action@v26 | ||||
|         uses: cachix/install-nix-action@v25 | ||||
|         with: | ||||
|           extra_nix_config: | | ||||
|             access-tokens = github.com=${{ secrets.GITHUB_TOKEN }} | ||||
|   | ||||
| @@ -5,7 +5,6 @@ | ||||
|  | ||||
| namespace SomeNamespace | ||||
|  | ||||
| open System | ||||
| open WoofWare.Myriad.Plugins | ||||
|  | ||||
| /// Mock record type for an interface | ||||
| @@ -30,7 +29,6 @@ type internal PublicTypeMock = | ||||
|         member this.Mem3 (arg_0_0, arg_0_1) = this.Mem3 (arg_0_0, arg_0_1) | ||||
| namespace SomeNamespace | ||||
|  | ||||
| open System | ||||
| open WoofWare.Myriad.Plugins | ||||
|  | ||||
| /// Mock record type for an interface | ||||
| @@ -55,7 +53,6 @@ type public PublicTypeInternalFalseMock = | ||||
|         member this.Mem3 (arg_0_0, arg_0_1) = this.Mem3 (arg_0_0, arg_0_1) | ||||
| namespace SomeNamespace | ||||
|  | ||||
| open System | ||||
| open WoofWare.Myriad.Plugins | ||||
|  | ||||
| /// Mock record type for an interface | ||||
| @@ -77,7 +74,6 @@ type internal InternalTypeMock = | ||||
|         member this.Mem2 (arg_0_0) = this.Mem2 (arg_0_0) | ||||
| namespace SomeNamespace | ||||
|  | ||||
| open System | ||||
| open WoofWare.Myriad.Plugins | ||||
|  | ||||
| /// Mock record type for an interface | ||||
| @@ -99,7 +95,6 @@ type private PrivateTypeMock = | ||||
|         member this.Mem2 (arg_0_0) = this.Mem2 (arg_0_0) | ||||
| namespace SomeNamespace | ||||
|  | ||||
| open System | ||||
| open WoofWare.Myriad.Plugins | ||||
|  | ||||
| /// Mock record type for an interface | ||||
| @@ -121,7 +116,6 @@ type private PrivateTypeInternalFalseMock = | ||||
|         member this.Mem2 (arg_0_0) = this.Mem2 (arg_0_0) | ||||
| namespace SomeNamespace | ||||
|  | ||||
| open System | ||||
| open WoofWare.Myriad.Plugins | ||||
|  | ||||
| /// Mock record type for an interface | ||||
| @@ -140,7 +134,6 @@ type internal VeryPublicTypeMock<'a, 'b> = | ||||
|         member this.Mem1 (arg_0_0) = this.Mem1 (arg_0_0) | ||||
| namespace SomeNamespace | ||||
|  | ||||
| open System | ||||
| open WoofWare.Myriad.Plugins | ||||
|  | ||||
| /// Mock record type for an interface | ||||
| @@ -178,28 +171,3 @@ type internal CurriedMock<'a> = | ||||
|  | ||||
|         member this.Mem6 (arg_0_0, arg_0_1) (arg_1_0, arg_1_1) = | ||||
|             this.Mem6 (arg_0_0, arg_0_1) (arg_1_0, arg_1_1) | ||||
| namespace SomeNamespace | ||||
|  | ||||
| open System | ||||
| open WoofWare.Myriad.Plugins | ||||
|  | ||||
| /// Mock record type for an interface | ||||
| type internal TypeWithInterfaceMock = | ||||
|     { | ||||
|         /// Implementation of IDisposable.Dispose | ||||
|         Dispose : unit -> unit | ||||
|         Mem1 : string option -> string[] Async | ||||
|     } | ||||
|  | ||||
|     /// An implementation where every method throws. | ||||
|     static member Empty : TypeWithInterfaceMock = | ||||
|         { | ||||
|             Dispose = (fun _ -> ()) | ||||
|             Mem1 = (fun x -> raise (System.NotImplementedException "Unimplemented mock function")) | ||||
|         } | ||||
|  | ||||
|     interface TypeWithInterface with | ||||
|         member this.Mem1 (arg_0_0) = this.Mem1 (arg_0_0) | ||||
|  | ||||
|     interface System.IDisposable with | ||||
|         member this.Dispose () : unit = this.Dispose () | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| namespace SomeNamespace | ||||
|  | ||||
| open System | ||||
| open WoofWare.Myriad.Plugins | ||||
|  | ||||
| [<GenerateMock>] | ||||
| @@ -42,8 +41,3 @@ type Curried<'a> = | ||||
|     abstract Mem4 : (int * string) -> ('a * int) -> string | ||||
|     abstract Mem5 : x : int * string -> ('a * int) -> string | ||||
|     abstract Mem6 : int * string -> y : 'a * int -> string | ||||
|  | ||||
| [<GenerateMock>] | ||||
| type TypeWithInterface = | ||||
|     inherit IDisposable | ||||
|     abstract Mem1 : string option -> string[] Async | ||||
|   | ||||
| @@ -12,7 +12,7 @@ | ||||
|     </ItemGroup> | ||||
|  | ||||
|     <ItemGroup> | ||||
|         <PackageReference Include="ApiSurface" Version="4.0.33" /> | ||||
|         <PackageReference Include="ApiSurface" Version="4.0.30" /> | ||||
|         <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.9.0"/> | ||||
|         <PackageReference Include="NUnit" Version="4.1.0"/> | ||||
|         <PackageReference Include="NUnit3TestAdapter" Version="4.5.0"/> | ||||
|   | ||||
| @@ -33,12 +33,13 @@ | ||||
|   </ItemGroup> | ||||
|  | ||||
|   <ItemGroup> | ||||
|     <PackageReference Include="ApiSurface" Version="4.0.33"/> | ||||
|     <PackageReference Include="ApiSurface" Version="4.0.30"/> | ||||
|     <PackageReference Include="FsCheck" Version="2.16.6"/> | ||||
|     <PackageReference Include="FsUnit" Version="6.0.0"/> | ||||
|     <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.9.0"/> | ||||
|     <PackageReference Include="NUnit" Version="4.1.0"/> | ||||
|     <PackageReference Include="NUnit" Version="4.0.1"/> | ||||
|     <PackageReference Include="NUnit3TestAdapter" Version="4.5.0"/> | ||||
|     <PackageReference Include="coverlet.collector" Version="6.0.0"/> | ||||
|   </ItemGroup> | ||||
|  | ||||
|   <ItemGroup> | ||||
|   | ||||
| @@ -54,7 +54,6 @@ type internal InterfaceType = | ||||
|     { | ||||
|         Attributes : SynAttribute list | ||||
|         Name : LongIdent | ||||
|         Inherits : SynType list | ||||
|         Members : MemberInfo list | ||||
|         Properties : PropertyInfo list | ||||
|         Generics : SynTyparDecls option | ||||
| @@ -343,18 +342,7 @@ module internal AstHelper = | ||||
|                                 } | ||||
|                                 |> List.singleton | ||||
|                         } | ||||
|                     | arg -> | ||||
|                         { | ||||
|                             HasParen = false | ||||
|                             Args = | ||||
|                                 { | ||||
|                                     Attributes = [] | ||||
|                                     IsOptional = false | ||||
|                                     Id = None | ||||
|                                     Type = arg | ||||
|                                 } | ||||
|                                 |> List.singleton | ||||
|                         } | ||||
|                     | _ -> failwith $"Unrecognised args in interface method declaration: %+A{args}" | ||||
|                     |> fun ty -> | ||||
|                         { ty with | ||||
|                             HasParen = ty.HasParen || hasParen | ||||
| @@ -398,26 +386,22 @@ module internal AstHelper = | ||||
|  | ||||
|         let attrs = attrs |> List.collect (fun s -> s.Attributes) | ||||
|  | ||||
|         let members, inherits = | ||||
|         let members, properties = | ||||
|             match synTypeDefnRepr with | ||||
|             | SynTypeDefnRepr.ObjectModel (_kind, members, _) -> | ||||
|                 members | ||||
|                 |> List.map (fun defn -> | ||||
|                     match defn with | ||||
|                     | SynMemberDefn.AbstractSlot (slotSig, flags, _, _) -> Choice1Of2 (parseMember slotSig flags) | ||||
|                     | SynMemberDefn.Inherit (baseType, _asIdent, _) -> Choice2Of2 baseType | ||||
|                     | SynMemberDefn.AbstractSlot (slotSig, flags, _, _) -> parseMember slotSig flags | ||||
|                     | _ -> failwith $"Unrecognised member definition: %+A{defn}" | ||||
|                 ) | ||||
|             | _ -> failwith $"Unrecognised SynTypeDefnRepr for an interface type: %+A{synTypeDefnRepr}" | ||||
|             |> List.partitionChoice | ||||
|  | ||||
|         let members, properties = members |> List.partitionChoice | ||||
|  | ||||
|         { | ||||
|             Members = members | ||||
|             Properties = properties | ||||
|             Name = interfaceName | ||||
|             Inherits = inherits | ||||
|             Attributes = attrs | ||||
|             Generics = typars | ||||
|             Accessibility = accessibility | ||||
|   | ||||
| @@ -764,10 +764,6 @@ module internal HttpClientGenerator = | ||||
|         = | ||||
|         let interfaceType = AstHelper.parseInterface interfaceType | ||||
|  | ||||
|         if not (List.isEmpty interfaceType.Inherits) then | ||||
|             failwith | ||||
|                 "HttpClientGenerator does not support inheritance. Remove the `inherit` keyword if you want to use this generator." | ||||
|  | ||||
|         let constantHeaders = | ||||
|             interfaceType.Attributes | ||||
|             |> extractHeaderInformation | ||||
|   | ||||
| @@ -21,9 +21,6 @@ module internal InterfaceMockGenerator = | ||||
|         | None -> failwith "Expected record field to have a name, but it was somehow anonymous" | ||||
|         | Some id -> id | ||||
|  | ||||
|     [<RequireQualifiedAccess>] | ||||
|     type private KnownInheritance = | IDisposable | ||||
|  | ||||
|     let createType | ||||
|         (spec : GenerateMockOutputSpec) | ||||
|         (name : string) | ||||
| @@ -32,20 +29,6 @@ module internal InterfaceMockGenerator = | ||||
|         (fields : SynField list) | ||||
|         : SynModuleDecl | ||||
|         = | ||||
|         let inherits = | ||||
|             interfaceType.Inherits | ||||
|             |> Seq.map (fun ty -> | ||||
|                 match ty with | ||||
|                 | SynType.LongIdent (SynLongIdent.SynLongIdent (name, _, _)) -> | ||||
|                     match name |> List.map _.idText with | ||||
|                     | [] -> failwith "Unexpected empty identifier in inheritance declaration" | ||||
|                     | [ "IDisposable" ] | ||||
|                     | [ "System" ; "IDisposable" ] -> KnownInheritance.IDisposable | ||||
|                     | _ -> failwithf "Unrecognised inheritance identifier: %+A" name | ||||
|                 | x -> failwithf "Unrecognised type in inheritance: %+A" x | ||||
|             ) | ||||
|             |> Set.ofSeq | ||||
|  | ||||
|         let synValData = | ||||
|             { | ||||
|                 SynMemberFlags.IsInstance = false | ||||
| @@ -107,23 +90,6 @@ module internal InterfaceMockGenerator = | ||||
|                 ) | ||||
|             |> SynBindingReturnInfo.Create | ||||
|  | ||||
|         let constructorFields = | ||||
|             let extras = | ||||
|                 if inherits.Contains KnownInheritance.IDisposable then | ||||
|                     let unitFun = SynExpr.createLambda "_" SynExpr.CreateUnit | ||||
|  | ||||
|                     [ | ||||
|                         (SynLongIdent.CreateFromLongIdent [ Ident.Create "Dispose" ], true), Some unitFun | ||||
|                     ] | ||||
|                 else | ||||
|                     [] | ||||
|  | ||||
|             let nonExtras = | ||||
|                 fields | ||||
|                 |> List.map (fun field -> (SynLongIdent.CreateFromLongIdent [ getName field ], true), Some failwithFun) | ||||
|  | ||||
|             extras @ nonExtras | ||||
|  | ||||
|         let constructor = | ||||
|             SynMemberDefn.Member ( | ||||
|                 SynBinding.SynBinding ( | ||||
| @@ -136,7 +102,12 @@ module internal InterfaceMockGenerator = | ||||
|                     SynValData.SynValData (Some synValData, SynValInfo.Empty, None), | ||||
|                     constructorIdent, | ||||
|                     Some constructorReturnType, | ||||
|                     AstHelper.instantiateRecord constructorFields, | ||||
|                     AstHelper.instantiateRecord ( | ||||
|                         fields | ||||
|                         |> List.map (fun field -> | ||||
|                             ((SynLongIdent.CreateFromLongIdent [ getName field ], true), Some failwithFun) | ||||
|                         ) | ||||
|                     ), | ||||
|                     range0, | ||||
|                     DebugPointAtBinding.Yes range0, | ||||
|                     { SynExpr.synBindingTriviaZero true with | ||||
| @@ -146,21 +117,6 @@ module internal InterfaceMockGenerator = | ||||
|                 range0 | ||||
|             ) | ||||
|  | ||||
|         let fields = | ||||
|             let extras = | ||||
|                 if inherits.Contains KnownInheritance.IDisposable then | ||||
|                     [ | ||||
|                         SynField.Create ( | ||||
|                             SynType.CreateFun (SynType.CreateUnit, SynType.CreateUnit), | ||||
|                             Ident.Create "Dispose", | ||||
|                             xmldoc = PreXmlDoc.Create " Implementation of IDisposable.Dispose" | ||||
|                         ) | ||||
|                     ] | ||||
|                 else | ||||
|                     [] | ||||
|  | ||||
|             extras @ fields | ||||
|  | ||||
|         let interfaceMembers = | ||||
|             let members = | ||||
|                 interfaceType.Members | ||||
| @@ -308,100 +264,11 @@ module internal InterfaceMockGenerator = | ||||
|             | Some (SynAccess.Internal _), _ -> SynAccess.Internal range0 | ||||
|             | Some (SynAccess.Private _), _ -> SynAccess.Private range0 | ||||
|  | ||||
|         let extraInterfaces = | ||||
|             inherits | ||||
|             |> Seq.map (fun inheritance -> | ||||
|                 match inheritance with | ||||
|                 | KnownInheritance.IDisposable -> | ||||
|                     let valData = | ||||
|                         SynValData.SynValData ( | ||||
|                             Some | ||||
|                                 { | ||||
|                                     IsInstance = true | ||||
|                                     IsDispatchSlot = false | ||||
|                                     IsOverrideOrExplicitImpl = true | ||||
|                                     IsFinal = false | ||||
|                                     GetterOrSetterIsCompilerGenerated = false | ||||
|                                     MemberKind = SynMemberKind.Member | ||||
|                                 }, | ||||
|                             valInfo = | ||||
|                                 SynValInfo.SynValInfo ( | ||||
|                                     curriedArgInfos = | ||||
|                                         [ | ||||
|                                             yield | ||||
|                                                 [ | ||||
|                                                     SynArgInfo.SynArgInfo ( | ||||
|                                                         attributes = [], | ||||
|                                                         optional = false, | ||||
|                                                         ident = None | ||||
|                                                     ) | ||||
|                                                 ] | ||||
|                                         ], | ||||
|                                     returnInfo = | ||||
|                                         SynArgInfo.SynArgInfo (attributes = [], optional = false, ident = None) | ||||
|                                 ), | ||||
|                             thisIdOpt = None | ||||
|                         ) | ||||
|  | ||||
|                     let headArgs = [ SynPat.Const (SynConst.Unit, range0) ] | ||||
|  | ||||
|                     let headPat = | ||||
|                         SynPat.LongIdent ( | ||||
|                             SynLongIdent.CreateFromLongIdent [ Ident.Create "this" ; Ident.Create "Dispose" ], | ||||
|                             None, | ||||
|                             None, | ||||
|                             SynArgPats.Pats headArgs, | ||||
|                             None, | ||||
|                             range0 | ||||
|                         ) | ||||
|  | ||||
|                     let binding = | ||||
|                         SynBinding.SynBinding ( | ||||
|                             None, | ||||
|                             SynBindingKind.Normal, | ||||
|                             false, | ||||
|                             false, | ||||
|                             [], | ||||
|                             PreXmlDoc.Empty, | ||||
|                             valData, | ||||
|                             headPat, | ||||
|                             Some ( | ||||
|                                 SynBindingReturnInfo.SynBindingReturnInfo ( | ||||
|                                     SynType.Unit (), | ||||
|                                     range0, | ||||
|                                     [], | ||||
|                                     SynBindingReturnInfoTrivia.Zero | ||||
|                                 ) | ||||
|                             ), | ||||
|                             SynExpr.CreateApp ( | ||||
|                                 SynExpr.CreateLongIdent (SynLongIdent.Create [ "this" ; "Dispose" ]), | ||||
|                                 SynExpr.CreateUnit | ||||
|                             ), | ||||
|                             range0, | ||||
|                             DebugPointAtBinding.Yes range0, | ||||
|                             { | ||||
|                                 LeadingKeyword = SynLeadingKeyword.Member range0 | ||||
|                                 InlineKeyword = None | ||||
|                                 EqualsRange = Some range0 | ||||
|                             } | ||||
|                         ) | ||||
|  | ||||
|                     let mem = SynMemberDefn.Member (binding, range0) | ||||
|  | ||||
|                     SynMemberDefn.Interface ( | ||||
|                         SynType.CreateLongIdent (SynLongIdent.Create [ "System" ; "IDisposable" ]), | ||||
|                         Some range0, | ||||
|                         Some [ mem ], | ||||
|                         range0 | ||||
|                     ) | ||||
|             ) | ||||
|             |> Seq.toList | ||||
|  | ||||
|         let record = | ||||
|             { | ||||
|                 Name = Ident.Create name | ||||
|                 Fields = fields | ||||
|                 Members = Some ([ constructor ; interfaceMembers ] @ extraInterfaces) | ||||
|                 Members = Some [ constructor ; interfaceMembers ] | ||||
|                 XmlDoc = Some xmlDoc | ||||
|                 Generics = interfaceType.Generics | ||||
|                 Accessibility = Some access | ||||
| @@ -466,6 +333,7 @@ module internal InterfaceMockGenerator = | ||||
|  | ||||
|         let typeDecl = createType spec name interfaceType docString fields | ||||
|  | ||||
|  | ||||
|         SynModuleOrNamespace.CreateNamespace ( | ||||
|             namespaceId, | ||||
|             decls = (opens |> List.map SynModuleDecl.CreateOpen) @ [ typeDecl ] | ||||
|   | ||||
							
								
								
									
										27
									
								
								nix/deps.nix
									
									
									
									
									
								
							
							
						
						
									
										27
									
								
								nix/deps.nix
									
									
									
									
									
								
							| @@ -8,13 +8,18 @@ | ||||
|   }) | ||||
|   (fetchNuGet { | ||||
|     pname = "fantomas"; | ||||
|     version = "6.3.3"; | ||||
|     sha256 = "sha256-02uTwRPJkRZtjJ7fOJdHSvc17DszkXjT5X9jGuRZlA4="; | ||||
|     version = "6.3.0-alpha-007"; | ||||
|     sha256 = "sha256-uZw6h6k/DS4BcYtK9cv8TLS0H8MZDO3WBaPPTdtTgu0="; | ||||
|   }) | ||||
|   (fetchNuGet { | ||||
|     pname = "ApiSurface"; | ||||
|     version = "4.0.33"; | ||||
|     sha256 = "0mmsa5gxfd3bbgacip0c1hljwd958zcx1012qdh033sx6nfz3v36"; | ||||
|     version = "4.0.30"; | ||||
|     sha256 = "0khbp0dx87m4kx1a5b9vgh1pp88vr9w8vpqvxf6afrpcyynwrrcr"; | ||||
|   }) | ||||
|   (fetchNuGet { | ||||
|     pname = "coverlet.collector"; | ||||
|     version = "6.0.0"; | ||||
|     sha256 = "12j34vrkmph8lspbafnqmfnj2qvysz1jcrks2khw798s6dwv0j90"; | ||||
|   }) | ||||
|   (fetchNuGet { | ||||
|     pname = "Fantomas.Core"; | ||||
| @@ -291,6 +296,11 @@ | ||||
|     version = "3.6.133"; | ||||
|     sha256 = "1cdw8krvsnx0n34f7fm5hiiy7bs6h3asvncqcikc0g46l50w2j80"; | ||||
|   }) | ||||
|   (fetchNuGet { | ||||
|     pname = "NETStandard.Library"; | ||||
|     version = "2.0.0"; | ||||
|     sha256 = "1bc4ba8ahgk15m8k4nd7x406nhi0kwqzbgjk2dmw52ss553xz7iy"; | ||||
|   }) | ||||
|   (fetchNuGet { | ||||
|     pname = "NETStandard.Library"; | ||||
|     version = "2.0.3"; | ||||
| @@ -338,8 +348,13 @@ | ||||
|   }) | ||||
|   (fetchNuGet { | ||||
|     pname = "NUnit"; | ||||
|     version = "4.1.0"; | ||||
|     sha256 = "0fj6xwgqaxq3mrai86bklclfmjkzf038mrslwfqf4ignaz9f7g5j"; | ||||
|     version = "3.13.3"; | ||||
|     sha256 = "0wdzfkygqnr73s6lpxg5b1pwaqz9f414fxpvpdmf72bvh4jaqzv6"; | ||||
|   }) | ||||
|   (fetchNuGet { | ||||
|     pname = "NUnit"; | ||||
|     version = "4.0.1"; | ||||
|     sha256 = "0jgiq3dbwli5r70j0bw7021d69r7bhr58s8kphlpjmf7k47l5pcd"; | ||||
|   }) | ||||
|   (fetchNuGet { | ||||
|     pname = "NUnit3TestAdapter"; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user