提交 47072af3 编写于 作者: G Gustavo Leon 提交者: Phillip Carter

Consider '_' for members with access modifiers (#7631)

* Consider '_' for members with access modifiers

* Add tests

* Revert

* Add tests with modifiers
上级 3fd44c46
......@@ -1924,6 +1924,11 @@ atomicPatternLongIdent:
}
| GLOBAL DOT pathOp { let (LongIdentWithDots(lid,dotms)) = $3 in (None,LongIdentWithDots(ident(MangledGlobalName,rhs parseState 1) :: lid, rhs parseState 2 :: dotms)) }
| pathOp { (None,$1) }
| access UNDERSCORE DOT pathOp {
if not (parseState.LexBuffer.SupportsFeature LanguageFeature.SingleUnderscorePattern) then
raiseParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnexpectedSymbolDot())
let (LongIdentWithDots(lid,dotms)) = $4 in (Some($1),LongIdentWithDots(ident("_",rhs parseState 1)::lid, rhs parseState 2::dotms))
}
| access pathOp { (Some($1), $2) }
......
......@@ -26,12 +26,30 @@ type MyStructWithUnderscoreIdentifier =
member _.MethodWithUnderscoreSelf() = true
member __.MethodWithDoubleUnderscoreSelf() = true
member _E.MethodWithUnderscoreESelf() = true
member private _.PrivateMethodWithUnderscoreSelf() = true
member private __.PrivateMethodWithDoubleUnderscoreSelf() = true
member private _E.PrivateMethodWithUnderscoreESelf() = true
member inline _.InlineMethodWithUnderscoreSelf() = true
member inline __.InlineMethodWithDoubleUnderscoreSelf() = true
member inline _E.InlineMethodWithUnderscoreESelf() = true
member inline private _.InlinePrivateMethodWithUnderscoreSelf() = true
member inline private __.InlinePrivateMethodWithDoubleUnderscoreSelf() = true
member inline private _E.InlinePrivateMethodWithUnderscoreESelf() = true
type MyClassWithUnderscoreIdentifier () =
class
member _.MethodWithUnderscoreSelf() = true
member __.MethodWithDoubleUnderscoreSelf() = true
member _E.MethodWithUnderscoreESelf() = true
member private _.PrivateMethodWithUnderscoreSelf() = true
member private __.PrivateMethodWithDoubleUnderscoreSelf() = true
member private _E.PrivateMethodWithUnderscoreESelf() = true
member inline _.InlineMethodWithUnderscoreSelf() = true
member inline __.InlineMethodWithDoubleUnderscoreSelf() = true
member inline _E.InlineMethodWithUnderscoreESelf() = true
member inline private _.InlinePrivateMethodWithUnderscoreSelf() = true
member inline private __.InlinePrivateMethodWithDoubleUnderscoreSelf() = true
member inline private _E.InlinePrivateMethodWithUnderscoreESelf() = true
end
type MyStructTypeWithUnderscoreIdentifier =
......@@ -39,6 +57,15 @@ type MyStructTypeWithUnderscoreIdentifier =
member _.MethodWithUnderscoreSelf() = true
member __.MethodWithDoubleUnderscoreSelf() = true
member _E.MethodWithUnderscoreESelf() = true
member private _.PrivateMethodWithUnderscoreSelf() = true
member private __.PrivateMethodWithDoubleUnderscoreSelf() = true
member private _E.PrivateMethodWithUnderscoreESelf() = true
member inline _.InlineMethodWithUnderscoreSelf() = true
member inline __.InlineMethodWithDoubleUnderscoreSelf() = true
member inline _E.InlineMethodWithUnderscoreESelf() = true
member inline private _.InlinePrivateMethodWithUnderscoreSelf() = true
member inline private __.InlinePrivateMethodWithDoubleUnderscoreSelf() = true
member inline private _E.InlinePrivateMethodWithUnderscoreESelf() = true
end
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册