@@ -872,8 +872,17 @@ type TypeCheckInfo
872872
873873// Other completions
874874| cc->
875- let isInRangeOperator = ( match ccwith Some( CompletionContext.RangeOperator) -> true | _ -> false )
876- GetDeclaredItems( parseResultsOpt, lineStr, origLongIdentOpt, colAtEndOfNamesAndResidue, residueOpt, lastDotPos, line, loc, filterCtors, resolveOverloads, hasTextChangedSinceLastTypecheck, isInRangeOperator, getAllSymbols)
875+ match residueOpt|> Option.bind Seq.tryHeadwith
876+ | Some''' ->
877+ // The last token in
878+ // let x = 'E
879+ // is Ident with text "'E", however it's either unfinished char literal or generic parameter.
880+ // We should not provide any completion in the former case, and we don't provide it for the latter one for now
881+ // because providing generic parameters list is context aware, which we don't have here (yet).
882+ None
883+ | _ ->
884+ let isInRangeOperator = ( match ccwith Some( CompletionContext.RangeOperator) -> true | _ -> false )
885+ GetDeclaredItems( parseResultsOpt, lineStr, origLongIdentOpt, colAtEndOfNamesAndResidue, residueOpt, lastDotPos, line, loc, filterCtors, resolveOverloads, hasTextChangedSinceLastTypecheck, isInRangeOperator, getAllSymbols)
877886
878887 res|> Option.map( fun ( items , denv , m ) -> items, denv, completionContext, m)
879888