Skip to content

Commit 5ac441a

Browse files
committed
Some micro-optimisations
Removing some unnecessary ++ and name lookups. Not really that significant, but doing them anyway.
1 parent 3bbe40c commit 5ac441a

File tree

4 files changed

+11
-4
lines changed

4 files changed

+11
-4
lines changed

src/Core/CaseBuilder.idr

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,10 @@ Weaken ArgType where
194194
weaken (Stuck fty) = Stuck (weaken fty)
195195
weaken Unknown = Unknown
196196

197+
weakenNs s (Known c ty) = Known c (weakenNs s ty)
198+
weakenNs s (Stuck fty) = Stuck (weakenNs s fty)
199+
weakenNs s Unknown = Unknown
200+
197201
Weaken (PatInfo p) where
198202
weaken (MkInfo p el fty) = MkInfo p (Later el) (weaken fty)
199203

src/Core/Normalise.idr

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -216,8 +216,11 @@ parameters (defs : Defs, topopts : EvalOpts)
216216
FC -> Name -> Int -> List (Closure free) ->
217217
Stack free -> Core (NF free)
218218
evalMeta env fc nm i args stk
219-
= evalRef env True fc Func (Resolved i) (map (EmptyFC,) args ++ stk)
220-
(NApp fc (NMeta nm i args) stk)
219+
= let args' = if isNil stk then map (EmptyFC,) args
220+
else map (EmptyFC,) args ++ stk
221+
in
222+
evalRef env True fc Func (Resolved i) args'
223+
(NApp fc (NMeta nm i args) stk)
221224

222225
-- The commented out logging here might still be useful one day, but
223226
-- evalRef is used a lot and even these tiny checks turn out to be

src/Core/Unify.idr

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -865,7 +865,7 @@ mutual
865865
unifyHole swap mode loc env fc mname mref margs margs' tmnf
866866
= do defs <- get Ctxt
867867
empty <- clearDefs defs
868-
let args = margs ++ margs'
868+
let args = if isNil margs' then margs else margs ++ margs'
869869
logC "unify.hole" 10
870870
(do args' <- traverse (evalArg empty) args
871871
qargs <- traverse (quote empty env) args'

src/TTImp/Elab/App.idr

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ getNameType rigc env fc x
6969
[(pname, i, def)] <- lookupCtxtName x (gamma defs)
7070
| [] => undefinedName fc x
7171
| ns => throw (AmbiguousName fc (map fst ns))
72-
checkVisibleNS fc !(getFullName pname) (visibility def)
72+
checkVisibleNS fc (fullname def) (visibility def)
7373
rigSafe (multiplicity def) rigc
7474
let nt = case definition def of
7575
PMDef _ _ _ _ _ => Func

0 commit comments

Comments
 (0)