Skip to content

Commit 8851a6b

Browse files
committed
cleanup
1 parent dcb9728 commit 8851a6b

File tree

2 files changed

+4
-136
lines changed

2 files changed

+4
-136
lines changed

analysis/src/CompletionBackEnd.ml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -670,7 +670,7 @@ let getPipeCompletions ~env ~full ~identifierLoc ~debug ~envCompletionIsMadeFrom
670670
typ =
671671
let env, typ =
672672
typ
673-
|> TypeUtils.resolveTypeForPipeCompletion2 ~env ~package:full.package ~full
673+
|> TypeUtils.resolveTypeForPipeCompletion ~env ~package:full.package ~full
674674
~lhsLoc:identifierLoc
675675
in
676676
let mainTypeId = TypeUtils.findRootTypeId ~full ~env typ in
@@ -730,7 +730,7 @@ let getPipeCompletions ~env ~full ~identifierLoc ~debug ~envCompletionIsMadeFrom
730730
(* Extra completions can be drawn from the @editor.completeFrom attribute. Here we
731731
find and add those completions as well. *)
732732
let extraCompletions =
733-
TypeUtils.getExtraModuleTosCompleteFromForType ~env ~full typ
733+
TypeUtils.getExtraModulesToCompleteFromForType ~env ~full typ
734734
|> List.map (fun completionPath ->
735735
completionsForPipeFromCompletionPath ~envCompletionIsMadeFrom
736736
~opens ~pos ~scope ~debug ~prefix ~env ~rawOpens ~full

analysis/src/TypeUtils.ml

Lines changed: 2 additions & 134 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,6 @@ open SharedTypes
22

33
let modulePathFromEnv env = env.QueryEnv.file.moduleName :: List.rev env.pathRev
44

5-
let completionPathFromEnvAndPath env ~path =
6-
modulePathFromEnv env @ List.rev (Utils.expandPath path)
7-
|> List.rev |> List.tl |> List.rev
8-
9-
let getFullTypeId ~env (path : Path.t) =
10-
modulePathFromEnv env @ List.rev (Utils.expandPath path) |> String.concat "."
11-
125
let fullTypeIdFromDecl ~env ~name ~modulePath =
136
env.QueryEnv.file.moduleName :: ModulePath.toPath modulePath name
147
|> String.concat "."
@@ -506,45 +499,6 @@ let findReturnTypeOfFunctionAtLoc loc ~(env : QueryEnv.t) ~full ~debug =
506499
| _ -> None)
507500
| _ -> None
508501

509-
type builtinType =
510-
| Array
511-
| Option
512-
| String
513-
| Int
514-
| Float
515-
| Promise
516-
| List
517-
| Result
518-
| Lazy
519-
| Char
520-
| RegExp
521-
522-
type pipeCompletionType =
523-
| Builtin of builtinType * Types.type_expr
524-
| TypExpr of Types.type_expr
525-
526-
let getBuiltinFromTypePath path =
527-
match path with
528-
| Path.Pident _ -> (
529-
match Path.name path with
530-
| "array" -> Some Array
531-
| "option" -> Some Option
532-
| "string" -> Some String
533-
| "int" -> Some Int
534-
| "float" -> Some Float
535-
| "promise" -> Some Promise
536-
| "list" -> Some List
537-
| "result" -> Some Result
538-
| "lazy_t" -> Some Lazy
539-
| "char" -> Some Char
540-
| _ -> None)
541-
| Pdot (Pdot (Pident m, "Re", _), "t", _) when Ident.name m = "Js" ->
542-
Some RegExp
543-
| Pdot (Pident id, "result", _)
544-
when Ident.name id = "Pervasives" || Ident.name id = "PervasivesU" ->
545-
Some Result
546-
| _ -> None
547-
548502
let rec digToRelevantTemplateNameType ~env ~package ?(suffix = "")
549503
(t : Types.type_expr) =
550504
match t.desc with
@@ -563,47 +517,6 @@ let rec digToRelevantTemplateNameType ~env ~package ?(suffix = "")
563517

564518
let rec resolveTypeForPipeCompletion ~env ~package ~lhsLoc ~full
565519
(t : Types.type_expr) =
566-
let builtin =
567-
match t |> pathFromTypeExpr with
568-
| Some path -> path |> getBuiltinFromTypePath
569-
| None -> None
570-
in
571-
match builtin with
572-
| Some builtin -> (env, Builtin (builtin, t))
573-
| None -> (
574-
(* If the type we're completing on is a type parameter, we won't be able to
575-
do completion unless we know what that type parameter is compiled as.
576-
This attempts to look up the compiled type for that type parameter by
577-
looking for compiled information at the loc of that expression. *)
578-
let typFromLoc =
579-
match t with
580-
| {Types.desc = Tvar _} -> (
581-
match findReturnTypeOfFunctionAtLoc lhsLoc ~env ~full ~debug:false with
582-
| None -> None
583-
| Some typFromLoc -> Some typFromLoc)
584-
| _ -> None
585-
in
586-
match typFromLoc with
587-
| Some typFromLoc ->
588-
typFromLoc |> resolveTypeForPipeCompletion ~lhsLoc ~env ~package ~full
589-
| None ->
590-
let rec digToRelevantType ~env ~package (t : Types.type_expr) =
591-
match t.desc with
592-
| Tlink t1 | Tsubst t1 | Tpoly (t1, []) ->
593-
digToRelevantType ~env ~package t1
594-
(* Don't descend into types named "t". Type t is a convention in the ReScript ecosystem. *)
595-
| Tconstr (path, _, _) when path |> Path.last = "t" -> (env, TypExpr t)
596-
| Tconstr (path, _, _) -> (
597-
match References.digConstructor ~env ~package path with
598-
| Some (env, {item = {decl = {type_manifest = Some typ}}}) ->
599-
digToRelevantType ~env ~package typ
600-
| _ -> (env, TypExpr t))
601-
| _ -> (env, TypExpr t)
602-
in
603-
digToRelevantType ~env ~package t)
604-
605-
let rec resolveTypeForPipeCompletion2 ~env ~package ~lhsLoc ~full
606-
(t : Types.type_expr) =
607520
(* If the type we're completing on is a type parameter, we won't be able to
608521
do completion unless we know what that type parameter is compiled as.
609522
This attempts to look up the compiled type for that type parameter by
@@ -616,7 +529,7 @@ let rec resolveTypeForPipeCompletion2 ~env ~package ~lhsLoc ~full
616529
in
617530
match typFromLoc with
618531
| Some typFromLoc ->
619-
typFromLoc |> resolveTypeForPipeCompletion2 ~lhsLoc ~env ~package ~full
532+
typFromLoc |> resolveTypeForPipeCompletion ~lhsLoc ~env ~package ~full
620533
| None ->
621534
let rec digToRelevantType ~env ~package (t : Types.type_expr) =
622535
match t.desc with
@@ -1190,21 +1103,9 @@ let pathToElementProps package =
11901103
| None -> ["ReactDOM"; "domProps"]
11911104
| Some g -> (g |> String.split_on_char '.') @ ["Elements"; "props"]
11921105

1193-
(** Extracts module to draw extra completions from for the type, if it has been annotated with @editor.completeFrom. *)
1194-
let rec getExtraModuleToCompleteFromForType ~env ~full (t : Types.type_expr) =
1195-
match t |> Shared.digConstructor with
1196-
| Some path -> (
1197-
match References.digConstructor ~env ~package:full.package path with
1198-
| None -> None
1199-
| Some (env, {item = {decl = {type_manifest = Some t}}}) ->
1200-
getExtraModuleToCompleteFromForType ~env ~full t
1201-
| Some (_, {item = {attributes}}) ->
1202-
ProcessAttributes.findEditorCompleteFromAttribute attributes)
1203-
| None -> None
1204-
12051106
module StringSet = Set.Make (String)
12061107

1207-
let rec getExtraModuleTosCompleteFromForType ~env ~full (t : Types.type_expr) =
1108+
let getExtraModulesToCompleteFromForType ~env ~full (t : Types.type_expr) =
12081109
let foundModulePaths = ref StringSet.empty in
12091110
let addToModulePaths attributes =
12101111
ProcessAttributes.findEditorCompleteFromAttribute2 attributes
@@ -1227,39 +1128,6 @@ let rec getExtraModuleTosCompleteFromForType ~env ~full (t : Types.type_expr) =
12271128
!foundModulePaths |> StringSet.elements
12281129
|> List.map (fun l -> String.split_on_char '.' l)
12291130

1230-
(** Checks whether the provided type represents a function that takes the provided path
1231-
as the first argument (meaning it's pipeable). *)
1232-
let rec fnTakesTypeAsFirstArg ~env ~full ~targetTypeId t =
1233-
(*if Debug.verbose () then
1234-
Printf.printf "[fnTakesTypeAsFirstArg] start env: %s\n"
1235-
env.QueryEnv.file.moduleName;*)
1236-
match t.Types.desc with
1237-
| Tlink t1
1238-
| Tsubst t1
1239-
| Tpoly (t1, [])
1240-
| Tconstr (Pident {name = "function$"}, [t1; _], _) ->
1241-
fnTakesTypeAsFirstArg ~env ~full ~targetTypeId t1
1242-
| Tarrow _ -> (
1243-
match extractFunctionTypeWithEnv ~env ~package:full.package t with
1244-
| (Nolabel, t) :: _, _, env -> (
1245-
(*if Debug.verbose () then
1246-
Printf.printf "[fnTakesTypeAsFirstArg] extracted env: %s\n"
1247-
env.QueryEnv.file.moduleName;*)
1248-
let mainTypeId =
1249-
match pathFromTypeExpr t with
1250-
| None -> None
1251-
| Some tPath -> Some (getFullTypeId ~env tPath)
1252-
in
1253-
(*if Debug.verbose () then
1254-
Printf.printf "[filterPipeableFunctions]--> targetTypeId:%s = %s\n"
1255-
targetTypeId
1256-
(Option.value ~default:"None" mainTypeId);*)
1257-
match mainTypeId with
1258-
| None -> false
1259-
| Some mainTypeId -> mainTypeId = targetTypeId)
1260-
| _ -> false)
1261-
| _ -> false
1262-
12631131
let getFirstFnUnlabelledArgType ~env ~full t =
12641132
let labels, _, env =
12651133
extractFunctionTypeWithEnv ~env ~package:full.package t

0 commit comments

Comments
 (0)