Mercurial > vim
comparison src/vim9type.c @ 33008:ba1b40b520e8 v9.0.1796
patch 9.0.1796: Vim9 problems with null_objects
Commit: https://github.com/vim/vim/commit/5c018bee0e1e272774584cfb1577327fbb67254a
Author: Ernie Rael <errael@raelity.com>
Date: Sun Aug 27 18:40:26 2023 +0200
patch 9.0.1796: Vim9 problems with null_objects
Problem: Vim9 problems with null_objects
Solution: Vim9 improve null_object usage
Fix "xvar == null", where xvar might have been assigned null_object.
Fix compilation failure: "var o2: C = null_object".
closes: #12890
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Ernie Rael <errael@raelity.com>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 27 Aug 2023 18:45:08 +0200 |
parents | 75c283beb74f |
children | def9fc5c92d1 |
comparison
equal
deleted
inserted
replaced
33007:e7561ca6e020 | 33008:ba1b40b520e8 |
---|---|
905 { | 905 { |
906 if (actual->tt_type == VAR_ANY) | 906 if (actual->tt_type == VAR_ANY) |
907 return MAYBE; // use runtime type check | 907 return MAYBE; // use runtime type check |
908 if (actual->tt_type != VAR_OBJECT) | 908 if (actual->tt_type != VAR_OBJECT) |
909 return FAIL; // don't use tt_class | 909 return FAIL; // don't use tt_class |
910 if (actual->tt_class == NULL) | |
911 return OK; // A null object matches | |
910 | 912 |
911 if (class_instance_of(actual->tt_class, expected->tt_class) == FALSE) | 913 if (class_instance_of(actual->tt_class, expected->tt_class) == FALSE) |
912 ret = FAIL; | 914 ret = FAIL; |
913 } | 915 } |
914 | 916 |