From 11fc882a555a357d6f54f541e731ca485c750360 Mon Sep 17 00:00:00 2001 From: withered-magic <153045167+withered-magic@users.noreply.github.com> Date: Sun, 28 Apr 2024 14:33:13 -0700 Subject: [PATCH] misc fixes (#237) --- crates/starpls_hir/src/def/resolver.rs | 2 +- crates/starpls_hir/src/typeck.rs | 2 ++ crates/starpls_ide/src/completions.rs | 5 ++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/crates/starpls_hir/src/def/resolver.rs b/crates/starpls_hir/src/def/resolver.rs index 97d6c59..5596038 100644 --- a/crates/starpls_hir/src/def/resolver.rs +++ b/crates/starpls_hir/src/def/resolver.rs @@ -204,7 +204,7 @@ impl<'a> Resolver<'a> { let mut names = FxHashMap::default(); for scope in self.scopes() { for (name, def) in scope.defs.iter() { - if filter_unexported && name.as_str().starts_with('_') { + if (filter_unexported && name.as_str().starts_with('_')) || name.is_missing() { continue; } if let Entry::Vacant(entry) = names.entry(name.clone()) { diff --git a/crates/starpls_hir/src/typeck.rs b/crates/starpls_hir/src/typeck.rs index 4e54979..9c8edd8 100644 --- a/crates/starpls_hir/src/typeck.rs +++ b/crates/starpls_hir/src/typeck.rs @@ -1503,6 +1503,7 @@ impl<'a> TypeRefResolver<'a> { "struct" | "structure" => self.resolve_single_arg_type_constructor(args, |ty| { TyKind::Struct(Some(Struct::FieldSignature { ty })) }), + "Target" => TyKind::Target.intern(), name => match builtin_types.types(self.db).get(name).cloned() { Some(ty) => ty, None => { @@ -1618,6 +1619,7 @@ pub(crate) fn assign_tys(db: &dyn Db, source: &Ty, target: &Ty) -> bool { // this once we support type guards. (_, TyKind::Union(tys)) => tys.iter().any(|target| assign_tys(db, source, target)), (TyKind::Union(tys), _) => tys.iter().any(|source| assign_tys(db, source, target)), + (TyKind::BuiltinType(source, _), TyKind::BuiltinType(target, _)) => source == target, (TyKind::String(_), TyKind::String(_)) | (TyKind::Attribute(_), TyKind::Attribute(_)) | (TyKind::Struct(_), TyKind::Struct(_)) diff --git a/crates/starpls_ide/src/completions.rs b/crates/starpls_ide/src/completions.rs index 3db28bd..cd2060b 100644 --- a/crates/starpls_ide/src/completions.rs +++ b/crates/starpls_ide/src/completions.rs @@ -130,7 +130,10 @@ pub(crate) fn completions( && !param.is_kwargs_dict(db) && !param.is_positional_only(db) }) - .filter_map(|param| param.name(db)) + .filter_map(|param| match param.name(db) { + Some(name) if !name.is_missing() => Some(name), + _ => None, + }) { items.push(CompletionItem { label: format!("{}=", name.as_str()),