anchor.diff:  
   let check s b1 b2 = test s (b1 = b2)
   
  +type Assert =
  +    static member AreEqual msg (a, b) = check msg a b; (a = b)
  +
   type BasicNameOfTests() =
   
       static let staticConstant = 23
  
positive.code: 
      member this.``measure 1`` () =
          let b = nameof(Milliquacks)
          Assert.AreEqual("Milliquacks",b)
  
      member this.``record case 1`` () =
          let sample = Unchecked.defaultof<CustomRecordType>
          let b = nameof(sample.X)
          let result = Assert.AreEqual("X",b)
          let b = nameof(sample.Y)
          result || Assert.AreEqual("Y",b)
  
      member this.``union case 1`` () =
          let b = nameof(OptionA)
          Assert.AreEqual("OptionA",b)
  
      member this.``union case 2`` () =
          let b = nameof(OptionB)
          Assert.AreEqual("OptionB",b)
  
  type AttributeNameOfTests() =
  
  
negative.code:             nameof myLocalFunction + " " + z.ToString()
  
          let a = myLocalFunction 23
          let result = Assert.AreEqual ("line " + string __LINE__) ("myLocalFunction 46", a)
  
          let b = myLocalFunction 25
          result || Assert.AreEqual ("line " + string __LINE__) ("myLocalFunction 50", b)
  
      static member ``can get name from inside static member`` () =
          let b = nameof(BasicNameOfTests.``can get name from inside static member``)
          Assert.AreEqual ("line " + string __LINE__) ("can get name from inside static member", b)
  
      member this.``can get name from inside instance member`` () =
          let b = nameof(this.``can get name from inside instance member``)
          Assert.AreEqual ("line " + string __LINE__) ("can get name from inside instance member", b)
  
      static member ``can get name of static member`` () =
          let b = nameof(BasicNameOfTests.``can get name of static member``)
          Assert.AreEqual ("line " + string __LINE__) ("can get name of static member", b)
  
      member this.``can get name of instance member`` () =
          let b = nameof(this.MemberMethod)
          Assert.AreEqual ("line " + string __LINE__) ("MemberMethod", b)
  
      member this.``can get name of instance member via unchecked`` () =
          let b = nameof(Unchecked.defaultof<BasicNameOfTests>.MemberMethod)
          Assert.AreEqual ("line " + string __LINE__) ("MemberMethod", b)
  
      member this.``can get name of method type parameter``<'TTT> () =
          let b = nameof<'TTT>
          Assert.AreEqual ("line " + string __LINE__) ("TTT", b)
  
      static member ``namespace name`` () =
          let b = nameof(FSharp.Core)
          Assert.AreEqual ("line " + string __LINE__) ("Core",b)
  
      static member ``module name`` () =
          let b = nameof(FSharp.Core.Operators)
          Assert.AreEqual ("line " + string __LINE__) ("Operators",b)
  
      static member ``exception name`` () =
          let b = nameof(ABC)
          Assert.AreEqual ("line " + string __LINE__) ("ABC",b)
  
      static member ``nested type name 1`` () =
          let b = nameof(System.Collections.Generic.List.Enumerator<_>)
          Assert.AreEqual ("line " + string __LINE__) ("Enumerator",b)
  
      static member ``type name 2`` () =
          let b = nameof(System.Action<_>)
          Assert.AreEqual ("line " + string __LINE__) ("Action",b)
  
      static member ``member function which is defined below`` () =
          let x = BasicNameOfTests()
          let b = nameof(x.MemberMethodDefinedBelow)
          Assert.AreEqual ("line " + string __LINE__) ("MemberMethodDefinedBelow",b)
  
      member this.MemberMethodDefinedBelow(x,y) = x * y
  
      static member ``static member function name`` () =
          let b = nameof(BasicNameOfTests.StaticMethod)
          Assert.AreEqual ("line " + string __LINE__) ("StaticMethod",b)
  
      member this.``class member lookup`` () =
          let b = nameof(localConstant)
          Assert.AreEqual ("line " + string __LINE__) ("localConstant",b)
  
      static member ``static property name`` () =
          let b = nameof(BasicNameOfTests.StaticProperty)
          Assert.AreEqual ("line " + string __LINE__) ("StaticProperty",b)
  
      member this.get_XYZ() = 1
  
      static member ``member method starting with get_`` () =
          let x = BasicNameOfTests()
          let b = nameof(x.get_XYZ)
          Assert.AreEqual ("line " + string __LINE__) ("get_XYZ",b)
  
      static member get_SXYZ() = 1
  
      static member ``static method starting with get_`` () =
          let b = nameof(BasicNameOfTests.get_SXYZ)
          Assert.AreEqual ("line " + string __LINE__) ("get_SXYZ",b)
  
      static member ``nameof local property with encapsulated name`` () =
          let ``local property with encapsulated name and %.f`` = 0
          let b = nameof(``local property with encapsulated name and %.f``)
          Assert.AreEqual ("line " + string __LINE__) ("local property with encapsulated name and %.f",b)
  
  type MethodGroupNameOfTests() =
      member this.MethodGroup() = ()    
  