mirror of
https://github.com/c3lang/c3c.git
synced 2026-02-27 12:01:16 +00:00
Fix case trying to initialize a char[*]* from a String.
This commit is contained in:
@@ -1,5 +1,16 @@
|
|||||||
# C3C Release Notes
|
# C3C Release Notes
|
||||||
|
|
||||||
|
## 0.6.6 Change list
|
||||||
|
|
||||||
|
### Changes / improvements
|
||||||
|
None
|
||||||
|
|
||||||
|
### Fixes
|
||||||
|
- Fix case trying to initialize a `char[*]*` from a String.
|
||||||
|
|
||||||
|
### Stdlib changes
|
||||||
|
None
|
||||||
|
|
||||||
## 0.6.5 Change list
|
## 0.6.5 Change list
|
||||||
|
|
||||||
### Changes / improvements
|
### Changes / improvements
|
||||||
|
|||||||
@@ -239,13 +239,15 @@ Type *type_infer_len_from_actual_type(Type *to_infer, Type *actual_type)
|
|||||||
// And from the actual type.
|
// And from the actual type.
|
||||||
actual_type = type_no_optional(actual_type);
|
actual_type = type_no_optional(actual_type);
|
||||||
|
|
||||||
|
Type *actual = type_get_indexed_type(actual_type);
|
||||||
|
if (!actual) return actual_type;
|
||||||
|
|
||||||
// Grab the underlying indexed type,
|
// Grab the underlying indexed type,
|
||||||
// because we can only have [*] [] [<*>] [<>] * here
|
// because we can only have [*] [] [<*>] [<>] * here
|
||||||
Type *indexed = type_get_indexed_type(to_infer);
|
Type *indexed = type_get_indexed_type(to_infer);
|
||||||
Type *actual = type_get_indexed_type(actual_type);
|
|
||||||
|
|
||||||
// We should always have indexed types.
|
// We should always have indexed types.
|
||||||
ASSERT0(indexed && actual);
|
ASSERT0(indexed);
|
||||||
|
|
||||||
// The underlying type may also be inferred.
|
// The underlying type may also be inferred.
|
||||||
// In this case, infer it.
|
// In this case, infer it.
|
||||||
|
|||||||
6
test/test_suite/cast/cast_string_to_infered_array.c3
Normal file
6
test/test_suite/cast/cast_string_to_infered_array.c3
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
import std;
|
||||||
|
fn void main()
|
||||||
|
{
|
||||||
|
char[*]* x = "abc"; // #error: You cannot cast 'String' to 'char[*]*'
|
||||||
|
io::printn($typeof(x).nameof);
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user