mirror of
https://github.com/KAMKEEL/CustomNPC-Plus.git
synced 2026-11-14 06:14:52 +00:00
Returned unresolved TypeInfo for types not found
This commit is contained in:
1 parent
bc6e9786da
commit
931858c554
4 files changed
+24
-11
No files matched your search
@@ -1396,7 +1396,7 @@ public class ScriptDocument {
|
||||
*/
|
||||
private TypeInfo resolveTypeAndTrackUsage(String typeName) {
|
||||
if (typeName == null || typeName.isEmpty())
|
||||
return null;
|
||||
return TypeInfo.unresolved(typeName, typeName);
|
||||
|
||||
// Strip generics for resolution
|
||||
int genericStart = typeName.indexOf('<');
|
||||
@@ -2019,7 +2019,12 @@ public class ScriptDocument {
|
||||
}
|
||||
|
||||
// Return type
|
||||
marks.add(new ScriptLine.Mark(m.start(1), m.end(1), TokenType.TYPE_DECL));
|
||||
TokenType returnToken = TokenType.UNDEFINED_VAR;
|
||||
if (methodInfo != null)
|
||||
returnToken = methodInfo.getReturnType().getTokenType();
|
||||
|
||||
marks.add(new ScriptLine.Mark(m.start(1), m.end(1), returnToken,
|
||||
methodInfo != null ? methodInfo.getReturnType() : null));
|
||||
// Method name with MethodInfo metadata
|
||||
marks.add(new ScriptLine.Mark(m.start(2), m.end(2), TokenType.METHOD_DECL, methodInfo));
|
||||
}
|
||||
|
||||
@@ -451,6 +451,10 @@ public final class MethodInfo {
|
||||
public void validate(String methodBodyText, boolean hasBody, TypeResolver typeResolver) {
|
||||
if (!isDeclaration) return;
|
||||
|
||||
// Don't error if return type unresolved
|
||||
if(returnType != null && !returnType.isResolved())
|
||||
return;
|
||||
|
||||
// Validate parameters
|
||||
validateParameters();
|
||||
boolean interfaceMember = containingType != null && containingType.isInterface();
|
||||
|
||||
@@ -77,23 +77,27 @@ public enum TokenType {
|
||||
return italic;
|
||||
}
|
||||
|
||||
public static int getColor(TypeInfo typeInfo) {
|
||||
if (typeInfo == null)
|
||||
return TokenType.IMPORTED_CLASS.getHexColor();
|
||||
public static TokenType getByType(TypeInfo typeInfo) {
|
||||
if (typeInfo == null || !typeInfo.isResolved())
|
||||
return TokenType.UNDEFINED_VAR;
|
||||
|
||||
switch (typeInfo.getKind()) {
|
||||
case INTERFACE:
|
||||
return TokenType.INTERFACE_DECL.getHexColor();
|
||||
return TokenType.INTERFACE_DECL;
|
||||
case ENUM:
|
||||
return TokenType.ENUM_DECL.getHexColor();
|
||||
return TokenType.ENUM_DECL;
|
||||
case CLASS:
|
||||
return TokenType.CLASS_DECL.getHexColor();
|
||||
return TokenType.CLASS_DECL;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
// Use the TypeInfo's own token type, which handles ScriptTypeInfo correctly
|
||||
return typeInfo.getTokenType().getHexColor();
|
||||
return typeInfo.getTokenType();
|
||||
}
|
||||
|
||||
public static int getColor(TypeInfo typeInfo) {
|
||||
return getByType(typeInfo).getHexColor();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -125,7 +125,7 @@ public class TypeResolver {
|
||||
Map<String, ImportData> imports,
|
||||
Set<String> wildcardPackages) {
|
||||
if (simpleName == null || simpleName.isEmpty()) {
|
||||
return null;
|
||||
return TypeInfo.unresolved(simpleName,simpleName);
|
||||
}
|
||||
|
||||
// 1. Check explicit imports
|
||||
@@ -166,7 +166,7 @@ public class TypeResolver {
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
return TypeInfo.unresolved(simpleName,simpleName);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in new issue
Block a user