Skip to content

Commit 6f129db

Browse files
committed
Naming
1 parent c9021a8 commit 6f129db

29 files changed

+101
-95
lines changed

compiler/plc_ast/src/ast.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -487,7 +487,7 @@ pub enum DataType {
487487
PointerType {
488488
name: Option<String>,
489489
referenced_type: Box<DataTypeDeclaration>,
490-
kind: Option<DerefType>,
490+
auto_deref: Option<PointerAutoDerefType>,
491491
},
492492
StringType {
493493
name: Option<String>,
@@ -506,8 +506,8 @@ pub enum DataType {
506506
}
507507

508508
#[derive(Debug, Clone, Copy, PartialEq)]
509-
pub enum DerefType {
510-
/// A pointer variable with the deref-trait, e.g. VAR_INPUT variables
509+
pub enum PointerAutoDerefType {
510+
/// A plain pointer variable with the auto-deref trait, e.g. VAR_IN_OUT or VAR_INPUT{ref} variables
511511
Default,
512512

513513
/// An alias pointer variable, e.g. `foo AT bar : DINT`

src/codegen/generators/expression_generator.rs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -844,8 +844,9 @@ impl<'ink, 'b> ExpressionCodeGenerator<'ink, 'b> {
844844
.get(i)
845845
.map(|it| {
846846
let name = it.get_type_name();
847-
if let Some(DataTypeInformation::Pointer { inner_type_name, deref: Some(_), .. }) =
848-
self.index.find_effective_type_info(name)
847+
if let Some(DataTypeInformation::Pointer {
848+
inner_type_name, auto_deref: Some(_), ..
849+
}) = self.index.find_effective_type_info(name)
849850
{
850851
// for auto_deref pointers (VAR_INPUT {ref}, VAR_IN_OUT) we call generate_argument_by_ref()
851852
// we need the inner_type and not pointer to type otherwise we would generate a double pointer
@@ -1145,7 +1146,7 @@ impl<'ink, 'b> ExpressionCodeGenerator<'ink, 'b> {
11451146
}
11461147

11471148
fn get_parameter_type(&self, parameter: &VariableIndexEntry) -> String {
1148-
if let Some(DataTypeInformation::Pointer { inner_type_name, deref: Some(_), .. }) =
1149+
if let Some(DataTypeInformation::Pointer { inner_type_name, auto_deref: Some(_), .. }) =
11491150
self.index.find_effective_type_info(parameter.get_type_name())
11501151
{
11511152
inner_type_name.into()
@@ -1253,7 +1254,7 @@ impl<'ink, 'b> ExpressionCodeGenerator<'ink, 'b> {
12531254
.map(|var| var.get_type_information())
12541255
.unwrap_or_else(|| self.index.get_void_type().get_type_information());
12551256

1256-
if let DataTypeInformation::Pointer { deref: Some(_), inner_type_name, .. } = parameter {
1257+
if let DataTypeInformation::Pointer { auto_deref: Some(_), inner_type_name, .. } = parameter {
12571258
//this is a VAR_IN_OUT assignment, so don't load the value, assign the pointer
12581259
//expression may be empty -> generate a local variable for it
12591260
let generated_exp = if expression.is_empty_statement() {
@@ -1973,7 +1974,7 @@ impl<'ink, 'b> ExpressionCodeGenerator<'ink, 'b> {
19731974
}
19741975
}
19751976
}
1976-
DataTypeInformation::Pointer { inner_type_name, deref: Some(_), .. } => {
1977+
DataTypeInformation::Pointer { inner_type_name, auto_deref: Some(_), .. } => {
19771978
let inner_type = self.index.get_type_information_or_void(inner_type_name);
19781979
self.generate_string_literal_for_type(inner_type, value, location)
19791980
}

src/codegen/llvm_typesystem.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ impl<'ctx, 'cast> CastInstructionData<'ctx, 'cast> {
114114
let value_type = index.get_intrinsic_type_by_name(value_type.get_name()).get_type_information();
115115

116116
let target_type =
117-
if let DataTypeInformation::Pointer { deref: Some(_), inner_type_name, .. } = target_type {
117+
if let DataTypeInformation::Pointer { auto_deref: Some(_), inner_type_name, .. } = target_type {
118118
// Deref auto-deref pointers before casting
119119
index.get_intrinsic_type_by_name(inner_type_name.as_str()).get_type_information()
120120
} else {

src/index/tests/index_tests.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
// Copyright (c) 2020 Ghaith Hachem and Mathias Rieder
22
use insta::assert_debug_snapshot;
33
use plc_ast::ast::{
4-
pre_process, AstFactory, DataType, GenericBinding, LinkageType, Operator, DerefType, TypeNature,
5-
UserTypeDeclaration,
4+
pre_process, AstFactory, DataType, GenericBinding, LinkageType, Operator, PointerAutoDerefType,
5+
TypeNature, UserTypeDeclaration,
66
};
77
use plc_ast::provider::IdProvider;
88
use plc_source::source_location::{SourceLocation, SourceLocationFactory};
@@ -1253,7 +1253,7 @@ fn pointer_and_in_out_pointer_should_not_conflict() {
12531253
&DataTypeInformation::Pointer {
12541254
name: "__main_x".to_string(),
12551255
inner_type_name: "INT".to_string(),
1256-
deref: None,
1256+
auto_deref: None,
12571257
}
12581258
);
12591259

@@ -1264,7 +1264,7 @@ fn pointer_and_in_out_pointer_should_not_conflict() {
12641264
&DataTypeInformation::Pointer {
12651265
name: "__auto_pointer_to_INT".to_string(),
12661266
inner_type_name: "INT".to_string(),
1267-
deref: Some(DerefType::Default),
1267+
auto_deref: Some(PointerAutoDerefType::Default),
12681268
}
12691269
);
12701270
}
@@ -1303,7 +1303,7 @@ fn pointer_and_in_out_pointer_should_not_conflict_2() {
13031303
&DataTypeInformation::Pointer {
13041304
name: "__main_x".to_string(),
13051305
inner_type_name: "INT".to_string(),
1306-
deref: None,
1306+
auto_deref: None,
13071307
}
13081308
);
13091309

@@ -1314,7 +1314,7 @@ fn pointer_and_in_out_pointer_should_not_conflict_2() {
13141314
&DataTypeInformation::Pointer {
13151315
name: "__auto_pointer_to_INT".to_string(),
13161316
inner_type_name: "INT".to_string(),
1317-
deref: Some(DerefType::Default),
1317+
auto_deref: Some(PointerAutoDerefType::Default),
13181318
}
13191319
);
13201320
}

src/index/tests/snapshots/rusty__index__tests__index_tests__pre_processing_generates_inline_pointer_to_pointer-2.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ UserTypeDeclaration {
1010
referenced_type: DataTypeReference {
1111
referenced_type: "__foo_inline_pointer_",
1212
},
13-
kind: None,
13+
auto_deref: None,
1414
},
1515
initializer: None,
1616
scope: Some(

src/index/tests/snapshots/rusty__index__tests__index_tests__pre_processing_generates_inline_pointer_to_pointer.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ UserTypeDeclaration {
1010
referenced_type: DataTypeReference {
1111
referenced_type: "INT",
1212
},
13-
kind: None,
13+
auto_deref: None,
1414
},
1515
initializer: None,
1616
scope: Some(

src/index/tests/snapshots/rusty__index__tests__index_tests__pre_processing_generates_inline_pointers.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ UserTypeDeclaration {
1010
referenced_type: DataTypeReference {
1111
referenced_type: "INT",
1212
},
13-
kind: None,
13+
auto_deref: None,
1414
},
1515
initializer: None,
1616
scope: Some(

src/index/tests/snapshots/rusty__index__tests__index_tests__pre_processing_generates_pointer_to_pointer_type-2.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ UserTypeDeclaration {
1010
referenced_type: DataTypeReference {
1111
referenced_type: "__pointer_to_pointer",
1212
},
13-
kind: None,
13+
auto_deref: None,
1414
},
1515
initializer: None,
1616
scope: None,

src/index/tests/snapshots/rusty__index__tests__index_tests__pre_processing_generates_pointer_to_pointer_type.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ UserTypeDeclaration {
1010
referenced_type: DataTypeReference {
1111
referenced_type: "INT",
1212
},
13-
kind: None,
13+
auto_deref: None,
1414
},
1515
initializer: None,
1616
scope: None,

src/index/visitor.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use crate::index::{ArgumentType, Index, MemberInfo};
44
use crate::typesystem::{self, *};
55
use plc_ast::ast::{
66
self, ArgumentProperty, Assignment, AstFactory, AstNode, AstStatement, CompilationUnit, DataType,
7-
DataTypeDeclaration, DerefType, Implementation, Pou, PouType, RangeStatement, TypeNature,
7+
DataTypeDeclaration, Implementation, PointerAutoDerefType, Pou, PouType, RangeStatement, TypeNature,
88
UserTypeDeclaration, Variable, VariableBlock, VariableBlockType,
99
};
1010
use plc_ast::literals::AstLiteral;
@@ -272,7 +272,7 @@ fn register_byref_pointer_type_for(index: &mut Index, inner_type_name: &str) ->
272272
information: DataTypeInformation::Pointer {
273273
name: type_name.clone(),
274274
inner_type_name: inner_type_name.to_string(),
275-
deref: Some(DerefType::Default),
275+
auto_deref: Some(PointerAutoDerefType::Default),
276276
},
277277
nature: TypeNature::Any,
278278
location: SourceLocation::internal(),
@@ -400,12 +400,12 @@ fn visit_data_type(index: &mut Index, type_declaration: &UserTypeDeclaration) {
400400
DataType::ArrayType { name: Some(name), bounds, referenced_type, .. } => {
401401
visit_array(bounds, index, scope, referenced_type, name, type_declaration);
402402
}
403-
DataType::PointerType { name: Some(name), referenced_type, kind } => {
403+
DataType::PointerType { name: Some(name), referenced_type, auto_deref: kind } => {
404404
let inner_type_name = referenced_type.get_name().expect("named datatype");
405405
let information = DataTypeInformation::Pointer {
406406
name: name.clone(),
407407
inner_type_name: inner_type_name.into(),
408-
deref: *kind,
408+
auto_deref: *kind,
409409
};
410410

411411
let init = index.get_mut_const_expressions().maybe_add_constant_expression(
@@ -572,7 +572,7 @@ fn visit_variable_length_array(
572572
referenced_type: dummy_array_name,
573573
location: SourceLocation::undefined(),
574574
}),
575-
kind: None,
575+
auto_deref: None,
576576
},
577577
location: SourceLocation::undefined(),
578578
scope: None,

src/parser.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use plc_ast::{
66
ast::{
77
AccessModifier, ArgumentProperty, AstFactory, AstNode, AstStatement, CompilationUnit, DataType,
88
DataTypeDeclaration, DirectAccessType, GenericBinding, HardwareAccessType, Implementation,
9-
LinkageType, DerefType, PolymorphismMode, Pou, PouType, ReferenceAccess, ReferenceExpr,
9+
LinkageType, PointerAutoDerefType, PolymorphismMode, Pou, PouType, ReferenceAccess, ReferenceExpr,
1010
TypeNature, UserTypeDeclaration, Variable, VariableBlock, VariableBlockType,
1111
},
1212
provider::IdProvider,
@@ -704,12 +704,12 @@ fn parse_pointer_definition(
704704
lexer: &mut ParseSession,
705705
name: Option<String>,
706706
start_pos: usize,
707-
kind: Option<DerefType>,
707+
auto_deref: Option<PointerAutoDerefType>,
708708
) -> Option<(DataTypeDeclaration, Option<AstNode>)> {
709709
parse_data_type_definition(lexer, None).map(|(decl, initializer)| {
710710
(
711711
DataTypeDeclaration::DataTypeDefinition {
712-
data_type: DataType::PointerType { name, referenced_type: Box::new(decl), kind },
712+
data_type: DataType::PointerType { name, referenced_type: Box::new(decl), auto_deref },
713713
location: lexer.source_range_factory.create_range(start_pos..lexer.last_range.end),
714714
scope: lexer.scope.clone(),
715715
},
@@ -1082,7 +1082,7 @@ fn parse_aliasing(lexer: &mut ParseSession, names: &(String, Range<usize>)) -> O
10821082
}
10831083

10841084
let start = &lexer.location().get_span().to_range().unwrap_or(lexer.last_range.clone()).start;
1085-
let datatype = parse_pointer_definition(lexer, None, *start, Some(DerefType::Alias));
1085+
let datatype = parse_pointer_definition(lexer, None, *start, Some(PointerAutoDerefType::Alias));
10861086
if !lexer.try_consume(&KeywordSemicolon) {
10871087
lexer.accept_diagnostic(Diagnostic::missing_token(
10881088
format!("{KeywordSemicolon:?}").as_str(),
@@ -1155,7 +1155,7 @@ fn parse_variable_line(lexer: &mut ParseSession) -> Vec<Variable> {
11551155
let mut variables = vec![];
11561156

11571157
let parse_definition_opt = if lexer.try_consume(&KeywordReferenceTo) {
1158-
parse_pointer_definition(lexer, None, lexer.last_range.start, Some(DerefType::Reference))
1158+
parse_pointer_definition(lexer, None, lexer.last_range.start, Some(PointerAutoDerefType::Reference))
11591159
} else {
11601160
parse_full_data_type_definition(lexer, None)
11611161
};

src/parser/tests/parse_errors/parse_error_statements_tests.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1128,7 +1128,7 @@ fn pointer_type_without_to_test() {
11281128
referenced_type: "INT".to_string(),
11291129
location: SourceLocation::undefined(),
11301130
}),
1131-
kind: None,
1131+
auto_deref: None,
11321132
},
11331133
location: SourceLocation::undefined(),
11341134
initializer: None,
@@ -1155,7 +1155,7 @@ fn pointer_type_with_wrong_keyword_to_test() {
11551155
referenced_type: "tu".to_string(),
11561156
location: SourceLocation::undefined(),
11571157
}),
1158-
kind: None,
1158+
auto_deref: None,
11591159
},
11601160
location: SourceLocation::undefined(),
11611161
initializer: None,

src/parser/tests/snapshots/rusty__parser__tests__type_parser_tests__global_pointer_declaration-2.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ Variable {
1010
referenced_type: DataTypeReference {
1111
referenced_type: "INT",
1212
},
13-
kind: None,
13+
auto_deref: None,
1414
},
1515
},
1616
}

src/parser/tests/snapshots/rusty__parser__tests__type_parser_tests__global_pointer_declaration.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ Variable {
1010
referenced_type: DataTypeReference {
1111
referenced_type: "INT",
1212
},
13-
kind: None,
13+
auto_deref: None,
1414
},
1515
},
1616
}

src/parser/tests/snapshots/rusty__parser__tests__type_parser_tests__pointer_type_test.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ UserTypeDeclaration {
1010
referenced_type: DataTypeReference {
1111
referenced_type: "INT",
1212
},
13-
kind: None,
13+
auto_deref: None,
1414
},
1515
initializer: None,
1616
scope: None,

src/parser/tests/snapshots/rusty__parser__tests__type_parser_tests__ref_type_test.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ UserTypeDeclaration {
1010
referenced_type: DataTypeReference {
1111
referenced_type: "INT",
1212
},
13-
kind: None,
13+
auto_deref: None,
1414
},
1515
initializer: None,
1616
scope: None,

src/parser/tests/statement_parser_tests.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -322,7 +322,7 @@ fn reference_to_declaration() {
322322
referenced_type: DataTypeReference {
323323
referenced_type: "DINT",
324324
},
325-
kind: Some(
325+
auto_deref: Some(
326326
Reference,
327327
),
328328
},
@@ -364,7 +364,7 @@ fn aliasing_dint_variable() {
364364
referenced_type: DataTypeReference {
365365
referenced_type: "DINT",
366366
},
367-
kind: Some(
367+
auto_deref: Some(
368368
Alias,
369369
),
370370
},

0 commit comments

Comments
 (0)