New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[CompilerPerf] Nullness checking prototype #5790

Open
wants to merge 80 commits into
base: master
from

Conversation

Projects
None yet
6 participants
@dsyme
Contributor

dsyme commented Oct 18, 2018

I'm making a PR for the prototype of this work

See tests\fsharp\core\nullness\test.fsx for testing and samples.

TODO:

  • implement import of .NET metadata
  • implement emit of .NET metadata
  • resolve all unresolved issues in RFC
  • implement match x with null -> ... | x -> ... implied use of NonNull pattern
  • make null and NonNull be considered disjunctive discriminators in pattern matching
  • resolve all // TODO NULLNESS
  • ambivalent/oblivious annotations are not being shown at all in visual output. Consider what to do about these. They should likely be dropped but give a supplementary sentence "Some types shown are ambivalent to null checking for compatibility reasons".
  • add testing
  • get it green
  • performance testing
  • should nullness be supported on ref tuples and anon tuples
  • check signature compatibility

DONE:

  • allow Foo<string?>, currently Foo< string? > with a space between ? and > is needed, need to token smash ?> token in tyargs

TIHan and others added some commits Sep 26, 2018

@cartermp

This comment has been minimized.

Collaborator

cartermp commented Oct 18, 2018

RFC link for folks interested: fsharp/fslang-design#317

dotnet-automerge-bot and others added some commits Oct 19, 2018

dsyme added some commits Nov 15, 2018

@dsyme dsyme changed the title from [WIP] Nullness checking early prototype to [CompilerPerf] Nullness checking prototype Nov 16, 2018

dsyme and others added some commits Nov 16, 2018

@dsyme

This comment has been minimized.

Contributor

dsyme commented Nov 18, 2018

Current test failures:

CI Part 1:

2018-11-17T01:44:45.8257497Z 1) Failed : Tests.LanguageService.ErrorList.UsingMSBuild.InvalidMethodOverload
2018-11-17T01:44:45.8257919Z   Error list should contain 'A unique overload for method 'WriteLine' could not be determined based on type information prior to this program point. A type annotation may be needed. Candidates: System.Console.WriteLine(buffer: char []) : unit, System.Console.WriteLine(format: string, [<System.ParamArray>] arg: obj []) : unit, System.Console.WriteLine(value: obj) : unit, System.Console.WriteLine(value: string) : unit' message
2018-11-17T01:44:45.8258056Z   Expected: True
2018-11-17T01:44:45.8258159Z   But was:  False
2018-11-17T01:44:45.8258228Z at Tests.LanguageService.ErrorList.UsingMSBuild.assertContains(FSharpList`1 errors, String text)
2018-11-17T01:44:45.8258360Z at <StartupCode$VisualFSharp-UnitTests>.$Tests.LanguageService.ErrorList.InvalidMethodOverload@268.Invoke(FSharpList`1 errors)
2018-11-17T01:44:45.8258440Z at Tests.LanguageService.ErrorList.UsingMSBuild.CheckErrorList(String content, FSharpFunc`2 f)
2018-11-17T01:44:45.8258577Z 
2018-11-17T01:44:45.8258641Z 2) Failed : Tests.LanguageService.ErrorList.UsingProjectSystem.InvalidMethodOverload
2018-11-17T01:44:45.8279715Z   Error list should contain 'A unique overload for method 'WriteLine' could not be determined based on type information prior to this program point. A type annotation may be needed. Candidates: System.Console.WriteLine(buffer: char []) : unit, System.Console.WriteLine(format: string, [<System.ParamArray>] arg: obj []) : unit, System.Console.WriteLine(value: obj) : unit, System.Console.WriteLine(value: string) : unit' message
2018-11-17T01:44:45.8286009Z   Expected: True
2018-11-17T01:44:45.8290783Z   But was:  False
2018-11-17T01:44:45.8293222Z at Tests.LanguageService.ErrorList.UsingMSBuild.assertContains(FSharpList`1 errors, String text)
2018-11-17T01:44:45.8293617Z at <StartupCode$VisualFSharp-UnitTests>.$Tests.LanguageService.ErrorList.InvalidMethodOverload@268.Invoke(FSharpList`1 errors)
2018-11-17T01:44:45.8293837Z at Tests.LanguageService.ErrorList.UsingMSBuild.CheckErrorList(String content, FSharpFunc`2 f)

CI Part 2:

2018-11-17T01:33:45.6334742Z 1) Failed : FSharp-Tests-Core+CoreTests.syntax

CI Part 3:

2018-11-17T01:30:19.7035094Z 1) Failed : FSharp.Core.UnitTests.FSharp_Core.Microsoft_FSharp_Core.LanguagePrimitivesModule.ParseStringViaConversionOps
2018-11-17T01:30:19.7035461Z float32
2018-11-17T01:30:19.7035818Z at FSharp.Core.UnitTests.LibraryTestFx.CheckThrowsExn2[a](String s, FSharpFunc`2 f) in D:\a\1\s\tests\FSharp.Core.UnitTests\LibraryTestFx.fs:line 34
2018-11-17T01:30:19.7036003Z at FSharp.Core.UnitTests.FSharp_Core.Microsoft_FSharp_Core.LanguagePrimitivesModule.ParseStringViaConversionOps() in D:\a\1\s\tests\FSharp.Core.UnitTests\FSharp.Core\PrimTypes.fs:line 463
2018-11-17T01:30:19.7036165Z 
2018-11-17T01:30:19.7036310Z 2) Failed : FSharp.Core.UnitTests.Portable.SurfaceArea.SurfaceAreaTest.VerifyArea
2018-11-17T01:30:19.7036495Z Assembly: FSharp.Core, Version=4.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
2018-11-17T01:30:19.7036866Z Expected and actual surface area don't match. To see the delta, run:
2018-11-17T01:30:19.7037237Z     windiff D:\a\1\s\tests\FSharp.Core.UnitTests\SurfaceArea.coreclr.fs \My Documents\CoreUnit_coreclr_Xml.xml
2018-11-17T01:30:19.7037401Z 
2018-11-17T01:30:19.7037708Z Unexpectedly missing (expected, not actual):
2018-11-17T01:30:19.7038046Z 
2018-11-17T01:30:19.7038192Z Unexpectedly present (actual, not expected):
2018-11-17T01:30:19.7038342Z     Microsoft.FSharp.Core.Operators: Boolean IsNullV[T](System.Nullable`1[T])
2018-11-17T01:30:19.7038695Z     Microsoft.FSharp.Core.Operators: Microsoft.FSharp.Core.FSharpChoice`2[Microsoft.FSharp.Core.Unit,T] NullMatchPattern[T](T)
2018-11-17T01:30:19.7039052Z     Microsoft.FSharp.Core.Operators: Microsoft.FSharp.Core.FSharpChoice`2[Microsoft.FSharp.Core.Unit,T] NullValueMatchPattern[T](System.Nullable`1[T])
2018-11-17T01:30:19.7039364Z     Microsoft.FSharp.Core.Operators: System.Nullable`1[T] NullV[T]()
2018-11-17T01:30:19.7039537Z     Microsoft.FSharp.Core.Operators: System.Nullable`1[T] WithNullV[T](T)
2018-11-17T01:30:19.7039975Z     Microsoft.FSharp.Core.Operators: T DefaultIfNone[T](T, Microsoft.FSharp.Core.FSharpOption`1[T])
2018-11-17T01:30:19.7040239Z     Microsoft.FSharp.Core.Operators: T DefaultIfNullV[T](T, System.Nullable`1[T])
2018-11-17T01:30:19.7040625Z     Microsoft.FSharp.Core.Operators: T DefaultIfNull[T](T, T)
2018-11-17T01:30:19.7040958Z     Microsoft.FSharp.Core.Operators: T NonNullPattern[T](T)
2018-11-17T01:30:19.7041299Z     Microsoft.FSharp.Core.Operators: T NonNullV[T](System.Nullable`1[T])
2018-11-17T01:30:19.7041665Z     Microsoft.FSharp.Core.Operators: T NonNullValuePattern[T](System.Nullable`1[T])
2018-11-17T01:30:19.7041840Z     Microsoft.FSharp.Core.Operators: T NonNull[T](T)
2018-11-17T01:30:19.7042172Z     Microsoft.FSharp.Core.Operators: T NullArgCheck[T](System.String, T)
2018-11-17T01:30:19.7042512Z     Microsoft.FSharp.Core.Operators: T WithNull[T](T)
2018-11-17T01:30:19.7042917Z at FSharp.Core.UnitTests.LibraryTestFx.SurfaceArea.verify(String expected, String platform, String fileName) in D:\a\1\s\tests\FSharp.Core.UnitTests\LibraryTestFx.fs:line 171

CI Part 4 and FCS build failure when building FSharp.COmpiler.Service

2018-11-17T01:21:11.4992731Z D:\a\1\s\src\absil\illib.fs(74,33): error FS0010: Unexpected symbol '?' in member definition [D:\a\1\s\fcs\FSharp.Compiler.Service\FSharp.Compiler.Service.fsproj]
2018-11-17T01:21:11.4992848Z D:\a\1\s\src\absil\illib.fs(1254,43): error FS0010: Unexpected symbol '?' in pattern. Expected ')' or other token. [D:\a\1\s\fcs\FSharp.Compiler.Service\FSharp.Compiler.Service.fsproj]
2018-11-17T01:21:11.4992964Z D:\a\1\s\src\absil\illib.fs(1254,34): error FS0583: Unmatched '(' [D:\a\1\s\fcs\FSharp.Compiler.Service\FSharp.Compiler.Service.fsproj]
2018-11-17T01:21:11.4993069Z D:\a\1\s\src\absil\illib.fs(1272,48): error FS0010: Unexpected symbol '?' in pattern. Expected ')' or other token. [D:\a\1\s\fcs\FSharp.Compiler.Service\FSharp.Compiler.Service.fsproj]

dsyme and others added some commits Nov 18, 2018

@dsyme

This comment has been minimized.

Contributor

dsyme commented Nov 26, 2018

Current failures:

2018-11-21T02:03:20.2586122Z 1) Failed : FSharp-Tests-Core+RegressionTests.OverloadResolution-bug-FSC_BASIC
2018-11-21T02:03:20.2586714Z Error running command 'D:\a\1\s\tests\fsharp\..\..\release\net40\bin\fsc.exe' with args '-r:System.Core.dll --nowarn:20 --define:COMPILED --optimize+ --debug -o:test--optplus--debug.exe -g test.fsx' in directory 'D:\a\1\s\tests\fsharp\regression\OverloadResolution-bug'.
2018-11-21T02:03:20.2586979Z ---- stdout below --- 
2018-11-21T02:03:20.2587174Z Microsoft (R) F# Compiler version 10.2.3 for F# 4.5
2018-11-21T02:03:20.2587382Z Copyright (c) Microsoft Corporation. All Rights Reserved.
2018-11-21T02:03:20.2587687Z 
2018-11-21T02:03:20.2587825Z ---- stderr below --- 
2018-11-21T02:03:20.2587969Z 
2018-11-21T02:03:20.2588106Z test.fsx(24,67): error FS0001: The type 'ITest1' has 'null' as an extra value but a constraint does not permit this
2018-11-21T02:03:20.2588221Z 
2018-11-21T02:03:20.2588556Z test.fsx(30,15): warning FS0067: This type test or downcast will always hold
2018-11-21T02:03:20.2588691Z  . ERRORLEVEL 1
2018-11-21T02:03:20.2588870Z at TestFramework.checkResult(CmdResult result) in D:\a\1\s\tests\fsharp\test-framework.fs:line 239
2018-11-21T02:03:20.2589026Z at TestFramework.exec@421-24.Invoke(CmdResult result) in D:\a\1\s\tests\fsharp\test-framework.fs:line 421
2018-11-21T02:03:20.2589219Z at TestFramework.fsc@429-1.Invoke(String flags, FSharpList`1 srcFiles) in D:\a\1\s\tests\fsharp\test-framework.fs:line 429
2018-11-21T02:03:20.2589609Z at SingleTest.singleTestBuildAndRunCore(TestConfig cfg, String copyFiles, Permutation p) in D:\a\1\s\tests\fsharp\single-test.fs:line 149
2018-11-21T02:03:20.2589811Z at FSharp-Tests-Core.RegressionTests.OverloadResolution-bug-FSC_BASIC() in D:\a\1\s\tests\fsharp\tests.fs:line 1767
2018-11-21T02:03:20.2589945Z 
2018-11-21T02:03:20.2590078Z 2) Failed : FSharp-Tests-Core+RegressionTests.OverloadResolution-bug-FSI_BASIC
2018-11-21T02:03:20.2590695Z Error running command 'D:\a\1\s\tests\fsharp\..\..\release\net40\bin\fsi.exe' with args '-r:System.Core.dll --nowarn:20 --define:INTERACTIVE --maxerrors:1 --abortonerror test.fsx' in directory 'D:\a\1\s\tests\fsharp\regression\OverloadResolution-bug'.
2018-11-21T02:03:20.2590874Z ---- stdout below --- 
2018-11-21T02:03:20.2591131Z 
2018-11-21T02:03:20.2591256Z ---- stderr below --- 
2018-11-21T02:03:20.2591400Z 
2018-11-21T02:03:20.2591546Z 
2018-11-21T02:03:20.2591682Z warning FS0075: The command-line option '--abortonerror' is for test purposes only
2018-11-21T02:03:20.2591806Z 
2018-11-21T02:03:20.2591949Z 
2018-11-21T02:03:20.2592055Z 
2018-11-21T02:03:20.2592191Z test.fsx(24,67): error FS0001: The type 'ITest1' has 'null' as an extra value but a constraint does not permit this
2018-11-21T02:03:20.2592495Z 
2018-11-21T02:03:20.2592646Z  . ERRORLEVEL 1
2018-11-21T02:03:20.2592798Z at TestFramework.checkResult(CmdResult result) in D:\a\1\s\tests\fsharp\test-framework.fs:line 239
2018-11-21T02:03:20.2592955Z at TestFramework.exec@421-24.Invoke(CmdResult result) in D:\a\1\s\tests\fsharp\test-framework.fs:line 421
2018-11-21T02:03:20.2593156Z at TestFramework.fsi@439-3.Invoke(String flags, FSharpList`1 sources) in D:\a\1\s\tests\fsharp\test-framework.fs:line 439
2018-11-21T02:03:20.2593347Z at SingleTest.singleTestBuildAndRunCore(TestConfig cfg, String copyFiles, Permutation p) in D:\a\1\s\tests\fsharp\single-test.fs:line 96
2018-11-21T02:03:20.2593505Z at FSharp-Tests-Core.RegressionTests.OverloadResolution-bug-FSI_BASIC() in D:\a\1\s\tests\fsharp\tests.fs:line 1770
2018-11-21T02:03:20.2593633Z 
2018-11-21T02:03:20.2594391Z 3) Failed : FSharp-Tests-Core+CoreTests.nullness
2018-11-21T02:03:20.2594597Z Error running command 'D:\a\1\s\tests\fsharp\..\..\release\net40\bin\fsc.exe' with args '-r:System.Core.dll --nowarn:20 --define:COMPILED --optimize+ --debug -o:test--optplus--debug.exe -g test.fsx' in directory 'D:\a\1\s\tests\fsharp\core\nullness'.
2018-11-21T02:03:20.2594904Z ---- stdout below --- 
2018-11-21T02:03:20.2595067Z Microsoft (R) F# Compiler version 10.2.3 for F# 4.5
2018-11-21T02:03:20.2595273Z Copyright (c) Microsoft Corporation. All Rights Reserved.
2018-11-21T02:03:20.2595411Z 
2018-11-21T02:03:20.2595599Z ---- stderr below --- 
2018-11-21T02:03:20.2595729Z 
2018-11-21T02:03:20.2595894Z test.fsx(38,14): error FS0001: The type 'string?' has 'null' as an extra value but a constraint does not permit this
2018-11-21T02:03:20.2596072Z 
2018-11-21T02:03:20.2596236Z test.fsx(63,26): error FS0001: The type 'string?' has 'null' as an extra value but a constraint does not permit this
2018-11-21T02:03:20.2596387Z 
2018-11-21T02:03:20.2596588Z test.fsx(87,18): error FS0001: The type 'obj?' has 'null' as an extra value but a constraint does not permit this
2018-11-21T02:03:20.2596736Z 
2018-11-21T02:03:20.2596941Z test.fsx(89,18): error FS0001: The type 'string?' has 'null' as an extra value but a constraint does not permit this
2018-11-21T02:03:20.2597082Z 
2018-11-21T02:03:20.2597394Z test.fsx(99,30): error FS0001: The type 'obj?' has 'null' as an extra value but a constraint does not permit this
2018-11-21T02:03:20.2597559Z 
2018-11-21T02:03:20.2597698Z test.fsx(101,33): error FS0001: The type 'string?' has 'null' as an extra value but a constraint does not permit this
2018-11-21T02:03:20.2597814Z 
2018-11-21T02:03:20.2597989Z test.fsx(300,17): error FS0001: The type 'int list' does not have 'null' as a proper value
2018-11-21T02:03:20.2598105Z 
2018-11-21T02:03:20.2598278Z test.fsx(310,17): error FS0001: The type 'string list' does not have 'null' as a proper value
2018-11-21T02:03:20.2599134Z  . ERRORLEVEL 1
2018-11-21T02:03:20.2599346Z at TestFramework.checkResult(CmdResult result) in D:\a\1\s\tests\fsharp\test-framework.fs:line 239
2018-11-21T02:03:20.2599557Z at TestFramework.exec@421-24.Invoke(CmdResult result) in D:\a\1\s\tests\fsharp\test-framework.fs:line 421
2018-11-21T02:03:20.2599747Z at TestFramework.fsc@429-1.Invoke(String flags, FSharpList`1 srcFiles) in D:\a\1\s\tests\fsharp\test-framework.fs:line 429
2018-11-21T02:03:20.2599900Z at SingleTest.singleTestBuildAndRunCore(TestConfig cfg, String copyFiles, Permutation p) in D:\a\1\s\tests\fsharp\single-test.fs:line 149
2018-11-21T02:03:20.2600081Z at FSharp-Tests-Core.CoreTests.nullness() in D:\a\1\s\tests\fsharp\tests.fs:line 168

dotnet-automerge-bot and others added some commits Nov 26, 2018

@dsyme

This comment has been minimized.

Contributor

dsyme commented Nov 27, 2018

Gradually fixing failures. Here are some more:

2018-11-27T14:37:19.0702306Z +++ Conformance\ObjectOrientedTypeDefinitions\ClassTypes\MemberDeclarations (E_Sealed_Member_Override02.fs) +++
2018-11-27T14:37:19.0702391Z --------------------------------------------------------
2018-11-27T14:37:19.0702711Z Error from hosted compiler
2018-11-27T14:37:19.0702785Z Exit code: 1
2018-11-27T14:37:19.0702854Z Error:     2
2018-11-27T14:37:19.0703538Z Microsoft (R) F# Compiler version 10.2.3 for F# 4.5
2018-11-27T14:37:19.0703614Z Copyright (c) Microsoft Corporation. All Rights Reserved.
2018-11-27T14:37:19.0703802Z (9,16-9,17): error FS3070: Cannot override inherited member 'CSLib.B1::M' because it is sealed
2018-11-27T14:37:19.0703893Z (15,16-15,17): error FS3070: Cannot override inherited member 'CSLib2.B1::M' because it is sealed
2018-11-27T14:37:19.0703986Z (19,16-19,17): error FS3070: Cannot override inherited member 'CSLib4.B1::M' because it is sealed
2018-11-27T14:37:19.0704071Z (21,6-21,8): error FS0365: No implementation was given for 'CSLib5.B0.M(c: char, a: int) : int'
2018-11-27T14:37:19.0704156Z (21,6-21,8): error FS0365: No implementation was given for 'CSLib5.B0.N(c: char, a: int) : int'
2018-11-27T14:37:19.0704275Z (21,6-21,8): error FS0054: This type is 'abstract' since some abstract members have not been given an implementation. If this is intentional then add the '[<AbstractClass>]' attribute to your type.
2018-11-27T14:37:19.0704391Z (23,16-23,17): error FS3070: Cannot override inherited member 'CSLib5.B1::M' because it is sealed
2018-11-27T14:37:19.0704485Z --------------------------------------------------------
2018-11-27T14:37:19.0704577Z Microsoft (R) F# Compiler version 10.2.3 for F# 4.5
2018-11-27T14:37:19.0704661Z Copyright (c) Microsoft Corporation. All Rights Reserved.
2018-11-27T14:37:19.0704743Z (9,16-9,17): error FS3070: Cannot override inherited member 'CSLib.B1::M' because it is sealed
2018-11-27T14:37:19.0704835Z (15,16-15,17): error FS3070: Cannot override inherited member 'CSLib2.B1::M' because it is sealed
2018-11-27T14:37:19.0704923Z (19,16-19,17): error FS3070: Cannot override inherited member 'CSLib4.B1::M' because it is sealed
2018-11-27T14:37:19.0705010Z [matched] (21,6-21,8): error FS0365: No implementation was given for 'CSLib5.B0.M(c: char, a: int) : int'
2018-11-27T14:37:19.0705112Z [matched] (21,6-21,8): error FS0365: No implementation was given for 'CSLib5.B0.N(c: char, a: int) : int'
2018-11-27T14:37:19.0705236Z [matched] (21,6-21,8): error FS0054: This type is 'abstract' since some abstract members have not been given an implementation. If this is intentional then add the '[<AbstractClass>]' attribute to your type.
2018-11-27T14:37:19.0705359Z (23,16-23,17): error FS3070: Cannot override inherited member 'CSLib5.B1::M' because it is sealed
2018-11-27T14:37:19.0705412Z 
2018-11-27T14:37:19.0705486Z *** The following necessary lines were never matched:
2018-11-27T14:37:19.0705568Z ***	\(9,16-9,17\):.+error FS3070:.+Cannot override inherited member 'B1::M' because it is sealed$
2018-11-27T14:37:19.0705654Z ***	\(15,16-15,17\):.+error FS3070:.+Cannot override inherited member 'B1::M' because it is sealed$
2018-11-27T14:37:19.0705819Z ***	\(19,16-19,17\):.+error FS3070:.+Cannot override inherited member 'B1::M' because it is sealed$
2018-11-27T14:37:19.0705909Z ***	\(23,16-23,17\):.+error FS3070:.+Cannot override inherited member 'B1::M' because it is sealed$
2018-11-27T14:37:19.0705979Z 
2018-11-27T14:37:19.0706014Z 
2018-11-27T14:37:19.0706079Z *** The following necessary lines were incorrectly matched:
2018-11-27T14:37:19.0706123Z 
2018-11-27T14:37:19.0706197Z Unexpected Compiler Output 
2018-11-27T14:37:19.0706260Z FAIL
2018-11-27T14:37:19.0706345Z +++ Conformance\ObjectOrientedTypeDefinitions\ClassTypes\MemberDeclarations (E_Sealed_Member_Override03.fs) +++
2018-11-27T14:37:19.0706428Z --------------------------------------------------------
2018-11-27T14:37:19.0706493Z Error from hosted compiler
2018-11-27T14:37:19.0706564Z Exit code: 1
2018-11-27T14:37:19.0706626Z Error:     2
2018-11-27T14:37:19.0706695Z Microsoft (R) F# Compiler version 10.2.3 for F# 4.5
2018-11-27T14:37:19.0706776Z Copyright (c) Microsoft Corporation. All Rights Reserved.
2018-11-27T14:37:19.0706855Z (9,16-9,17): error FS3070: Cannot override inherited member 'CSLib.B1::M' because it is sealed
2018-11-27T14:37:19.0706947Z (15,16-15,17): error FS3070: Cannot override inherited member 'CSLib2.B1::M' because it is sealed
2018-11-27T14:37:19.0707125Z --------------------------------------------------------
2018-11-27T14:37:19.0707205Z Microsoft (R) F# Compiler version 10.2.3 for F# 4.5
2018-11-27T14:37:19.0707351Z Copyright (c) Microsoft Corporation. All Rights Reserved.
2018-11-27T14:37:19.0707433Z (9,16-9,17): error FS3070: Cannot override inherited member 'CSLib.B1::M' because it is sealed
2018-11-27T14:37:19.0707528Z (15,16-15,17): error FS3070: Cannot override inherited member 'CSLib2.B1::M' because it is sealed
2018-11-27T14:37:19.0707578Z 
2018-11-27T14:37:19.0707643Z *** The following necessary lines were never matched:
2018-11-27T14:37:19.0707730Z ***	\(9,16-9,17\):.+error FS3070:.+Cannot override inherited member 'B1::M' because it is sealed$
2018-11-27T14:37:19.0707817Z ***	\(15,16-15,17\):.+error FS3070:.+Cannot override inherited member 'B1::M' because it is sealed$
2018-11-27T14:37:19.0707867Z 
2018-11-27T14:37:19.0707910Z 
2018-11-27T14:37:19.0707986Z *** The following necessary lines were incorrectly matched:
2018-11-27T14:37:19.0708030Z 
2018-11-27T14:37:19.0708097Z Unexpected Compiler Output 
2018-11-27T14:37:19.0708160Z FAIL
2018-11-27T14:37:19.0708205Z 
2018-11-27T14:37:19.0708238Z 
2018-11-27T14:37:19.0708279Z 
2018-11-27T14:37:19.0708313Z 
2018-11-27T14:37:19.0708346Z 
2018-11-27T14:37:19.0708378Z 
2018-11-27T14:37:19.0708416Z 
2018-11-27T14:37:19.0708449Z 
2018-11-27T14:37:19.0708481Z 
2018-11-27T14:37:19.0708514Z 
2018-11-27T14:37:19.0708546Z 
2018-11-27T14:37:19.0708585Z 
2018-11-27T14:37:19.0708618Z 
2018-11-27T14:37:19.0708650Z 
2018-11-27T14:37:19.0708683Z 
2018-11-27T14:37:19.0708715Z 
2018-11-27T14:37:19.0708754Z 
2018-11-27T14:37:19.0708787Z 
2018-11-27T14:37:19.0708820Z 
2018-11-27T14:37:19.0708852Z 
2018-11-27T14:37:19.0708885Z 
2018-11-27T14:37:19.0708925Z 
2018-11-27T14:37:19.0708958Z 
2018-11-27T14:37:19.0708991Z 
2018-11-27T14:37:19.0709023Z 
2018-11-27T14:37:19.0709062Z 
2018-11-27T14:37:19.0709095Z 
2018-11-27T14:37:19.0709161Z +++ Import (E_SealedMethod.fs) +++
2018-11-27T14:37:19.0709246Z PRECMD: [D:\a\1\s\packages\Microsoft.Net.Compilers.2.7.0\tools\csc.exe /debug /target:library E_SealedMethod.cs]
2018-11-27T14:37:19.0709350Z Microsoft (R) Visual C# Compiler version 2.7.0.62620 (e873e693)
2018-11-27T14:37:19.0709425Z Copyright (C) Microsoft Corporation. All rights reserved.
2018-11-27T14:37:19.0709476Z 
2018-11-27T14:37:19.0709542Z --------------------------------------------------------
2018-11-27T14:37:19.0709609Z Error from hosted compiler
2018-11-27T14:37:19.0709680Z Exit code: 1
2018-11-27T14:37:19.0709743Z Error:     2
2018-11-27T14:37:19.0709810Z Microsoft (R) F# Compiler version 10.2.3 for F# 4.5
2018-11-27T14:37:19.0709893Z Copyright (c) Microsoft Corporation. All Rights Reserved.
2018-11-27T14:37:19.0709973Z (8,19): error FS3070: Cannot override inherited member 'ClassLibrary1.Class2::F' because it is sealed
2018-11-27T14:37:19.0710061Z --------------------------------------------------------
2018-11-27T14:37:19.0710145Z Microsoft (R) F# Compiler version 10.2.3 for F# 4.5
2018-11-27T14:37:19.0710218Z Copyright (c) Microsoft Corporation. All Rights Reserved.
2018-11-27T14:37:19.0710318Z (8,19): error FS3070: Cannot override inherited member 'ClassLibrary1.Class2::F' because it is sealed
2018-11-27T14:37:19.0710369Z 
2018-11-27T14:37:19.0710439Z *** The following necessary lines were never matched:
2018-11-27T14:37:19.0710520Z ***	\(8,19\):.+error FS3070:.+Cannot override inherited member 'Class2::F' because it is sealed$
2018-11-27T14:37:19.0710570Z 
2018-11-27T14:37:19.0710604Z 
2018-11-27T14:37:19.0710677Z *** The following necessary lines were incorrectly matched:
2018-11-27T14:37:19.0710722Z 
2018-11-27T14:37:19.0710779Z Unexpected Compiler Output 
2018-11-27T14:37:19.0710850Z FAIL
2018-11-27T14:37:19.0710887Z 

@dsyme dsyme force-pushed the nullness branch from a2fed19 to fb0b0f8 Nov 27, 2018

dsyme and others added some commits Nov 28, 2018

Merge master to nullness (#5968)
* Reduce memory allocations (#5965)

* reduce memory allocations

* remove memory allocations

* Smal fixes for #5940 (#5943)

* small fixes

* fix test
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment