mirror of
https://github.com/unisonweb/unison.git
synced 2024-09-21 07:17:25 +03:00
skip joinDot test if second name is absolute
This commit is contained in:
parent
4628280032
commit
7aee1e9d61
@ -17,28 +17,28 @@ test =
|
||||
scope "name" $
|
||||
tests
|
||||
[ scope "unsafeFromString" $
|
||||
tests [
|
||||
scope "." do
|
||||
expectEqual' (isAbsolute ".") False
|
||||
expectEqual' (segments ".") ("." :| [])
|
||||
ok,
|
||||
scope ".." do
|
||||
expectEqual' (isAbsolute "..") True
|
||||
expectEqual' (segments "..") ("." :| [])
|
||||
ok,
|
||||
scope "foo.bar" do
|
||||
expectEqual' (isAbsolute "foo.bar") False
|
||||
expectEqual' (segments "foo.bar") ("foo" :| ["bar"])
|
||||
ok,
|
||||
scope ".foo.bar" do
|
||||
expectEqual' (isAbsolute ".foo.bar") True
|
||||
expectEqual' (segments ".foo.bar") ("foo" :| ["bar"])
|
||||
ok,
|
||||
scope "foo.." do
|
||||
expectEqual' (isAbsolute "foo..") False
|
||||
expectEqual' (segments "foo..") ("foo" :| ["."])
|
||||
ok
|
||||
],
|
||||
tests
|
||||
[ scope "." do
|
||||
expectEqual' (isAbsolute ".") False
|
||||
expectEqual' (segments ".") ("." :| [])
|
||||
ok,
|
||||
scope ".." do
|
||||
expectEqual' (isAbsolute "..") True
|
||||
expectEqual' (segments "..") ("." :| [])
|
||||
ok,
|
||||
scope "foo.bar" do
|
||||
expectEqual' (isAbsolute "foo.bar") False
|
||||
expectEqual' (segments "foo.bar") ("foo" :| ["bar"])
|
||||
ok,
|
||||
scope ".foo.bar" do
|
||||
expectEqual' (isAbsolute ".foo.bar") True
|
||||
expectEqual' (segments ".foo.bar") ("foo" :| ["bar"])
|
||||
ok,
|
||||
scope "foo.." do
|
||||
expectEqual' (isAbsolute "foo..") False
|
||||
expectEqual' (segments "foo..") ("foo" :| ["."])
|
||||
ok
|
||||
],
|
||||
scope "suffixes" $
|
||||
tests
|
||||
[ scope "one namespace" $ expectEqual (suffixes "bar") ["bar"],
|
||||
@ -149,7 +149,9 @@ test =
|
||||
scope "joinDot" do
|
||||
n1 <- rname
|
||||
n2 <- rname
|
||||
old (Name.joinDot n1 n2) `expectEqual` Name.oldJoinDot (old n1) (old n2)
|
||||
if Name.isAbsolute n2
|
||||
then skip
|
||||
else old (Name.joinDot n1 n2) `expectEqual` Name.oldJoinDot (old n1) (old n2)
|
||||
|
||||
scope "makeAbsolute" do
|
||||
n1 <- rname
|
||||
|
@ -138,7 +138,11 @@ joinDot :: HasCallStack => Name -> Name -> Name
|
||||
joinDot n1@(Name p0 ss0) n2@(Name p1 ss1) =
|
||||
case p1 of
|
||||
Relative -> Name p0 (ss1 <> ss0)
|
||||
Absolute -> error ("joinDot " ++ show n1 ++ " " ++ show n2)
|
||||
Absolute ->
|
||||
error $
|
||||
reportBug
|
||||
"E261635"
|
||||
("joinDot: second name cannot be absolute. (name 1 = " ++ show n1 ++ ", name 2 = " ++ show n2 ++ ")")
|
||||
|
||||
makeAbsolute :: Name -> Name
|
||||
makeAbsolute (Name _ ss) =
|
||||
@ -375,10 +379,9 @@ unsafeFromText = \case
|
||||
go name =
|
||||
if ".." `Text.isSuffixOf` name
|
||||
then "." :| split (Text.dropEnd 2 name)
|
||||
else
|
||||
case split name of
|
||||
[] -> error "empty name"
|
||||
s : ss -> s :| ss
|
||||
else case split name of
|
||||
[] -> error "empty name"
|
||||
s : ss -> s :| ss
|
||||
|
||||
split :: Text -> [NameSegment]
|
||||
split =
|
||||
|
Loading…
Reference in New Issue
Block a user