From de7fe2fced036154993376e245c694a03ef70172 Mon Sep 17 00:00:00 2001 From: Juan Linietsky Date: Sat, 23 Jan 2016 15:36:03 -0300 Subject: [PATCH] -remove unnecesary error report, fixes #3361 --- modules/gdscript/gd_parser.cpp | 5 +++++ modules/gdscript/gd_parser.h | 1 + modules/gdscript/gd_script.cpp | 22 +++++++++++++++------- 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/modules/gdscript/gd_parser.cpp b/modules/gdscript/gd_parser.cpp index c4175e048d..4c6b6ff2dd 100644 --- a/modules/gdscript/gd_parser.cpp +++ b/modules/gdscript/gd_parser.cpp @@ -3145,6 +3145,11 @@ Error GDParser::parse(const String& p_code, const String& p_base_path, bool p_ju return ret; } +bool GDParser::is_tool_script() const { + + return (head && head->type==Node::TYPE_CLASS && static_cast(head)->tool); +} + const GDParser::Node *GDParser::get_parse_tree() const { return head; diff --git a/modules/gdscript/gd_parser.h b/modules/gdscript/gd_parser.h index 9ad8633968..6c49c1df52 100644 --- a/modules/gdscript/gd_parser.h +++ b/modules/gdscript/gd_parser.h @@ -454,6 +454,7 @@ public: Error parse(const String& p_code, const String& p_base_path="", bool p_just_validate=false,const String& p_self_path="",bool p_for_completion=false); Error parse_bytecode(const Vector &p_bytecode,const String& p_base_path="",const String& p_self_path=""); + bool is_tool_script() const; const Node *get_parse_tree() const; //completion info diff --git a/modules/gdscript/gd_script.cpp b/modules/gdscript/gd_script.cpp index 9a3f50d3b8..62c5eb735a 100644 --- a/modules/gdscript/gd_script.cpp +++ b/modules/gdscript/gd_script.cpp @@ -1874,19 +1874,27 @@ Error GDScript::reload() { if (ScriptDebugger::get_singleton()) { GDScriptLanguage::get_singleton()->debug_break_parse(get_path(),parser.get_error_line(),"Parser Error: "+parser.get_error()); } - _err_print_error("GDScript::reload",path.empty()?"built-in":(const char*)path.utf8().get_data(),parser.get_error_line(),("Parse Error: "+parser.get_error()).utf8().get_data()); + _err_print_error("GDScript::reload",path.empty()?"built-in":(const char*)path.utf8().get_data(),parser.get_error_line(),("Parse Error: "+parser.get_error()).utf8().get_data(),ERR_HANDLER_SCRIPT); ERR_FAIL_V(ERR_PARSE_ERROR); } + + bool can_run = ScriptServer::is_scripting_enabled() || parser.is_tool_script(); + GDCompiler compiler; err = compiler.compile(&parser,this); if (err) { - if (ScriptDebugger::get_singleton()) { - GDScriptLanguage::get_singleton()->debug_break_parse(get_path(),compiler.get_error_line(),"Parser Error: "+compiler.get_error()); + + if (can_run) { + if (ScriptDebugger::get_singleton()) { + GDScriptLanguage::get_singleton()->debug_break_parse(get_path(),compiler.get_error_line(),"Parser Error: "+compiler.get_error()); + } + _err_print_error("GDScript::reload",path.empty()?"built-in":(const char*)path.utf8().get_data(),compiler.get_error_line(),("Compile Error: "+compiler.get_error()).utf8().get_data(),ERR_HANDLER_SCRIPT); + ERR_FAIL_V(ERR_COMPILATION_FAILED); + } else { + return err; } - _err_print_error("GDScript::reload",path.empty()?"built-in":(const char*)path.utf8().get_data(),compiler.get_error_line(),("Compile Error: "+compiler.get_error()).utf8().get_data()); - ERR_FAIL_V(ERR_COMPILATION_FAILED); } valid=true; @@ -2053,7 +2061,7 @@ Error GDScript::load_byte_code(const String& p_path) { GDParser parser; Error err = parser.parse_bytecode(bytecode,basedir,get_path()); if (err) { - _err_print_error("GDScript::load_byte_code",path.empty()?"built-in":(const char*)path.utf8().get_data(),parser.get_error_line(),("Parse Error: "+parser.get_error()).utf8().get_data()); + _err_print_error("GDScript::load_byte_code",path.empty()?"built-in":(const char*)path.utf8().get_data(),parser.get_error_line(),("Parse Error: "+parser.get_error()).utf8().get_data(),ERR_HANDLER_SCRIPT); ERR_FAIL_V(ERR_PARSE_ERROR); } @@ -2061,7 +2069,7 @@ Error GDScript::load_byte_code(const String& p_path) { err = compiler.compile(&parser,this); if (err) { - _err_print_error("GDScript::load_byte_code",path.empty()?"built-in":(const char*)path.utf8().get_data(),compiler.get_error_line(),("Compile Error: "+compiler.get_error()).utf8().get_data()); + _err_print_error("GDScript::load_byte_code",path.empty()?"built-in":(const char*)path.utf8().get_data(),compiler.get_error_line(),("Compile Error: "+compiler.get_error()).utf8().get_data(),ERR_HANDLER_SCRIPT); ERR_FAIL_V(ERR_COMPILATION_FAILED); }