feat: updated engine version to 4.4-rc1
This commit is contained in:
parent
ee00efde1f
commit
21ba8e33af
5459 changed files with 1128836 additions and 198305 deletions
|
|
@ -45,7 +45,6 @@
|
|||
#include "core/string/ustring.h"
|
||||
#include "core/templates/hash_map.h"
|
||||
#include "core/templates/list.h"
|
||||
#include "core/templates/rb_map.h"
|
||||
#include "core/templates/vector.h"
|
||||
#include "core/variant/variant.h"
|
||||
|
||||
|
|
@ -165,6 +164,10 @@ public:
|
|||
container_element_types.write[p_index] = DataType(p_type);
|
||||
}
|
||||
|
||||
_FORCE_INLINE_ int get_container_element_type_count() const {
|
||||
return container_element_types.size();
|
||||
}
|
||||
|
||||
_FORCE_INLINE_ DataType get_container_element_type(int p_index) const {
|
||||
ERR_FAIL_INDEX_V(p_index, container_element_types.size(), get_variant_type());
|
||||
return container_element_types[p_index];
|
||||
|
|
@ -189,6 +192,8 @@ public:
|
|||
|
||||
GDScriptParser::DataType get_typed_container_type() const;
|
||||
|
||||
bool can_reference(const DataType &p_other) const;
|
||||
|
||||
bool operator==(const DataType &p_other) const {
|
||||
if (type_source == UNDETECTED || p_other.type_source == UNDETECTED) {
|
||||
return true; // Can be considered equal for parsing purposes.
|
||||
|
|
@ -367,6 +372,7 @@ public:
|
|||
Vector<ExpressionNode *> arguments;
|
||||
Vector<Variant> resolved_arguments;
|
||||
|
||||
/** Information of the annotation. Might be null for unknown annotations. */
|
||||
AnnotationInfo *info = nullptr;
|
||||
PropertyInfo export_info;
|
||||
bool is_resolved = false;
|
||||
|
|
@ -856,6 +862,7 @@ public:
|
|||
Vector<Variant> default_arg_values;
|
||||
#ifdef TOOLS_ENABLED
|
||||
MemberDocData doc_data;
|
||||
int min_local_doc_line = 0;
|
||||
#endif // TOOLS_ENABLED
|
||||
|
||||
bool resolved_signature = false;
|
||||
|
|
@ -1352,6 +1359,7 @@ private:
|
|||
List<GDScriptWarning> warnings;
|
||||
List<PendingWarning> pending_warnings;
|
||||
HashSet<int> warning_ignored_lines[GDScriptWarning::WARNING_MAX];
|
||||
int warning_ignore_start_lines[GDScriptWarning::WARNING_MAX];
|
||||
HashSet<int> unsafe_lines;
|
||||
#endif
|
||||
|
||||
|
|
@ -1371,7 +1379,7 @@ private:
|
|||
bool in_lambda = false;
|
||||
bool lambda_ended = false; // Marker for when a lambda ends, to apply an end of statement if needed.
|
||||
|
||||
typedef bool (GDScriptParser::*AnnotationAction)(const AnnotationNode *p_annotation, Node *p_target, ClassNode *p_class);
|
||||
typedef bool (GDScriptParser::*AnnotationAction)(AnnotationNode *p_annotation, Node *p_target, ClassNode *p_class);
|
||||
struct AnnotationInfo {
|
||||
enum TargetKind {
|
||||
NONE = 0,
|
||||
|
|
@ -1455,9 +1463,14 @@ private:
|
|||
}
|
||||
void apply_pending_warnings();
|
||||
#endif
|
||||
|
||||
void make_completion_context(CompletionType p_type, Node *p_node, int p_argument = -1, bool p_force = false);
|
||||
void make_completion_context(CompletionType p_type, Variant::Type p_builtin_type, bool p_force = false);
|
||||
// Setting p_force to false will prevent the completion context from being update if a context was already set before.
|
||||
// This should only be done when we push context before we consumed any tokens for the corresponding structure.
|
||||
// See parse_precedence for an example.
|
||||
void make_completion_context(CompletionType p_type, Node *p_node, int p_argument = -1, bool p_force = true);
|
||||
void make_completion_context(CompletionType p_type, Variant::Type p_builtin_type, bool p_force = true);
|
||||
// In some cases it might become necessary to alter the completion context after parsing a subexpression.
|
||||
// For example to not override COMPLETE_CALL_ARGUMENTS with COMPLETION_NONE from string literals.
|
||||
void override_completion_context(const Node *p_for_node, CompletionType p_type, Node *p_node, int p_argument = -1);
|
||||
void push_completion_call(Node *p_call);
|
||||
void pop_completion_call();
|
||||
void set_last_completion_call_arg(int p_argument);
|
||||
|
|
@ -1493,18 +1506,20 @@ private:
|
|||
static bool register_annotation(const MethodInfo &p_info, uint32_t p_target_kinds, AnnotationAction p_apply, const Vector<Variant> &p_default_arguments = Vector<Variant>(), bool p_is_vararg = false);
|
||||
bool validate_annotation_arguments(AnnotationNode *p_annotation);
|
||||
void clear_unused_annotations();
|
||||
bool tool_annotation(const AnnotationNode *p_annotation, Node *p_target, ClassNode *p_class);
|
||||
bool icon_annotation(const AnnotationNode *p_annotation, Node *p_target, ClassNode *p_class);
|
||||
bool onready_annotation(const AnnotationNode *p_annotation, Node *p_target, ClassNode *p_class);
|
||||
bool tool_annotation(AnnotationNode *p_annotation, Node *p_target, ClassNode *p_class);
|
||||
bool icon_annotation(AnnotationNode *p_annotation, Node *p_target, ClassNode *p_class);
|
||||
bool static_unload_annotation(AnnotationNode *p_annotation, Node *p_target, ClassNode *p_class);
|
||||
bool onready_annotation(AnnotationNode *p_annotation, Node *p_target, ClassNode *p_class);
|
||||
template <PropertyHint t_hint, Variant::Type t_type>
|
||||
bool export_annotations(const AnnotationNode *p_annotation, Node *p_target, ClassNode *p_class);
|
||||
bool export_storage_annotation(const AnnotationNode *p_annotation, Node *p_target, ClassNode *p_class);
|
||||
bool export_custom_annotation(const AnnotationNode *p_annotation, Node *p_target, ClassNode *p_class);
|
||||
bool export_annotations(AnnotationNode *p_annotation, Node *p_target, ClassNode *p_class);
|
||||
bool export_storage_annotation(AnnotationNode *p_annotation, Node *p_target, ClassNode *p_class);
|
||||
bool export_custom_annotation(AnnotationNode *p_annotation, Node *p_target, ClassNode *p_class);
|
||||
bool export_tool_button_annotation(AnnotationNode *p_annotation, Node *p_target, ClassNode *p_class);
|
||||
template <PropertyUsageFlags t_usage>
|
||||
bool export_group_annotations(const AnnotationNode *p_annotation, Node *p_target, ClassNode *p_class);
|
||||
bool warning_annotations(const AnnotationNode *p_annotation, Node *p_target, ClassNode *p_class);
|
||||
bool rpc_annotation(const AnnotationNode *p_annotation, Node *p_target, ClassNode *p_class);
|
||||
bool static_unload_annotation(const AnnotationNode *p_annotation, Node *p_target, ClassNode *p_class);
|
||||
bool export_group_annotations(AnnotationNode *p_annotation, Node *p_target, ClassNode *p_class);
|
||||
bool warning_ignore_annotation(AnnotationNode *p_annotation, Node *p_target, ClassNode *p_class);
|
||||
bool warning_ignore_region_annotations(AnnotationNode *p_annotation, Node *p_target, ClassNode *p_class);
|
||||
bool rpc_annotation(AnnotationNode *p_annotation, Node *p_target, ClassNode *p_class);
|
||||
// Statements.
|
||||
Node *parse_statement();
|
||||
VariableNode *parse_variable(bool p_is_static);
|
||||
|
|
@ -1589,6 +1604,8 @@ public:
|
|||
|
||||
#ifdef TOOLS_ENABLED
|
||||
static HashMap<String, String> theme_color_names;
|
||||
|
||||
HashMap<int, GDScriptTokenizer::CommentData> comment_data;
|
||||
#endif // TOOLS_ENABLED
|
||||
|
||||
GDScriptParser();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue