Thanks for the info. The small change we made to struct ParserContext in parser.rs seems to have lots of dependencies. This seems to be a scenario of metaprogramming where a new function is being created at run-time. Could you please help us understand if changing this function to accept 4 values was valid change to happen. If yes, what is the datatype of the 4th value being accepted. As I understand the new scenario for datatypes in the function below is as follows :
substitute_variables_display(value, &custom_properties, |value| ...) 1st - value 2nd - &custom_properties 3rd - *a part of &custom_properties* 4th - |value| I believe the 4th new argument is being created in the 3rd position as described above. So, the new function may look something like this: substitute_variables_display(value, &custom_properties, *new_value*, |value| ...) Could you please let us know the following: * Is my understanding of the function being translated from 3 argument function to 4 arguments one as I described above correct * was this translation supposed to happen, or should it have been a 3 argument function itself. * If yes, what is the datatype of this argument that got created -- what could be the simplest way to solve it - we can either assign a default value to the *new_value, *or we can add a defunct value at every function call of this function. We just wish to make sure that another chain of dependencies is not created. Yours sincerely, Shashwath On Oct 31, 2015 1:17 AM, "Josh Matthews" <j...@joshmatthews.net> wrote: > This is a tricky one. I suspect if we look closely at the error messages, > they would actually be pointing at a line _inside_ of the `get_specified` > macro, rather than directly at users of the macro. Specifically, > `get_specified!(get_box, display, value)` ends up expanding as something > like this: > > substitute_variables_display(value, &custom_properties, |value| ...) > > which is indeed a function that takes 3 arguments on master (ie. > http://mxr.mozilla.org/servo/source/components/style/properties.mako.rs#5617 > ) and presumably has been modified to take 4 in your branch. > > Does that make sense? > > Cheers, > Josh > > On 2015-10-30 10:00 PM, Pranesha Shashwath Kumar Kattepura Jayabheema Rao > wrote: > >> Hi, >> >> We are getting an error "This function takes 4 parameters but 3 were >> supplied" for all the instances of the function get_specified!. >> >> When I look up the definition of the function at line 6505 in >> properties.mako.rs it looks as follows: >> macro_rules! get_specified( ($style_struct_getter: ident, $property: >> ident, >> $declared_value: expr) => { concat_idents!(substitute_variables_, $ >> property)( $declared_value, &custom_properties, |value| match *value { >> DeclaredValue::Value(specified_value) => specified_value, DeclaredValue:: >> Initial => longhands::$property::get_initial_value(), >> DeclaredValue::Inherit >> => { inherited_style.$style_struct_getter().$property.clone() } >> DeclaredValue::WithVariables { .. } => unreachable!() } ) }; ); >> As I understand it the function rightly accepts only 3 parameters. Could >> you please correct me if I am wrong. I do not see a fourth parameter being >> asked for here. >> >> Yours sincerely, >> Pranesha Shashwath Kumar >> [Campus ID: 200112642] >> >> > _______________________________________________ > dev-servo mailing list > dev-servo@lists.mozilla.org > https://lists.mozilla.org/listinfo/dev-servo > _______________________________________________ dev-servo mailing list dev-servo@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-servo