Skip to content

Commit 99c177d

Browse files
authored
Merge branch 'master' into kayagokalp/tool-681
2 parents c02b259 + c2696d6 commit 99c177d

File tree

2 files changed

+19
-26
lines changed

2 files changed

+19
-26
lines changed

sway-core/src/transform/to_parsed_lang/convert_parse_tree.rs

Lines changed: 19 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -855,28 +855,24 @@ pub fn item_impl_to_declaration(
855855
let impl_trait = engines.pe().insert(impl_trait);
856856
Ok(Declaration::ImplSelfOrTrait(impl_trait))
857857
}
858-
None => match &*engines.te().get(implementing_for.type_id()) {
859-
TypeInfo::Contract => Err(handler
860-
.emit_err(ConvertParseTreeError::SelfImplForContract { span: block_span }.into())),
861-
_ => {
862-
let impl_self = ImplSelfOrTrait {
863-
is_self: true,
864-
trait_name: CallPath {
865-
callpath_type: CallPathType::Ambiguous,
866-
prefixes: vec![],
867-
suffix: BaseIdent::dummy(),
868-
},
869-
trait_decl_ref: None,
870-
trait_type_arguments: vec![],
871-
implementing_for,
872-
impl_type_parameters,
873-
items,
874-
block_span,
875-
};
876-
let impl_self = engines.pe().insert(impl_self);
877-
Ok(Declaration::ImplSelfOrTrait(impl_self))
878-
}
879-
},
858+
None => {
859+
let impl_self = ImplSelfOrTrait {
860+
is_self: true,
861+
trait_name: CallPath {
862+
callpath_type: CallPathType::Ambiguous,
863+
prefixes: vec![],
864+
suffix: BaseIdent::dummy(),
865+
},
866+
trait_decl_ref: None,
867+
trait_type_arguments: vec![],
868+
implementing_for,
869+
impl_type_parameters,
870+
items,
871+
block_span,
872+
};
873+
let impl_self = engines.pe().insert(impl_self);
874+
Ok(Declaration::ImplSelfOrTrait(impl_self))
875+
}
880876
}
881877
}
882878

@@ -1005,7 +1001,7 @@ fn handle_impl_contract(
10051001
}
10061002
}
10071003

1008-
// Not a Contract impl, return None
1004+
// Not a Contract impl, return empty node contents.
10091005
Ok(vec![])
10101006
}
10111007

sway-error/src/convert_parse_tree_error.rs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -97,8 +97,6 @@ pub enum ConvertParseTreeError {
9797
DuplicateParameterIdentifier { name: Ident, span: Span },
9898
#[error("self parameter is not allowed for {fn_kind}")]
9999
SelfParameterNotAllowedForFn { fn_kind: String, span: Span },
100-
#[error("`impl Self` for contracts is not supported")]
101-
SelfImplForContract { span: Span },
102100
#[error("Expected module at the beginning before any other items.")]
103101
ExpectedModuleAtBeginning { span: Span },
104102
#[error("Constant requires expression.")]
@@ -253,7 +251,6 @@ impl Spanned for ConvertParseTreeError {
253251
ConvertParseTreeError::DuplicateStructField { span, .. } => span.clone(),
254252
ConvertParseTreeError::DuplicateParameterIdentifier { span, .. } => span.clone(),
255253
ConvertParseTreeError::SelfParameterNotAllowedForFn { span, .. } => span.clone(),
256-
ConvertParseTreeError::SelfImplForContract { span, .. } => span.clone(),
257254
ConvertParseTreeError::ExpectedModuleAtBeginning { span } => span.clone(),
258255
ConvertParseTreeError::ConstantRequiresExpression { span } => span.clone(),
259256
ConvertParseTreeError::ConstantRequiresTypeAscription { span } => span.clone(),

0 commit comments

Comments
 (0)